Soru Bir satranç motoru yazmak için iyi kaynaklar nelerdir? [kapalı]


Bir satranç motoru (çoğunlukla bir öğrenme alıştırması olarak) yazmakla ilgileniyorum ve insanların ilgisini çekebilecek ya da kullanabilecekleri herhangi bir kaynakla ilgileniyor olacağım, gerçekten bir şey: Kağıtlar, Kitaplar, Teori, Öğreticiler, olabilecek her şey işe yarar.


76
2018-01-30 06:56


Menşei


frayn.net/beowulf/theory.html - SmallChess


Cevaplar:


Arşivlerimden:


101
2018-04-14 19:42



Satranç Programlama Wiki oldukça havalı. - Paul Wicks
İkinci bağlantı şu an: archive.gamedev.net/reference/programming/features/chess1 - Grandpa
Teşekkürler, büyükbaba - bağlantı şimdi düzeltildi. - RoadWarrior
İkinci bağlantı tekrar aşağı. - Imon
@Imon, ikinci bağlantı benim için çalışıyor. - RoadWarrior


Satranç motorumu oluştururken, bir satranç oyunu yaratmanın daha zor yönlerini tanımlayan iyi kaynakları toplamaya çalışmak için aylar harcadım. En yararlı bulduğumların listesi:

François Dominic Laramée tarafından Satranç Programlama

Beni bilgisayar satrancına getiren yazı bu, bilgisayarların satranç oynamasıyla ilgili harika bir bakış. Okuması son derece kolaydır ve sizi tüm terimlere ve anahtar kelimelere tanıtacaktır.

http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/chess-programming-part-i-getting-started-r1014

Bilgisayar satranç wikiBu son birkaç ay içinde gerçekten büyüdü. Referans malzeme için mükemmel bir kaynaktır.

http://chessprogramming.wikispaces.com/

Louis Kessler'in Bilgisayar Satranç Bağlantıları

Yukarıdaki kaynakları inceledikten sonra kalanlar aşağıdaki linkler sayfasında bulunabilir.

http://www.lkessler.com/cclinks.shtml

Son ama en az değil bir Bilgisayar Satranç Bloğu C # 'den bir satranç motorunu sıfırdan yazmanın bütün adımlarını atlatır, bilgisayar satranç linkleri bölümünü ve satranç oyunu başlangıç ​​setini içerir.

http://www.chessbin.com

Adam Berent


27
2018-01-30 07:13



Kesinlikle seni bu konuda kışkırtmak zorundayım! - lkessler


Satrançta yararlı birçok algoritmaya genel bakış - http://www.frayn.net/beowulf/theory.html- Sorunun ölçüsünü anlamak için iyi bir başlangıç ​​noktası olmalı ve hesaplama çalışmasını basitleştirmenin birkaç yolu olmalıdır.

-Adam


9
2018-01-30 07:25





Her zaman bir göz atabilirsin. GNU Satrancı kodu.


4
2018-01-31 21:33





Claude Shannon'un 1949 kağıt konuyla ilgili (uyarı: PDF) iyi bir başlangıç ​​yeri


3
2018-02-01 09:18





Yeni başlayanlar için en iyi satranç programlama öğreticisi GameDev. Çok fazla ayrıntıya girerken bunu anlamak çok kolay.


2
2018-01-30 07:16





Bu temelde Yapay Zeka (AI).

Bir bilgisayar "satranç oyunu" düşünmek için en yaygın yolu kullanarak mini-max yöntemi Bilgisayarın, mevcut durumdan zamanın farklı hareketlerini yapmasını sağlayarak sonuçları "düşünür".

Farklı hareketlerden elde edilen sonuçların "iyiliği", örneğin skor, kalan düşman sayısı, kazanma durumu gibi birçok kritere göre belirlenebilir. Örneğin, oyuncuyu sağa taşırsanız ve oyunu kazanırsanız, bu çok iyi bir durumdur. Ama onu sola taşırsan hiçbir şey alamazsın. Sağa doğru hareket etmek mantıklıdır. "İyiliği" tanımlayan bu işlev genellikle denir Sezgisel Fonksiyon 

Bu süreç birçok dönüş için yinelemeli olarak yapılır. Dönüş sayısı ne kadar fazlaysa, ne kadar zamana ihtiyacınız olacak. Ve dönüş sayısı arttıkça, yazılımınız ne kadar zekidir. Sadece bir dönüşte düşünmek yalnızca açgözlü seçim ile sonuçlanabilir. Akıllı satranç yazılımı büyük bir sezgisel işleve sahiptir ve birçok dönüşte ileriyi düşünür.

ps. Burada açıklanmadığım mini-max algoritmasının bazı ayrıntıları var ama bu temel fikri kapsamalı.


1
2018-05-08 19:18





Ben aynı Wigan Wicks ligine (yukarıda) katıldım, ben de kendi öğrenim adına bir satranç motoru yazmak istiyorum, sadece kısıtlama benim günlük işim (sıkıcı web servisleri ve işleri üzerine çalışmaktır) ama onun değeri acı.

Katman katman yaklaşımını kullanarak oluşturmaya karar verdim. Neredeyse çok oyunculu kısımla, yani (İNSAN / İNSAN) ile geçiniyorum.

Bunu yaptıktan sonra, AI katmanını (COMPUTER vs HUMAN) oyun şemasını desteklemek için dahil etmeyi çok isterim. Bu, en çok endişelendiğim kısımdır. Bu konuda çok güzel yardım ipuçları buldum. hepinize çok teşekkürler.

Şu anda iyi bir şekilde konuştuğum dil, bir performans isabeti olması durumunda Java sonra C ++ 'ya taşıyabilirim.


1