Boty Szachowe

Prowadzący: Alexander Sieradzki


Tworzymy stockfisha
Kategorie: informatyka

Opis

2-0 and 2-1.shannon lasker.prior 1970.102645398.NEWBORN.lg.jpg

rok 1950: Dr. Claude E. Shannon pokazujący international masterowi edwardowi laskerowi jego domowy automat szachowy

ChessLevy1979zdf.jpg

rok 1979: international master david levy uciskujący "dłoń" silnika chess 4.8 po grze. David levy zrobił zakład że przez 10 lat nie powstanie silnik na tyle silny by go pokonać w grze turniejowej. Ten zakład wygrał.

5-0 and 5-4.Kasparov.Game 6 Deep Blue vs Kasparov.Philadelphia.1996.NEWBORN.lg.jpg

rok 1996: Garry Kasparov mistrz świata grający z Deep Blue. Było to pierwsze zwycięstwo komputera z aktualnym mistrzem świata w regularnej kontroli czasowej.

Boty szachowe od tego czasu jeszcze bardziej się rozwineły teraz część z nich nawet używa sieci neuronowych ale naślilniejszy z nich stockfish nadal używa technik i metod które były używane przez deep blue i silniki przed nimi.

My na tych warsztatach będziemy robić właśnie taki silnik szachowy. Poznamy z tym techniki użytechne w silnikach do innych gier podobnych do szachów. Nasze boty szachowe dodatkowo będą działały na lokalnie postawionym lichessie co umożliwi naszym botą granie na siebie by się przekonać jaki bot jest najsilniejszy.

Wymagania

Każdy może programować w swoim języku programowania pod warunkiem że ten język posiada dobrą biblioteke szachową która może generować legalne ruchy, włożyć i ściągnąc ruchy itp. poniżej kilka języków dla których znalazłem takiego typu bilbioteki:

Python: https://python-chess.readthedocs.io/en/latest

c++: https://github.com/billforsternz/thc-chess-library

c#: https://github.com/rudzen/ChessLib

rust: https://docs.rs/chess/latest/chess/

Wymagane cechy i umiejętności:

  1. Znać zasady szachów i notacje szachową
  2. Umiejętność programowania w jednym z języków które wymieniłem
  3. Własny laptop do programowania i postawienia swojego bota

Przydatne rzeczy

Do uczenia się zasad grania w szachów polecam https://lichess.org/learn#/

Do uczenia się notacji szachowej podaje ten artykuł po angielsku: https://www.chess.com/article/view/chess-notation

Do rozwiązania zadania 4 polecam używać dokumentacje bilbioteki jakiej bedziecie używał. najprościej te zadania zrobić w pythonie.