def save(): '''Funktio kysyy pelaajan nimen ja tallentaa tämän ajan että liputetut miinat''' elementit['vikaik'] = iku.luo_ali_ikkuna('') iku.luo_tekstirivi(elementit['vikaik'], 'Kirjoita nimesi') elementit['vika'] = iku.luo_tekstikentta(elementit['vikaik']) iku.luo_nappi(elementit['vikaik'], 'Syötä', nimi)
def tilastot(): palikat["tilasto"] = ik.luo_ali_ikkuna("Tilastot") ylakehys = ik.luo_kehys(palikat["tilasto"], ik.YLA) alakehys = ik.luo_kehys(palikat["tilasto"], ik.ALA) nollaa = ik.luo_nappi(alakehys, "Nollaa tilastot", nollaus) palikat["tilastolaatikko"] = ik.luo_tekstilaatikko(ylakehys, 55, 25) ik.kirjoita_tekstilaatikkoon(palikat["tilastolaatikko"], tilasto())
def lisaaKomponenttiKL(): """ Komponentin lisäys listaan. """ ikn.piilota_ali_ikkuna(KLIITTYMÄ["wizAk"]) lisaaKompAkkuna = ikn.luo_ali_ikkuna("Lisää komponentti") ikn.luo_tekstirivi( lisaaKompAkkuna, "Lisää komponentti (v)astus = (r), (k)ela = (l) tai (c)ondensaattori.") KLIITTYMÄ["syote"[0]] = ikn.luo_tekstikentta(lisaaKompAkkuna) ikn.luo_vaakaerotin(lisaaKompAkkuna) ikn.luo_tekstirivi(lisaaKompAkkuna, "Anna komponentin arvo ilman yksikköä:") KLIITTYMÄ["syote"[1]] = ikn.luo_tekstikentta(lisaaKompAkkuna) ikn.luo_vaakaerotin(lisaaKompAkkuna) ikn.luo_tekstirivi(lisaaKompAkkuna, "Anna lisättävän haaran ID (numero):") KLIITTYMÄ["syote"[2]] = ikn.luo_tekstikentta(lisaaKompAkkuna) ikn.luo_nappi(lisaaKompAkkuna, "Lisää komponentti", lisaaKomponentti) ikn.luo_vaakaerotin(lisaaKompAkkuna) ikn.luo_tekstirivi(lisaaKompAkkuna, "Komponentit:") KLIITTYMÄ["komplistaus"] = ikn.luo_tekstilaatikko(lisaaKompAkkuna, leveys=40) if KLIITTYMÄ["komponentit"] != [[]]: komponenttilistaus()
def nimi(): '''Tallentaa sen nimen''' stats['nimi'] = iku.lue_kentan_sisalto(elementit['vika']) iku.tyhjaa_kentan_sisalto(elementit['vika']) iku.piilota_ali_ikkuna(elementit['vikaik']) ali = iku.luo_ali_ikkuna('') liput['save'] = True iku.luo_tekstirivi(ali, 'Tulokset tallennettu!')
def lue_tilastot(): """ Tulostaa pelattujen pelien tilastot. """ tilastoikkuna = ikkunasto.luo_ali_ikkuna("Tilastot") tilastolaatikko = ikkunasto.luo_tekstilaatikko(tilastoikkuna) for peli in tilastot: ikkunasto.kirjoita_tekstilaatikkoon(tilastolaatikko, peli)
def tulokset(): '''Funktio hakee tulokset tallennetusta tiedostosta sekä näyttää ne pelaajalle''' with open('tulokset.txt') as file: data = json.load(file) piste = iku.luo_ali_ikkuna('Tilastot') print(data) for p in data['tilasto']: print(p) iku.luo_tekstirivi( piste, 'Nimi: {}, Liputetut: {}, Aika: {}'.format( p['nimi'], p['liputetut'], p['aika']))
def valinnat(): palikat["valinnat"] = ik.luo_ali_ikkuna("Valinnat") ylakehys = ik.luo_kehys(palikat["valinnat"], ik.YLA) syotekehys = ik.luo_kehys(ylakehys, ik.VASEN) nappikehys = ik.luo_kehys(ylakehys, ik.VASEN) korkeusohje = ik.luo_tekstirivi(syotekehys, "Korkeus:") palikat["korkeuskentta"] = ik.luo_tekstikentta(syotekehys) leveysohje = ik.luo_tekstirivi(syotekehys, "Leveys:") palikat["leveyskentta"] = ik.luo_tekstikentta(syotekehys) miinatohje = ik.luo_tekstirivi(syotekehys, "Miinojen lukumäärä:") palikat["miinatkentta"] = ik.luo_tekstikentta(syotekehys) oknappi = ik.luo_nappi(nappikehys, "Ok", ok)
def nayta_lopputulos(voitto=False): """ Näyttää pelaajalle pelatun pelin tiedot pelin päätyttyä. """ loppuikkuna["ikkuna"] = ikkunasto.luo_ali_ikkuna("Lopputulos") if voitto: ikkunasto.luo_tekstirivi(loppuikkuna["ikkuna"], "Voitit pelin!") else: ikkunasto.luo_tekstirivi(loppuikkuna["ikkuna"], "Osuit miinaan. Hävisit pelin.") ikkunasto.luo_tekstirivi(loppuikkuna["ikkuna"], "Kesto: {:.1f} minuuttia, {} vuoroa".format( tilastokirja["kestoaika"], tilastokirja["kestovuorot"] )) ikkunasto.luo_nappi(loppuikkuna["ikkuna"], "Valikkoon", sulje_lopputulos)
def aloita_peli(): '''Funktio kysyy pelaajalta kentän koon sekä miinojen määrän sekä palauttaa nämä arvot. Avataan ali-ikkunaan jonne syötetään kentan leveys, korkeus sekä miinojen määrä (ei implementoitu vielä).''' ala = iku.luo_ali_ikkuna('') ala_kehys1 = iku.luo_kehys(ala) ala_kehys2 = iku.luo_kehys(ala) ala_teksti1 = iku.luo_tekstilaatikko(ala_kehys1, 20, 1) iku.kirjoita_tekstilaatikkoon(ala_teksti1, "Anna kentän korkeus") elementit["korkeus"] = iku.luo_tekstikentta(ala_kehys1) ala_teksti2 = iku.luo_tekstilaatikko(ala_kehys2, 20, 1) iku.kirjoita_tekstilaatikkoon(ala_teksti2, "Anna kentän leveys") elementit["leveys"] = iku.luo_tekstikentta(ala_kehys2) ala_kehys3 = iku.luo_kehys(ala) ala_teksti3 = iku.luo_tekstilaatikko(ala_kehys3, 20, 1) iku.kirjoita_tekstilaatikkoon(ala_teksti3, "Anna miinojen määrä") elementit["miinat"] = iku.luo_tekstikentta(ala_kehys3) iku.luo_nappi(ala_kehys2, 'Syötä arvot ja aloita peli', arvo_kasittelija) iku.luo_nappi(ala_kehys2, 'Yllätä minut', yllata)
def pyyda_syotteet(): """ Pyytää pelajaalta pelikentän koon ja miinojen lukumäärän. """ if syotteet["ikkuna"]: ikkunasto.poista_elementti(syotteet["ikkuna"]) syotteet["ikkuna"] = None if loppuikkuna["ikkuna"]: sulje_lopputulos() loppuikkuna["ikkuna"] = None syotteet["ikkuna"] = ikkunasto.luo_ali_ikkuna("Pelikentän tiedot") ikkunasto.luo_tekstirivi(syotteet["ikkuna"], "Pelikentän korkeus:") syotteet["korkeus"] = ikkunasto.luo_tekstikentta(syotteet["ikkuna"]) ikkunasto.luo_tekstirivi(syotteet["ikkuna"], "Pelikentän leveys:") syotteet["leveys"] = ikkunasto.luo_tekstikentta(syotteet["ikkuna"]) ikkunasto.luo_tekstirivi(syotteet["ikkuna"], "Miinojen lukumäärä:") syotteet["miinojen_lkm"] = ikkunasto.luo_tekstikentta(syotteet["ikkuna"]) ikkunasto.luo_vaakaerotin(syotteet["ikkuna"]) aloitusnappi = ikkunasto.luo_nappi(syotteet["ikkuna"], "Aloita", tarkista_syotteet)
def wizard(): """ Funktio, jolla lähdetään kysymään piirtämiseen tarvittavat arvot. Funktio jatkuu Komponenttien lisäämiseen uudella funktiolla. """ KLIITTYMÄ["wizAk"] = ikn.luo_ali_ikkuna("Wizard") # Jännite: ikn.luo_tekstirivi(KLIITTYMÄ["wizAk"], "Anna jännite ilman yksikköä:") KLIITTYMÄ["syote"[0]] = ikn.luo_tekstikentta(KLIITTYMÄ["wizAk"]) ikn.luo_nappi(KLIITTYMÄ["wizAk"], "Aseta jännite", asetaJannite) ikn.luo_vaakaerotin(KLIITTYMÄ["wizAk"]) # Taajuus: ikn.luo_tekstirivi(KLIITTYMÄ["wizAk"], "Anna taajuus ilman yksikköä:") KLIITTYMÄ["syote"[1]] = ikn.luo_tekstikentta(KLIITTYMÄ["wizAk"]) ikn.luo_nappi(KLIITTYMÄ["wizAk"], "Aseta taajuus", asetaTaajuus) ikn.luo_vaakaerotin(KLIITTYMÄ["wizAk"]) ikn.luo_nappi(KLIITTYMÄ["wizAk"], "Seuraava", lisaaKomponenttiKL)
def nayta_ohje(): """ Napinkäsittelijä, joka näyttää ohjeikkunan ohjelman eri toiminnoista. """ ohje_otsikko = ( "Tämä ohje kuvailee ohjelman eri toiminnot.\n" "Suurin osa toimintojen napeista tulee näkyviin vasta, kun niitä voidaan käyttää.\n" ) avaa_ohje = ( "Avaa ikkunan, jossa voit valita kansion, joka sisältää käsiteltävän mittausdatan.\n" "Tiedoston nimen tulee olla muotoa \"measurement_x.txt\", missä \"x\" on kokonaisluku.\n" "Tiedoston sisällön täytyy olla muotoa \"E I\",\n" "missä E on sidosenergia ja I on sitä vastaava intensiteetti.\n" "Arvot on erotettu välilyönnillä ja jokainen pari on omalla rivillään.\n" ) tallenna_ohje = ( "Tallentaa nykyisen kuvaajan valitsemassasi muodossa.\n" "Yleisimmät tuetut tiedostotyypit on listattu tallennusikkunan pudotuslistassa.\n" "Kaikki ohjelman tukemat tiedostopäätteet on listattu alla:\n" ".eps, .jpeg, .jpg, .pdf, .pgf, .png, .ps, .raw, .rgba, .svg, .svgz, .tif, .tiff\n" ) poista_tausta_ohje = ( "Poistaa spektristä mittauslaitteistosta johtuvan lineaarisen taustan.\n" "Valitse kaksi pistettä kuvaajan alku- ja loppupäästä klikkaamalla.\n" "Niiden välille sovitetaan suora.\n" "Tämän jälkeen spektrin jokaisesta pisteestä vähennetään samaa energiaa " "vastaava suoran arvo,\nmikä tasoittaa kuvaajan, jos pisteet on valittu oikein.\n" ) intensiteetti_ohje = ( "Laskee halutun piikin intensiteetin.\n" "Rajaa piikin energiaväli valitsemalla kaksi pistettä.\n" "Piikin intensiteetti saadaan laskemalla sen pinta-ala integroimalla.\n" "Integroinnissa käytetään puolisuunnikassääntöä.\n") suhde_ohje = ( "Ilmoittaa kahden viimeksi mitatun intensiteettipiikin välisen suhteen.\n" "Suhde tulostuu tekstilaatikkoon.\n") ohje_ohje = "Avaa tämän ikkunan.\n" tyhjenna_ohje = "Tyhjentää ohjelman muistin ja palauttaa sen alkutilaan.\n" lopeta_ohje = "Sulkee ohjelman.\n" ohjeikkuna = ikkunasto.luo_ali_ikkuna("Ohje") ohje_tekstilaatikko = ikkunasto.luo_tekstilaatikko(ohjeikkuna, 92, 43) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, ohje_otsikko) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Avaa:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, avaa_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Tallenna:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, tallenna_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Poista tausta:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, poista_tausta_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Intensiteetti:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, intensiteetti_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Suhde:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, suhde_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Ohje:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, ohje_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Tyhjennä:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, tyhjenna_ohje) ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, "Lopeta:") ikkunasto.kirjoita_tekstilaatikkoon(ohje_tekstilaatikko, lopeta_ohje)