Skip to content

markok0stic/elfak-vestacka-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Domineering

Ovaj repo predstavlja finalnu verziju aplikacije domineering za kurs: Vestacka inteligencija.

Struktura:

/reports - reporti za svaku od faza 
/sounds - zvuci za samu igru
/src - source code
/src/board.py - sadrzi funkcionalnosti vezane za samu tablu
/src/const.py - sadrzi neke globalne konstante za celokupnu app
/src/domino.py - model domine
/src/form.py - sadrzi funkcionalnosti vezane za pocetnu formu i za pokupljanje unetih podadatak na njoj
/src/game.py - sadrzi funkcionalnosti za odigravanje igre i kontrolise tablu i interfejsno odigravanje poteza
/src/main.py - sadrzi funkcionalnost za kreiranje same table kao matrice i za osvezavanje i slusanje evenata sa GUI-a
/src/square.py - model koji predstavlja jedan square na tabli

Krarak opis:

  • Dakle za resavanj ovog problema koristili smo pygame library koji sadrzi funkcionalnosti za GUI, za osvezavanje i slusanje evenata, za zvuke... Glavna ideja bila je kreiranje table kao matrice objekata tipa Square, gde svaki od njih ima u sebi poziciju na tabli i deo domine koji drzi, u pocetku je to defaultovano na None, kao sto se moze videti u terminalu prilikom pocetka igre.

  • Na svaki odigran potez slusa se event i okida se metoda koja na osnovu koordinata strelice i na osnovu trenutnog igraca odlucuje na kojim pozicijama u matrici je potrebno postaviti dominu. Gde se dalje vrse provere prvo da li je potez ispravan i da li je mesto za postavljanje domine slobodno.

  • Ukoliko sve to prodje postavlja se properti objekata Square, i to piece i domino, na toj i toj poziciji postavlja nova domina i eventualno neki text 'X' ili 'O' cisto za prikaz table preko terminala gde se nakon toga tabla stampa.

  • Takodje se stampaju svi moguci potezi trenutnog igraca u terminalu.

  • Nakon toga se switchuje igrac i nastavlja racunar ukoliko je covek prvi odigrao potez. Onda kada igra racunar, na osnovu svih mogucih poteza odredjuje koje je njegovo najbolji potez, do odredjene dubine gde vrsi heuristiku i na osnovu nje odredjuje koji je najbolji potez.

  • Ukoliko je tabla veca od 5x5 zbog UX je konfigurisan da vrsi odigravanje tacno odredjenih poteza iz pool-a. U prvih 4 poteza, te se zbog toga duze ceka na oidgravanje poteza racunara nakon 4og poteza racunara.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages