PHP İLE SOLO TEST HESAPLAMA VE OYNAMA KODLARI

PHP ile solo testte bir taş bırakmayı hesaplama algoritması. Ben kendim yazdım. Beğendiyseniz lütfen eticaretucuz.com adresini ziyaret etmeyi unutmayın.

<?php
ini_set('memory_limit', '1024M');

global $sayhamle;
global $arrdelikler;
$arrdelikler = array();

$delikler[0][0] = 0;
$delikler[1][0] = 0;
$delikler[2][0] = 1;
$delikler[3][0] = 1;
$delikler[4][0] = 1;
$delikler[5][0] = 0;
$delikler[6][0] = 0;

$delikler[0][1] = 0;
$delikler[1][1] = 0;
$delikler[2][1] = 1;
$delikler[3][1] = 1;
$delikler[4][1] = 1;
$delikler[5][1] = 0;
$delikler[6][1] = 0;

$delikler[0][2] = 1;
$delikler[1][2] = 1;
$delikler[2][2] = 1;
$delikler[3][2] = 1;
$delikler[4][2] = 1;
$delikler[5][2] = 1;
$delikler[6][2] = 1;

$delikler[0][3] = 1;
$delikler[1][3] = 1;
$delikler[2][3] = 1;
$delikler[3][3] = 2;
$delikler[4][3] = 1;
$delikler[5][3] = 1;
$delikler[6][3] = 1;

$delikler[0][4] = 1;
$delikler[1][4] = 1;
$delikler[2][4] = 1;
$delikler[3][4] = 1;
$delikler[4][4] = 1;
$delikler[5][4] = 1;
$delikler[6][4] = 1;

$delikler[0][5] = 0;
$delikler[1][5] = 0;
$delikler[2][5] = 1;
$delikler[3][5] = 1;
$delikler[4][5] = 1;
$delikler[5][5] = 0;
$delikler[6][5] = 0;

$delikler[0][6] = 0;
$delikler[1][6] = 0;
$delikler[2][6] = 1;
$delikler[3][6] = 1;
$delikler[4][6] = 1;
$delikler[5][6] = 0;
$delikler[6][6] = 0;

function hesapla($delikler)
{
    global $sayhamle;
    global $arrdelikler;
    $sayhamle++;
    #2 boş 1 dolu 0 yok
    $deliklertmp = $delikler;
    $tasadet = 0;
    for ($sayx = 0; $sayx < 7; $sayx++) {
        for ($sayy = 0; $sayy < 7; $sayy++) {
            if ($delikler[$sayx][$sayy] == 1) {
                $tasadet++;
            }
        }
    }

    for ($sayx = 0; $sayx < 7; $sayx++) {
        for ($sayy = 0; $sayy < 7; $sayy++) {
            if ($delikler[$sayx][$sayy] == 1) {
                if ($sayx + 1 <= 6 && $sayx + 2 <= 6 && $delikler[$sayx + 1][$sayy] == 1 && $delikler[$sayx + 2][$sayy] == 2) {
                    $delikler[$sayx][$sayy] = 2;
                    $delikler[$sayx + 1][$sayy] = 2;
                    $delikler[$sayx + 2][$sayy] = 1;
                    /*echo $sayx."-";
                    echo $sayy;
                    print_r($delikler);
                    exit;*/
                    $sontasadet = hesapla($delikler, $sayx + 1, $sayy);
                    if ($sontasadet == 1) {
                        $arrdelikler[] = $delikler;
                        return 1;
                    }

                    $delikler = $deliklertmp;
                }
                if ($sayx - 1 >= 0 && $sayx - 2 >= 0 && $delikler[$sayx - 1][$sayy] == 1 && $delikler[$sayx - 2][$sayy] == 2) {
                    $delikler[$sayx][$sayy] = 2;
                    $delikler[$sayx - 1][$sayy] = 2;
                    $delikler[$sayx - 2][$sayy] = 1;
                    $sontasadet = hesapla($delikler, $sayx - 1, $sayy);
                    if ($sontasadet == 1) {
                        $arrdelikler[] = $delikler;
                        return 1;
                    }

                    $delikler = $deliklertmp;
                }
                if ($sayy + 1 <= 6 && $sayy + 2 <= 6 && $delikler[$sayx][$sayy + 1] == 1 && $delikler[$sayx][$sayy + 2] == 2) {
                    $delikler[$sayx][$sayy] = 2;
                    $delikler[$sayx][$sayy + 1] = 2;
                    $delikler[$sayx][$sayy + 2] = 1;
                    $sontasadet = hesapla($delikler, $sayx, $sayy + 1);
                    if ($sontasadet == 1) {
                        $arrdelikler[] = $delikler;
                        return 1;
                    }

                    $delikler = $deliklertmp;
                }
                if ($sayy - 1 >= 0 && $sayy - 2 >= 0 && $delikler[$sayx][$sayy - 1] == 1 && $delikler[$sayx][$sayy - 2] == 2) {
                    $delikler[$sayx][$sayy] = 2;
                    $delikler[$sayx][$sayy - 1] = 2;
                    $delikler[$sayx][$sayy - 2] = 1;
                    $sontasadet = hesapla($delikler, $sayx, $sayy - 1);
                    if ($sontasadet == 1) {
                        $arrdelikler[] = $delikler;
                        return 1;
                    }

                    $delikler = $deliklertmp;
                }
            }
        }
    }
    //echo $tasadet,"-";
    if ($tasadet == 1) {
        return 1;
    }
    return false;
}

#BURADA BAŞLIYOR
$sayhamle = 0;
$sure_baslangici = microtime(true);
$sontasadet = hesapla($delikler, 0, 0);
foreach ($arrdelikler as $birdelikler) {
    echo "<table style='float: left; margin: 10px;'>";
    for ($sayx = 0; $sayx < 7; $sayx++) {
        echo "<tr>";
        for ($sayy = 0; $sayy < 7; $sayy++) {
            echo "<td>";
            if ($birdelikler[$sayx][$sayy] == 1) {
                echo "۩";
            }
            if ($birdelikler[$sayx][$sayy] == 2) {
                echo "○";
            }
            if ($birdelikler[$sayx][$sayy] == 0) {
                echo "░";
            }
            echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
}
$sure_bitimi = microtime(true);

if ($sontasadet == 1) {
    echo "buldum : ", $sayhamle, " taş hamlede";
} else {
    echo "bulunmuyor kodları değiştir";
}

$sure = $sure_bitimi - $sure_baslangici;
echo "<br>Çalışma süresi: ", round($sure, 2), " saniye.\n";

//PHP kodlarına ayrılan belleğin miktarını bayt cinsinden döndürür.
echo 'Hafıza kullanımı: ', round(memory_get_peak_usage() / 1048576, 2), 'MB';

?>

xampp, windows 8 de imagemagick eklentisi kurulumu (ingilizce anlatım)

aşağıda yazılan adımları aynen uygulayın. Sakın aşağıdaki linklerdeki dosyaları indirmeyin. onu yerine bu dosyaları yüklediğim eki indirerek bendeki versiyonlarını kurun: gerekli dosyalar burada. teşekkür yorumlarınızı bekliyorum. i hope your thanks.

http://stackoverflow.com/ questions/ 2942523/step-by-step-instructions-for-installing-imagemagick-on-wamp )

bunlar senin imagick class kurulumun için yardımcı olacaktır.

  1. gerekli dosyalar burada indirin.
  2. xampp-win32-5.6.8-0-VC11-installer.exe sürümünü kurun
  3. vcredist_x86.exe (x86) yada vcredist_x64.exe (64bit) kurmayı unutmayın
  4. ImageMagick-6.9.1-5-Q16-x86-dll dosyasını C:\imagemagick, klasörüne kurun. “Add application directory to your system path” seçeneğini işaretleyin.
  5. Gerekiyorsa php_imagick-3.3.0rc2-5.6-ts-vc11-x86 klasöründeki tüm dosyaları sağ tıklayıp w8 in koyduğu engellemeyi kaldırın.
  6. php_imagick-3.3.0rc2-5.6-ts-vc11-x86 klasöründeki php_imagick.dll dosyasını buraya kopyala buraya C:\wamp\bin\php\ext
  7. php_imagick-3.3.0rc2-5.6-ts-vc11-x86 klasöründeki CORE_RL_* ismiyle başlayan tüm dosyaları buraya kopyala buraya C:\wamp\bin\apache\bin\
  8. Düzenle php.ini dosyasını C:\wamp\bin\apache\bin\php.ini, ekle extension=php_imagick.dll satırını extension uzantılarının eklendiği yere
  9. C:\imagemagick\modules\coders ve
    C:\imagemagick\modules\filters klasörlerindeki tüm dosyaları C:\imagemagick klasörüne kopyala
  10. Git Control Panel -> System -> Advanced Settings -> Environment Variables -> New System Variable -> MAGICK_HOME = C:\imagemagick değişkenini oluştur.
  11. Yeniden başlat Wamp server and kontrol et phpinfo() for imagick plugin.
  12. eğer çalışmazsa windowsu yeniden başlatman gerekebilir.

Bir Siteye Başlamadan Önce

Yeni bir projeye başlamaya karar verdik yada yeni bir proje isteği geldi bize. İlk yapmamız gereken nedir. Öncelikle yapacağımız sitenin konusu hakkında fikir sahibi olmamız gerekiyor. Eğer herhangi bir fikrimiz yoksa internetten veya kitaplardan konu hakkında bilgi toplamalıyız. Bu sitenin analiz kısmının başlangıcıdır. Örneğin bir süt ve yoğurt firmasına site yapacaksanız önce o firma hakkında bilgi sahibi olmalısınız. Detaylı bir firma bilgisine ulaşmalısınız. Sonra süt ve yoğurt hakkında bir araştırma yapmalısınız. Sonra bu bilgileri siteye tasarımda yer verilecek bölümleri ayrı ayrı incelenmelidir. Örneğin sütün sağlık kısmı vurgulanacaksa sağlık ve süt bölümü ayrı bir araştırma gerekmektedir. Sonra konu ve bölüm incelememiz sonucunda aldığımız fikirle tasarıma geçebiliriz. Tabi burada sizin 2d ve 3d tasarım bildiğinizin yeteri kadar olduğunu varsayıyorum. Tasarımda ilk yapmamız gereken şey sayfanın genişliğinin belirlenmesidir. Sonra İnternet yapılmış örnek siteler incelenir. Bunun incelemenin sebebi aynısını değil yapıyı öğrenmektir. Bu yapıdan yola çıkarak benzer veya farklı yapıda tasarımlarla ana konsepti belirlemeliyiz. Tasarımda bu yapıyı oluştururken dikkatli olmalıyız.

Tasarımı belirlerken yararlanmamız gereken bazı durumlar söz konusudur. Bunlar tam olarak şunlardır metaryalleri (resim, icon, şekil) sıralama, boyutlandırma, konum, renk ve şekil olarak birbirlerine ve sayfaya göre değerlendirmeliyiz ve konumlandırmalıyız. Bazen zıtlık iyi dururken bazende benzerlik iyi bir görüntü ortaya koyar. Karışık renkler ve şekillerde bazen yararlandığımız durumlardır.

Tasarımın analiz ve ilk adımı bu şekilde başlanırsa konuya daha iyi hakim olursunuz ve başarılı olursunuz. Devamı gelecektir.