Kirjautuminen

Haku

Tehtävät

Keskustelu: Projektit: herculeum - Nethack-klooni Pythonilla

tuturto [16.05.2012 07:48:01]

#

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.

Chiman [16.05.2012 09:28:48]

#

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/src/pyherc/application.py#L51

tuturto [16.05.2012 22:26:13]

#

Totta, tuo on paljon siistimpi tapa tehdä vertailu. Kiitos vinkistä, ei ole tullut aikaisemmin vastaan / ajatelleeksi tuota.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta