def main(): """ Luodaan aloitusvalikko, josta voi valita uuden pelin, lopettamisen ja tilastojen katsomisen. Uuteen peliin voi valita kentän koon sekä miinojen määrän """ alku_ikkuna = ikkunasto.luo_ikkuna("Miinaharava") ylakehys = ikkunasto.luo_kehys(alku_ikkuna, ikkunasto.YLA) alakehys = ikkunasto.luo_kehys(alku_ikkuna, ikkunasto.YLA) syotekehys = ikkunasto.luo_kehys(ylakehys, ikkunasto.VASEN) nappikehys1 = ikkunasto.luo_kehys(ylakehys, ikkunasto.VASEN) nappikehys2 = ikkunasto.luo_kehys(ylakehys, ikkunasto.VASEN) uusipelinappi = ikkunasto.luo_nappi(syotekehys, "Uusi peli", uusipeli) tilastonappi = ikkunasto.luo_nappi(nappikehys1, "Katso tilastoja", tilastot) lopetusnappi = ikkunasto.luo_nappi(nappikehys2, "Lopeta", lopeta_nappi_kasittelija) leveysohje = ikkunasto.luo_tekstirivi(syotekehys, "Kentän leveys:") global leveyskentta leveyskentta = ikkunasto.luo_tekstikentta(syotekehys) korkeusohje = ikkunasto.luo_tekstirivi(syotekehys, "Kentän korkeus:") global korkeuskentta korkeuskentta = ikkunasto.luo_tekstikentta(syotekehys) miinalkmohje = ikkunasto.luo_tekstirivi(syotekehys, "Miinojen lukumäärä:") global miinalkmkentta miinalkmkentta = ikkunasto.luo_tekstikentta(syotekehys) global tekstilaatikko tekstilaatikko = ikkunasto.luo_tekstilaatikko(alakehys, 44, 20) ikkunasto.kaynnista()
def main(): global jannite_kentta global taajuus_kentta global vastus_kentta global kela_kentta global kondensaattori_kentta ikkuna = ik.luo_ikkuna("Ikkuna") nappikehys = ik.luo_kehys(ikkuna, ik.VASEN) jannite_rivi = ik.luo_tekstirivi(nappikehys, "Aseta jännitteen suuruus:") jannite_kentta = ik.luo_tekstikentta(nappikehys) taajuus_rivi = ik.luo_tekstirivi(nappikehys, "Aseta taajuuden suuruus:") taajuus_kentta = ik.luo_tekstikentta(nappikehys) vastus_rivi = ik.luo_tekstirivi(nappikehys, "Aseta vastuksen arvo:") vastus_kentta = ik.luo_tekstikentta(nappikehys) kondensaattori_rivi = ik.luo_tekstirivi(nappikehys, "Aseta kondensaattorin arvo:") kondensaattori_kentta = ik.luo_tekstikentta(nappikehys) kela_rivi = ik.luo_tekstirivi(nappikehys, "Aseta kelan arvo:") kela_kentta = ik.luo_tekstikentta(nappikehys) jannite_nappi = ik.luo_nappi(nappikehys, "Aseta jännite", aseta_jannite) taajuus_nappi = ik.luo_nappi(nappikehys, "Aseta taajuus", aseta_taajuus) vastus_nappi = ik.luo_nappi(nappikehys, "Lisää vastus", lisaa_vastus) kondensaattori_nappi = ik.luo_nappi(nappikehys, "Lisää kondensaattori", lisaa_kondensaattori) kela_nappi = ik.luo_nappi(nappikehys, "Lisää kela", lisaa_kela) piirto_nappi = ik.luo_nappi(nappikehys, "Piirrä piiri", piirra_piiri) lopetusnappi = ik.luo_nappi(nappikehys, "Lopeta", ik.lopeta) ylakehys = ik.luo_kehys(ikkuna, ik.VASEN) tila["laatikko"] = ik.luo_tekstilaatikko(nappikehys, leveys=20, korkeus=60) piirto_alue = pi.luo_piiri(ikkuna, leveys=600, korkeus=400, fonttikoko=16) ik.kaynnista()
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 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 kysyja(): ikkuna = ikkunasto.luo_ikkuna("Koko") kehys = ikkunasto.luo_kehys(ikkuna) laatikko = ikkunasto.luo_tekstilaatikko(kehys) teksti = ikkunasto.kirjoita_tekstilaatikkoon( laatikko, "Syötä kentän koko (x ruutua kertaa y ruutua)\nYlempään x ja alempaan y" ) kysyja.kenttax = ikkunasto.luo_tekstikentta(kehys) kysyja.kenttay = ikkunasto.luo_tekstikentta(kehys) nappi = ikkunasto.luo_nappi(kehys, "Paina tästä aloittaaksesi", ikkunasto_napin_kasittelija) ikkunasto.kaynnista()
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 peli_paattyi(): """ Näyttää pelin tiedot, kysyy nimimerkkiä ja tallentaa ne tiedostoon. Palaa päävalikkoon kun nappia on painettu. """ haravasto.lopeta() if tila["voitto"]: viesti = "Voitit" else: viesti = "Hävisit" pvm = datetime.datetime.now() aloitusaika = tila["aloitusaika"] aika_s = (pvm - aloitusaika).total_seconds() aika = ("{}min {:.1f}s".format(int(aika_s / 60), aika_s % 60)) aikaleima = aloitusaika.strftime("%d.%m.%Y klo:%H.%M") tila["aloitusaika"] = aikaleima tila["peliaika"] = aika tallennus_ikkuna = ikkunasto.luo_ikkuna("{} pelin!".format(viesti)) ylakehys = ikkunasto.luo_kehys(tallennus_ikkuna, ikkunasto.YLA) alakehys = ikkunasto.luo_kehys(tallennus_ikkuna, ikkunasto.YLA) nimiohje = ikkunasto.luo_tekstirivi(ylakehys, "Nimimerkki:") global nimikentta nimikentta = ikkunasto.luo_tekstikentta(ylakehys) tallenna_nappi = ikkunasto.luo_nappi(ylakehys, "Tallenna peli", tallenna_tilastot) ohita_nappi = ikkunasto.luo_nappi(ylakehys, "Ohita", takaisin_nappi_kasittelija) global tallennus_ikkuna_laatikko tallennus_ikkuna_laatikko = ikkunasto.luo_tekstilaatikko(alakehys, 40, 30) ikkunasto.kirjoita_tekstilaatikkoon( tallennus_ikkuna_laatikko, "{} pelin.\nAika: {}\nVuorot: {}\nKentän koko: {}x{}\nMiinoja: {}\nPäivämäärä: {}." .format(viesti, aika, tila["vuorot"], len(tila["kentta"][0]), len(tila["kentta"]), tila["miinat"], aikaleima)) ikkunasto.kaynnista()
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 main(): """Luo käyttöliittymäikkunan, jossa on vasemmalla tekstikenttä otsikoineen, kaksi nappia (muunnosnappi ja quit) ja oikealla tekstilaatikko.""" global tekstilaatikko global tekstikentta ikkuna = ik.luo_ikkuna("Kompleksilukumuunnin") nappikehys = ik.luo_kehys(ikkuna, ik.VASEN) tekstirivi = ik.luo_tekstirivi(nappikehys, "Kompleksiluku: ") tekstikentta = ik.luo_tekstikentta(nappikehys) muutosnappi = ik.luo_nappi(nappikehys, "Muunna", muuta_osoitinmuotoon) quitnappi = ik.luo_nappi(nappikehys, "Lopeta", ik.lopeta) ylakehys = ik.luo_kehys(ikkuna, ik.VASEN) tekstilaatikko = ik.luo_tekstilaatikko(ylakehys, leveys=80, korkeus=20) ik.kaynnista()
def main(): """ Luo käyttöliittymäikkunan, jossa on vasemmalla puolella syötekenttä numeroarvoille, neljä nappia ja tekstilaatikko. Oikealla puolella on piirikaaviokuva. """ ikkuna = ik.luo_ikkuna("Piiri pieni pyörii") vasen_kehys = ik.luo_kehys(ikkuna, ik.VASEN) oikea_kehys = ik.luo_kehys(ikkuna, ik.OIKEA) tk_otsikko = ik.luo_tekstirivi(vasen_kehys, "arvo:") tila["syote"] = ik.luo_tekstikentta(vasen_kehys) jannitenappi = ik.luo_nappi(vasen_kehys, "aseta jännite", aseta_jannite) taajuusnappi = ik.luo_nappi(vasen_kehys, "aseta taajuus", aseta_taajuus) haaranappi = ik.luo_nappi(vasen_kehys, "luo uusi haara", luo_haara) komponenttinappi = ik.luo_nappi(vasen_kehys, "anna komponentin tyyppi", valitse_tyyppi) arvonappi = ik.luo_nappi(vasen_kehys, "anna komponentin arvo", laske_arvo) lopetusnappi = ik.luo_nappi(vasen_kehys, "quit", ik.lopeta) tila["laatikko"] = ik.luo_tekstilaatikko(vasen_kehys, 50, 40) tila["piiri"] = psto.luo_piiri(oikea_kehys, 700, 700, 10) ik.kaynnista()