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 ucuzeticaret.com.tr 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';

?>

16 gb usb bellek

tamam bu soruyu siz bilin bakalım. Bende sadece ama sadece bir 16 gb usb bellek var ve bu usb bellek bana ileride çok lazım olacak hatta hayatımı kurtaracak. Ondan başka hiç bir şeyim yok. elbisem bile yok. Ben her şeyi ama her şeyi olan bir arkadaşıma rastladım. bu usb belleğin içindeki dosyaları arkadaşım çok beğendi ve benden almak istiyor. benimse bilgisayara kopyalayacak kadar vaktim yok. yani bu usb belleği bilgisayara sokmadan içindeki bilgileri arkadaşıma vermek istiyorum. Acaba nasıl?

🙂 Usb belleği arkadaşıma veririm aynı bellekten bir başkasını arkadaşımdan alırım. Çünkü arkadaşımda her şey var.

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.

Satranç Nedir?

bu yazımda uzun yıllar araştırmasını yaptığım satranç nedir sorusuna cevap arayacağım.

öncelikle şunu söyleye bilirim ki satranç oynayan herkes satrancın yaşama ne kadar anlam kattığını ve hayatı düşüncede daha iyi kavramaya yardımcı olduğunu bilir. Oyun ve spor, insanların sadece zaman geçirmek için değil beynindeki fikirleri teorikten pratiğe en hızlı nasıl cevirebileceğini, düşünme sanatını en iyi kullanma yönetimini, vücut ve  beyin özelliklerini bulmayı, gizli kalmış yeteneklerini ortaya çıkarmayı en iyi şekilde sağlar. Sağlam kafa sağlam vücutta bulunur sözü gerçekten de çok doğrudur ve sadece söylenip geçilecek bir söz değildir üzerinde uzun uzun düşünmek gerekir. satranç sporu da işte bu anlattığım konularda bizi tamamen pozitif yönde etkiler.

peki Ahmet söyle bakalım satranç nedir? cevabı basit: satranç nesnel (madesel olarak) taşlardan oluşmuş bunların konumlarına göre analiz yapılarak karşı tarafın şahını yemek. Bakın bu sözümde adı geçen analiz kelimesiyle şunu kast ediyorum: maddenin (madde burada taş) durumları nelerdir. 2. maddenin amacımıza yönelmek için yapmamız gereken plana uygun mudur? kazanma olasılığımız nedir? bu 3 sorunun cevabını her hamle yapmamızdan önce bularak yani analizini yaparak hamlemizi yapmak.

işte satranç yukarıda anlattığım her kelimenin anlamıdır

Satrançta Altın Kuralllar

1.Taşların her biri birer nesnedir. Nesne olmanın tüm özellikleri herbir taşta mevcuttur. Bu özellikleri inceleyelim:

  1.a. Nesne her zaman boşlukta bir yer kaplar. Kapladığı bu yer o nesnenin varlığını sürdürebilmesi için gereklidir. (MADDE OLMA ÖZELLİĞİ)

  1.b. Nesne arkasında olduğu diğer nesneyi korur. arkasındakine yapılacak bir etki önce kendisine geleceği için kalkan görevi görür. (ENGELLEME ÖZELLİĞİ)

  1.c. Nesne önünde bulunan nesne tarafından korunur. Nesneyi koruma yöntemlerinden biri de nesnenin önüne başka bir nesne koymaktır. (ENGELLENE BİLME ÖZELLİĞİ)

  1.d. Nesne diğer nesneleri etkileyebilir. satrançta bu duruma diğer taşı alma denir. bir nesne başka nesneye saldırarak o nesneyi etkisiz hale getirebilir. (SALDIRI ÖZELLİĞİ)

  1.e. Nesne bulunduğu konum itibariyle diğer nesneler tarafından saldırıya uğrayabilir. (SALDIRIYA UĞRAMA ÖZELLİĞİ)

  1.f. Nesne pozisyon değiştirerek arkadaşı olan diğer nesnelerin düşman tarafından yenilebilmesini neden olur. (KORUMASIZ BIRAKMA ÖZELLİĞİ)

  1.g. Nesne pozisyon değiştirerek düşman nesnelerin saldırısından kurtulabilir. (KAÇMA ÖZELLİĞİ)

  1.h. Nesne pozisyon değiştirerek arkasında bulunduğu düşman nesnesini korumasız yada saldırıya uygun pozisyona getirebilir. (PUSUYA DÜŞÜRME ÖZELLİĞİ)

2. Taşların pozisyon bakımından saldırı ve koruma olarak ana iki bölüme ayrılır:

  2.a. Saldırı Bakımından Taşlar:  Bir taşın nesne olması özelliklerinden biri olan saldırı yapabileceğini anlattım (1.d.). O halde saldırı yapan bir taş yediği diğer taşın konumuna geldiğinde yeni konumuna göre artık bütün nesne olma özellikleri değişir. Saldırıda dikkat edilmesi gereken en önemli husus şudur; saldırı yapan taş eğer iki taşa birden saldırabiliyorsa öncelik kendisinde puanca fazla olan taştır. Eğer iki taşta aynı puandaysa bu seferde öncelik kendisine zarar vermeyecek en uygun saldırıdır.

  2.b. Koruma Bakımından Taşlar: Bir taş başka bir taşı (Şah) mat olmamak için yada kendinden daha puanı yüksek bir taşın yenilmesini engellemek için koruma yapabilir.

YUKARIDA ANLATTIĞIM NESNE ÖZELLİKLER VE POZİSYON DURUMLARI, BİR TAŞIN ÜZERİNDE, TAKIM TAŞLARINA YADA DÜŞMAN TAŞLARINA KARŞI SINIRSIZ SAYIDA TEKRARLAYABİLİR.

Ör: Bir taş aynı anda birden fazla taşı koruyabilir (1.b.). Veya bir taş birden fazla taşı saldırı bilir (1.d.). Veya bir taş birden fazla taşı pusuya düşürebilir (1.h.)

SONUÇ OLARAK. Satrançta iyi bir oyuncu olmak istiyorsak bu temel kuralları iyi bilmeli ve bu kuralları, her hamlede her taş için çok sayıda (uygun olabilecek sayıda) tekrarlayarak uygulamalıyız.

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.