Program szachowy Joanna
Historia programu Joanna...
Program "Joanna" powstał w latach 1992-1994 w ramach pisanej przeze mnie
pracy magisterskiej na Wydziale MIM Uniwersytetu Warszawskiego pod kierunkiem prof. Stanisława Waligórskiego.
Praca została obroniona z wynikiem bardzo dobrym a program w ówczesnej wersji z 94r trafił na kilka lat na "półkę".
I tak leżał przez siedem lat "na półce" by wreszcie nieoczekiwanie,
przy okazji powstania polskiej listy dyskusyjnej poświęconej programowaniu gry w szachy zostać zaproszonym do
udziału w I Mistrzostwach Programów Szachowych , Łódź 13-15 IX 2002.
Pomimo sporych obaw, czy Joanna jest aby w stanie uratować chociaż pół punktu z groźnymi przeciwnikami postanowiłem jednak wziąć udział w Mistrzostwach i nieco program poprawić.
Postanowiłem nieco wzmocnić program i tak powstała wersja Joanna2002.
Wersja Joanna2002
Zapewne interfejs graficzny nieco rozczarowuje, cóż, zaszła pilna konieczność poprawienia siły gry programu i póki co grafika została odsunięta na dalszy plan...
Na ekranie małe literki oznaczają czarne figurki, duża literka białe figury. Posunięcia wprowadza się podając pole źródłowe i pole docelowe (np. e2e4).
Przy promocji program sam zada pytanie, na jaką bierkę zamieniany jest pionek.
Pomimo że wersja 2002 wygląda znacznie mniej atrakcyjnie od tej z 94 roku, jest od tamtej jednak znacznie silniejsza.
Trochę o algorytmie
Większość informacji jest umieszczona w pracy dyplomowej.
Tajemnica wzmocnień w wersji 2002 jest taka, że sporo funkcji programu, które były bardzo najeżone błędami prowadzącymi do osłabienia programu została z niego tymczasowo "wycięta".
Do listy "cięć" zaliczyły się między innymi tak istotne elementy programu jak tablice transpozycji i iteracyjne pogłębianie.
Co zatem zostało i co doszło w stosunku do poprzedniej wersji?
-
Wobec braku iteracyjnego pogłębiania i wymogu kontrolowania czasu trzeba było dodać moduł heurystycznego szacowania czasu potrzebnego do namysłu.
Tak pojawiła się funkcja "calculateDepth" z modułu "AdamProc.c".
-
Pod wpływem ożywionej dyskusji na liście progszach przekonałem się do idei "pogłębiania szachów".
Doszedł zatem nowy parametr procedury AlfaBeta, którego celem jest ograniczanie maksymalnego pogłębienia wskutek szachów.
-
Dokonałem kilku poprawek w funkcji oceniającej.
Oprócz usunięcia kilku zwykłych BUG'ów, jedną z głównych zmian było istotne ograniczenie wpływu na wynik FO wzoru Levy'ego.
W efekcie Joanna wykonuju nieco mniej "szalonych" gambitów za rozwój w debiucie.
Źródła programu
Programu jest programem typu freeware.
Udostępniam kod źródłowy programu i zezwalam na jego uzywanie pod warunkiem umieszczania mojego imienia i nazwiska oraz nazwy "Joanna" we wszelkich pracach wykorzystujących kod źródłowy.
Całe źródła programu można pobrać tutaj.
Kontakt
Można się ze mną kontaktować wysyłając email na mój adres prywatny , proszę nie zrażać się, że jest nieco dziwny...