PROIECT MOTHELLO

 
 M  E  N  I U
 
 [Introducere]
 [Teoria jocului]
 [Algoritmul MiniMax]
 [Alfa-Beta prunning]
 ...[Detalii tehnice]
 [Go Play]
 
 [Pagina welcome]
 [Back]
 

Am realizat un applet care sa implementeze jocul de othello implementand strategiile descrise in sectiunile anterioare. Jocul se desfasoara intre oponenti umani si oponenti AI. Oponentii AI au mai multe nivele, dupa cum urmeaza:

  • Nivelul -1 - este nivelul la care calculatorul joaca foarte prost (in sensul ca ajuta adversarul). Foloseste alfa-beta search pana la o adancime de 3 half-plys, iar functia de evaluare este astfel construita incat sa ajute adversarul: calculatorul considera o pozitie favorabila atunci cand adversarul are mai multe piese pe tabla.
  • Nivelul 0 - la acest nivel, calculatorul muta aleator. Am folosit acest nivel in cadrul dezvoltarii, pentru testarea celorlalte nivele.
  • Nivelul 1 - la acest nivel calculatorul foloseste alfa-beta search, cu o adancime de 3, si o functie de evaluare de complexitate constanta dar destul de mare (12*64), folosind 6 parametrii pentru evaluarea tablei de joc. De asemenea, calculatorul foloseste si tehnica "incremental depth", in sensul ca, pentru o pozitie considerata "periculoasa", adanceste cautarea in arbore pana la nivelul 5.
  • Nivelul 2 - are adancimea de cautare 5 si "incremental depth" pana la 7. Deoarece timpul de cautare creste, foloseste si o varianta simplificata a functiei de evaluare de la nivelul 1.
  • Proiectul este alcatuit din urmatoarele surse java:

  • mothello.java - appletul principal al aplicatiei
  • Player.java - interfata implementata de ambele tipuri de jucatori: AI si uman
  • AIPlayer.java - jucatorul AI. Contine logica jucatorului AI
  • Evaluation.java - clasa care contine functiile de evaluare
  • gameBoard.java - canvas care contine tabla de joc; implementat ca un thread
  • HumanPlayer.java - jucatorul uman. Proceseaza mutarile operatorului
  • move.java - clasa care descrie o mutare
  • scorePane.java - clasa care contine afisare scorului si a istoricului de mutari
  • board.java - clasa care contine reprezentarea interna a tablei de joc
  •  
     

    2002 copyright Cimpoesu Marius Laurentiu.