General
Cursuri
Laboratoare
Teme
General
Cursuri
Laboratoare
Teme
Aceasta e o versiune anterioară a paginii.
Scopul temei este implementarea jocului Kalah (denumit și Mancala). Modul de joc este descris aici. Se va implementa varianta de Kalah cu 48 de piese.
În final, programul vostru:
Rezolvarea temei este structurată pe etapele de mai jos. Începeți prin a vă familiariza cu structura arhivei de resurse. În rezolvare, exploatați testele drept cazuri de utilizare a funcțiilor pe care le implementați.
Implementați tipurile de date și funcțiile din fișierul Board.hs
, conform indicațiilor locale. Testele aferente se găsesc în fișierul BoardTest.hs
. După implementarea (eventual parțială) a tablei și a mutărilor, puteți utiliza funcția twoHumans
din fișierul Interactive.hs
: introduceți numărul casei (de la 1
la 6
, numerotat de la stânga la dreapta), urmat de Enter
, pentru precizarea mutărilor.
Pentru implementarea tablei de joc, aveți în vedere utilizarea unei structuri de date care să permită parcurgerea și actualizarea ușoară a numărului de semințe din fiecare casă. De asemenea, gândiți structura Board
astfel încât să vă faciliteze implementarea funcțiilor exportate de Board.hs
.
Implementați funcția step
din fișierul AISimple.hs
, conform specificațiilor locale. Euristica propusă este de aplicare a acelei mutări care conduce la scorul maxim al calculatorului în pasul următor. Testele aferente se găsesc în fișierul AISimpleTest.hs
. Pentru testare, utilizați funcția userMode
din fișierul AISimple.hs
.
TODO
Data.List
și Data.Sequence
. Ambele biblioteci vă pot fi utile atât pentru construirea tablei de joc, cât și pentru proiectarea algoritmilor de parcurgere a acesteia.
Organizarea arhivei și modalitatea de rulare a testelor sunt descrise în fișierul readme.txt
.