Minimax Algoritması ve XOX

Arkadaşlar minimax algoritması ile XOX yazdım bir yerden bakarak, anlamaya çalışarak ama aklımda bir soru işareti var. Fonksiyon, bilgisayarın kazandığı durumlarda +1 dönüyor. Peki bilgisayar en çok +1’e ulaştığı ilk hamleyi mi oynuyor. Örneğin:

Ben ilk hamle olarak ortaya oynadım ve bilgisayar bütün ihitmalleri fonksiyon ile hesaplamaya başladı. Sağ üste koydu ve diyelim ki 100 olası sonuç hesapladı. Bunun 80 tanesini o kazanıyor. Sonra orta üste koydu ve bunun da 40 tanesini o kazanıyor. Böyle bütün ihtimallere baktı diyelim. Bilgisayar sağ üste mi oynar?

Cevap “evet” ise ben ortaya oynadığımda sağ üste koyması ile sol üste ya da sol alta ya da sağ alta koyması arasında bir fark yok aslında. Bunu rastgele mi yapıyor?

Bilgisayarın nereye hamle yapacağını anlatabilir misiniz?

Google’ın xox’inden yararlanarak bakabilirsin. Yanlış bilmiyorsam imkansız modunda rastgelelik yok, ya da çok az var.
Mesela sol üste X koyulduğunda daima ortaya O konularak başlanıyor.

1 Beğeni

Hayir, istatistiki bir durum yok.

Karsi taraf yaptigi 99 hamlede kaybedip 1 hamlede kazaniyorsa 1 hamleyi yaptigi varsayiliyor. Diger taraf icin de aynisi gecerli.

Çıktıya baktığımda birden fazla “+1” dönülüyor. Hangisini oynuyor?

alfa-beta budaması yaptırmıyorum

Kendisi icin en iyi olani oynamasi lazim. O da karsi taraf kendisi icin en iyi olani oynadiktan sonra belirleniyor. O da onun karsi tarafi kendisi icin en iyi olani oynadiktan sonra…

En asagiya kadar esitlik devam ediyorsa hangisini oynadiginin bir farki oldugunu zannetmiyorum. Nuans olarak karsi tarafi en cok “zorlayan” yol secilebilir ama bu algoritma nedzinde bir fark yaratmayacaktir.

En son +1 dönen hamleyi oynuyor.

Bu hamlelere kadar çizdim. Sarı olan, o sıra oynayan ve durum 4’e ayrıldığında sol ortaya oynayınca kazanma ihtimali 2/6 iken sol alta oynar ise 3/6. Buna rağmen orta sola oynuyor.

2 Beğeni

Algoritmaya gel; sadece bir anadaldan 24 farklı sonuç türemiş. Konuyla pek alakam yok ama görünüşe göre zor bir iş.

Size kolay gelsin. :slight_smile:

1 Beğeni

Haftalardır ben de bu konuyla uğraşıyorum :smiley: Konu sahibi sanırım konsol üzerinden yapıyor. Benim de pyqt5’te buna benzer bir olayım var. Bir şekilde kısaltmaya çalışıyorum kodları.

1 Beğeni

Ihtimal yok. Istatistik yok. Herkes kendisi icin en iyi hamleyi yapiyor, kesin olarak.

Minimax yazmadan once bunu anladiginizdan emin olunuz.

2 Beğeni

Emin olmak için biraz daha araştırma yaptım ve @aib’in dediği gibi en doğru (en yüksek değer dönülen hamle) oynanıyor. XOX’de ise +1, 0 ve -1 olduğu için +1 dönülen hamle oynanacak. Hangi +1’in olduğuna da @coderistan’ın dediği gibi en son dönülen hamle oynanıyor. Herkese teşekkür ederim :slight_smile:

2 Beğeni