kolmapäev, 21. jaanuar 2015

Smartchess 1.0

Jõudsime valmis mängitava PyGame'i versiooniga. http://pastebin.com/T2cGz8SP
Mängu mängimiseks on vaja kogu folderit, Pythonit ja Pygame'i



See oli meie esimene programm PyGame'is. Uus versioon kasutab programmiväliseid pilte, seekord pole programm vaid üks fail. Nii saab graafikat uuendada piltide kaustas muutmisega, ei pea koodi sisse ronima. Kuna see vajab oma kausta ja mitut faili niikuinii, siis nüüd programm ka salvestab oma sätted tekstifaili. Hetkel saab muuta resolutsiooni (soovitatav on keskmise peal mängida, teistel on graafika kas kokku pressitud või välja venitatud), nuppude ostmist üleüldiselt (kui väljas siis on tavaline male), lippude ostmist, nuppude asetamist ostmisel, tule kontrollimist ja etturi väärtust.

Tagantjärele tarkusega oleks võinud kodeerida mängutsüklit palju pareminim praegu on pausi peale panek ja allaandmine piiratud peaaegu ainult käimise ajale (kuid selle saab parandada).

Veel asju, mis võiks paremaks teha: valida font, mille tähemärgid on sama suured, et joonistatud tekst ei hüppaks ringi kogu aeg (märgatav 7 puhul kui taimerit vaadata); paremad nupud/menüüd; üle viia nupud .png piltidele (hetkel on need PyGame'is endas joonistatud), siis saab neid kasutada ka ostmise piltidena (Ma ei ole kindel, kuidas piltides nähtamatus töötab PyGame'is, kuid arvatavasti ei ole PyGame'is ainult nelinurksed sprite'id); lisada helid; lisada menüüdele nuppe juurde (nt oleks vist parem, kui saaks lahkuda mängust mängusiseselt, hetkel saab seda teha vaid operatsioonisüsteemi poolt antud käskudega).

Sätete lugemisel õppisin sõnastiku andmemassiivi hindama. Lugemine tuli keeruline, kui tahtsin midagi sellist, millele võiks teisi sätteid juurde kirjutada nii, et ei peaks kogu koodi ümber kirjutama. Kui tekstifailis on sätted kirjas valemiga "x = y", kus x on sätte nimi (nt "check") ja y on sätte väärtus (nt "True") siis saab lihtsalt need splittida ja tekitada sõnastikus muutuja nimega x väärtusega y (booleanide jaoks oli vaja kirjutada funktsioon, mis muutis stringid booleaniks) ja hiljem kui vaja kontrollida millegi väärtust sai kasutada y leidmiseks options[x].


Kommentaare ei ole:

Postita kommentaar