laupäev, 25. oktoober 2014

SmartChess beta 1.5

Uus kood: http://pastebin.com/AStgS5Fk

Tegin mõned vorminduslikud muudatused ning täiendasin juhendit. Nagu oli videost näha, otsustasime arvutamise teha kolmekohaliste arvudega, kuid see on vist nüüd liiga tugev. Selle kasulikkust (nuppude hinda) saab muuta kui koodi sees muuta konstanti "pawnValue". Males on nuppudel konstantsed punktiväärtuste suhted (ettur 1 punkt, oda ja ratsu 3 punkti, vanker 5, lipp 9), niiet kui etturi väärtust suurendada siis automaatselt suurenevad ka teiste nuppude väärtused (nt lipu väärtus on meie koodis 9*pawnValue). Peaks märkima, et ettureid ise ei saa osta, sest see oleks liiga tugev ja tülikas (Kas ostetud ettur võib käia 2 sammu ette? Mis siis kui ta käib ühe sammu, kas siis ka? Kas ainult need etturid saavad käia 2 sammu kes pole liikunud? Siis peaks iga etturi kohta teadma, kas ta on liikunud või mitte. Samas oleks väga kerge mingi ratsu või odaga liikuda vastase tagumisele reale ja siis see lipuks muuta, põhimõtteliselt säästes 5 punkti).

Räägin lähemalt vormindusest, sest see osutus päris keeruliseks. Guugeldamise abil leidsin mooduli textwrap, koodis nägi esimene versioon niimoodi välja:

    for x in range(len(tutorialText)//70+2):
        print(textwrap.wrap(tutorialText)[x])

Kusjuures enne pidi importima textwrapi ja tutorialText on string juhendi tekstist. Ma ei saanud esialgu aru, kuidas see moodul töötab. Siis ma mõtlesin, et tegelikult see ju lihtsalt splittib stringi osadeks ja võttab sellest uuest tekkinud massiivist mingi kindla stringi. Niiet ma kirjutasin selle ümber:

    for x in range(len(textwrap.wrap(tutorialText))):
        print(textwrap.wrap(tutorialText)[x])

Tegelikult vist saaks isegi kirjutada see niimoodi:

    for x in textwrap.wrap(tutorialText):
        print(x)

Igatahes, on probleem praeguse koodiga see, et tutorialText on üks hästi suur string. See tähendab, et kui keegi tahaks midagi juhendis muuta, on väga raske leida Pythonis õiget kohta üles (sest kogu see jutt on ühes reas). Ma oleks võinud tekitada tekstifaili kuhu saaks kirjutada, aga see tähendaks, et peab saatma ühe faili asemel kaks (kui saata mäng inimestele, kes pole varem seda mänginud ja tahavad juhendit lugeda) ja see oli mulle vastumeelne. Kui on väga vaja, võin kirjutada funktsiooni, mis lihtsustaks juhendi muutmist, kuid hetkel pole see vajalik.

1 kommentaar:

  1. 1. Koostöö

    Õppijatel oli selge rollijaotus ja sisulised otsused olid tehtud koos.


    2. Teadmiste kasv ja interdistsiplinaarsus
    Konkursitöö põhirõhk oli teadmiste kasvul ning teema oli seotud konkreetse õppeainega.
    3. Probleemide lahendamine ja innovaatilisus
    Töö põhieesmärk oli realistliku probleemi lahendamine ning apakutud idee on rakendatav ka laiemalt.
    4. IKT vahendite kasutamine
    Õppijad kasutavad IKT vahendeid otstarbekalt ja aktiivselt probleemide lahendamisel ning innovatsiooni loomisel.
    5. Visuaalsus ja kvaliteet
    Soovitused:
    Väga tublid! Arengumappi lisada veel pilte endast tööprotsessi käigus.

    VastaKustuta