Boty Szachowe
Prowadzący: Alexander Sieradzki
Tworzymy stockfisha
Opis
rok 1950: Dr. Claude E. Shannon pokazujący international masterowi edwardowi laskerowi jego domowy automat szachowy
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ł.
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:
- Znać zasady szachów i notacje szachową
- Umiejętność programowania w jednym z języków które wymieniłem
- 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.