Olen jonkin aikaa askarrellut omaa nethack-kloonia Pythonilla. Tarkoituksena on lähinnä opetella Pythonia ja siinä sivussa kokeilla kaikenlaista kivaa. Tämä on eräänlainen ikuisuusprojekti, jonka olen monta kertaa aloittanut, mutta koskaan en ole loppuun asti päässyt (ekat viritykset tein Turbo Pascalilla, sen jälkeen kokeilin C/C++ ja Javaa ennenkuin päädyin Pythoniin).
Tuo on hyvin minimaalinen vielä, pelaaja pystyy kävelemään satunnaisissa kentissä, pieksämään paria erilaista hirviötä ja juomaan taikajuomia. Käyttöliittymä on aika kauhea (nethack-tyyliset näppäinoikotiet), mutta jossain hamassa tulevaisuudessa tarkoituksena olisi tehdä parempi (kunhan ensin oppii vähän enemmän tuosta PGU-kirjastosta).
Projekti on avointa lähdekoodia. Koodia pääsee selailemaan alla olevan linkin kautta selaimessa tai sitten lataamalla koodit omalle koneelle (snapshotista saa viimeisimmät koodit, joiden yleensä pitäisi olla toimivat).
Periaatteessa perustuu Time of Warin sääntösysteemiin löyhästi, mutta tuossa on vielä niin vähän toimintaa, ettei sitä oikeastaan huomaa.
Projekti löytyy osoitteesta: pyherc ja käyttöohjeet ym. sälää: manuaalit.
Kaikenlaiset kommentit, kysymykset ja ehdotukset otetaan kiitollisena vastaan.
Selailin hieman tiedostoja. Koodi näytti siistiltä, selkeältä ja Pythonin koodikäytäntöjen mukaiselta. Mikään isompi asia ei pistänyt silmään.
Ohjelmointikieleen liittyvänä yksityiskohtana eräs "switch-case"-kohta oli tehty if-elif-elif-rakenteella. Usein niissä käytetään dictiä tähän tapaan:
log_levels = {'debug': logging.DEBUG, 'info': logging.INFO, 'warning': logging.WARNING, 'error': logging.ERROR, 'critical': logging.CRITICAL} args = sys.argv for argument in args: if argument in log_levels: self.log_level = log_levels[argument]
Mainittu kohta: https://github.com/tuturto/pyherc/blob/master/
Totta, tuo on paljon siistimpi tapa tehdä vertailu. Kiitos vinkistä, ei ole tullut aikaisemmin vastaan / ajatelleeksi tuota.
Aihe on jo aika vanha, joten et voi enää vastata siihen.