Sunteți pe pagina 1din 8

PREZENTAREA ESTE

AUTOMATA, PENTRU
A INCEPE TASTAI F5

Algoritmul jocului de Șah


Gonta Nicolai
Conceptele de bază care ne vor ajuta să creăm o simplă
joaca de șah sunt următoarele:
• mutare generație
• evaluarea consiliului
• min/max
• tăierea beta/alfa
• Pentru vizualizarea plăcii vom folosi biblioteca chess.js pentru
generarea mișcărilor și chessboard.js .Biblioteca de generare a
mișcărilor implementează practic toate regulile șahului. Pe baza acestui
lucru, putem calcula toate mutările legale pentru un stat de bord dat.

• Utilizarea acestor biblioteci ne va


ajuta să ne concentrăm numai pe cea
mai interesantă sarcină: crearea
algoritmului care găsește cea mai
bună mișcare.
Pasul 2: Evaluarea poziției
• Să încercăm acum să înțelegem care
parte este mai puternică într-o anumită
poziție. Cel mai simplu mod de a realiza
acest lucru este să numărați rezistența
relativă a pieselor de pe tablă folosind
următorul tabel:
Pasul 3: Căutam arborele folosind Minima
• În continuare, vom crea un arbore de căutare din
care algoritmul poate alege cea mai bună mișcare.
Acest lucru se realizează folosind algoritmul
Min/max.
• În acest algoritm, arborele recursiv al tuturor
mișcărilor posibile este explorat la o adâncime
dată, iar poziția este evaluată la sfârșitul
„frunzelor” arborelui.
• După aceea, revenim fie cea mai mică sau cea mai
mare valoare a copilului la nodul părinte, în funcție
de faptul dacă acesta trebuie să se deplaseze alb
sau negru. (Adică, încercăm să minimalizăm sau să
maximizăm rezultatele la fiecare nivel.)
Pasul 4: Tăierea alfa-beta
• Tăierea alfa-beta este o metodă de optimizare a
algoritmului min/max care ne permite să ignorăm
unele ramuri din arborele de căutare. Acest lucru
ne ajută să evaluăm arborele de căutare min/max
mult mai profund, în timp ce folosim aceleași
resurse.
• Tăierea alfa-beta se bazează pe situația în care
putem opri evaluarea unei părți din arborele de
căutare dacă găsim o mișcare care duce la o
situație mai rea decât o mișcare descoperită
anterior.
• Tăierea alfa-beta nu influențează rezultatul
algoritmului minimax - îl face doar mai rapid.
Pasul 5: Funcția de evaluare îmbunătățită
• Funcția de evaluare inițială este destul de
naivă, deoarece numărăm doar materialul
care se găsește pe tablă. Pentru a
îmbunătăți acest lucru, adăugăm la
evaluare un factor care ține cont de poziția
pieselor. De exemplu, un cavaler din
centrul plăcii este mai bun (pentru că are
mai multe opțiuni și este astfel mai activ)
decât un cavaler de la marginea plăcii.
• Vom folosi o versiune ușor ajustată a
tabelelor pătrate, care sunt descrise inițial
în chess-programming-wiki..
Concepte de bază

mutare evaluarea tăierea


min/max
generație consiliului beta/alfa

S-ar putea să vă placă și