Pygame - križić - kružić mišljenje

poruka: 2
|
čitano: 2.786
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Pygame - križić - kružić mišljenje

Pozdrav,

zadnjih par dana malo sam se zabavljao sa pygame-om i Photoshopom (original naravno {#}), uglavnom koristeći Google kao izvor informacija, i kao kruna svega je nastalo ovo. Pa me zanima mišljenje šire publike o dizajnu, razumljivosti koda, manama, prednostima i svime što bi moglo pomoći mi u daljnjem napredku.

Korišteni su:

Python 3.2

Pygame

 * Pygame modul mora biti instaliran kako bi aplikacija radila, pokušavao sam stvoriti .exe al je živa muka natjerati to sve u skladan rad.

Ako ima netko zainteresiran mogu i pojasniti dijelove koda.

 

EDIT: AI je blentav, za sada radi samo na random, ali u planu mi je promijeniti to.

 

Par screenshota:

https://dl.dropboxusercontent.com/u/51882943/xo_menu.PNG

https://dl.dropboxusercontent.com/u/51882943/ingame.PNG

Poruka je uređivana zadnji put pon 2.12.2013 17:41 (3ler).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pygame - križić - kružić mišljenje

Općenito: lijepo izgleda i radi OK.

 

  • Pozivanje funkcije s razmakom na prije zagrade s parametrima nije uobičajena praksa, a i funkcije se obično imenuju lowercase. Bookmarkiraj PEP 8 u kojem su pobrojane glavne konvencije za Python kod.

 

 

  • Koristi to što je svaka Pythonova vrijednost ili False (npr. None, broj 0, prazna lista) ili True. Npr. ova funkcija:

def zauzeto (x, y, polje):
    if (polje[x][y] != None):
        return True
    return False

 

se može napisati ovako:

 

def zauzeto (x, y, polje):
    return polje[x][y]

 

 

  • koristi dictionary umjesto dugih if-ova:

def ispisiPobjednika (pobjednik, polje):
    coord = (56, 210) 
    if pobjednik == O:
        DISPLAYSURF.blit (o_pobImg, coord)
    if pobjednik == X:
        DISPLAYSURF.blit (x_pobImg, coord)
    if pobjednik == N:
        DISPLAYSURF.blit (nerjesenoImg, coord)

 

Ako na početku programa definiraš

 

END_MESSAGES = {X: x_pobImg, O: o_pobImg, N: nerjesenoImg}

 

ovu funkciju možeš napisati ovako:

 

def ispisiPobjednika (pobjednik, polje):
    coord = (56, 210)
    DISPLAYSURF.blit(END_MESSAGES[pobjednik], coord)  

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice