def AloitaPeli(self): asetuksetIni = self.Aloita() asetukset = SanakoeAsetukset() asetukset.maksimiaika = asetuksetIni.getint("sanakoe", "maksimiaika") sanastot = LueAsetukset().LueIni("../sanakoe/sanasto.ini") for indeksi, sanasto in enumerate(sanastot): Tulosta.Normaali(str(indeksi + 1) + ". " + sanasto) sanastonValinta = LueKayttaja().LueNumeroAjastettu( 99999, len(str(len(sanastot)))) otsikko = [*sanastot][sanastonValinta - 1] sanasto = sanastot[otsikko] Tulosta.Korostus("Haluatko " + str(asetukset.maksimiaika) + "s ajastuksen käyttöön? (k/e)") asetukset.ajastus = LueKayttaja().LueVastausKnappi() if asetukset.ajastus: Tulosta.Normaali("Ajastus käytössä") else: Tulosta.Normaali("Ajastus ei käytössä") jatka = True while jatka == True: self.Koe(otsikko, sanasto, asetukset) jatka = self.Jatka() self.Lopeta()
def Aloita(): Tulosta.TyhjaRuutu() pelit = { "sanakoe": sanakoe.Sanakoe(), "kertotaulut": kertotaulu.Kertolaskupeli() } for indeksi, sanat in enumerate(pelit): Tulosta.Normaali(str(indeksi + 1) + ". " + sanat) peliValinta = LueKayttaja().LueNumeroAjastettu(99999, len(str(len(pelit)))) pelinNimi = [*pelit][peliValinta - 1] peli = pelit[pelinNimi] peli.AloitaPeli()
def TulostaVinkit(self, kysymys, taulunnumero): edellinen = (kysymys - 1) * taulunnumero seuraava = (kysymys + 1) * taulunnumero if edellinen > seuraava: vaihto = edellinen edellinen = seuraava seuraava = vaihto Tulosta.Normaali("Vinkki: isompi kuin " + str(edellinen) + " pienempi kuin " + str(seuraava))
def AloitaPeli(self): asetuksetIni = self.Aloita() asetukset = TauluAsetukset() asetukset.maksimi = asetuksetIni.getint("kertotaulu", "maksimi") asetukset.maksimiaika = asetuksetIni.getint("kertotaulu", "maksimiaika") asetukset.vinkit = asetuksetIni.getboolean("kertotaulu", "vinkit") asetukset.tekijakysely = asetuksetIni.getboolean( "kertotaulu", "tekijakysely") Piirustukset().PiirraKuutiot() Tulosta.Normaali("") Tulosta.Normaali( "Anna kertotaulun numero jota haluat haluat harjoitella. Mikä vain kokonaisluku" ) taulunnumero = LueKayttaja().LueNumero() if not asetukset.tekijakysely: if asetukset.vinkit: Tulosta.Normaali("\nVinkit käytössä\n") else: Tulosta.Normaali("\nVinkit ei käytössä\n") Tulosta.Normaali("") Tulosta.Korostus("Haluatko " + str(asetukset.maksimiaika) + "s ajastuksen käyttöön? (k/e)") asetukset.ajastus = LueKayttaja().LueVastausKnappi() if asetukset.ajastus: Tulosta.Normaali("Ajastus käytössä") else: Tulosta.Normaali("Ajastus ei käytössä") jatka = True while jatka == True: self.Taulutesti(taulunnumero, asetukset) jatka = self.Jatka() self.Lopeta()
def Taulutesti(self, taulunnumero, asetukset): numerot = list(range(1, asetukset.maksimi + 1)) secrets.SystemRandom().shuffle(numerot) oikeat = 0 vaarat = 0 Piirustukset().PirraViiva() Tulosta.Normaali("Kertotaulu " + str(taulunnumero) + " valittu.\n") Tulosta.Normaali("Aloitetaan") Piirustukset().PirraViiva() for indeksi, kysymys in enumerate(numerot): Tulosta.Normaali("Kysymys (" + str(indeksi + 1) + "/" + str(asetukset.maksimi) + ")") Tulosta.Normaali("") if asetukset.tekijakysely: tulo = kysymys * taulunnumero Tulosta.Keltainen("Paljonko on " + str(taulunnumero) + " * X = " + str(tulo) + " ?") oikeavastaus = kysymys else: Tulosta.Keltainen("Paljonko on " + str(kysymys) + " * " + str(taulunnumero) + " ?") oikeavastaus = kysymys * taulunnumero Tulosta.Normaali("") if asetukset.vinkit: self.TulostaVinkit(kysymys, taulunnumero) aika = 999999 if asetukset.ajastus: aika = asetukset.maksimiaika vastausnumero = LueKayttaja().LueNumeroAjastettu( aika, len(str(oikeavastaus))) if vastausnumero == oikeavastaus: Tulosta.Korostus("Oikein") Piirustukset().PirraLaivaAuto() oikeat = oikeat + 1 else: Tulosta.Korostus("Väärin. Oikea vastaus on " + str(oikeavastaus)) vaarat = vaarat + 1 Piirustukset().PirraViiva() Tulosta.Normaali("************************") Tulosta.Normaali("* Oikein " + str(oikeat) + " * Väärin " + str(vaarat) + " *") Tulosta.Normaali("************************") if vaarat == 0: Tulosta.Normaali("Erittäin hyvä!") Piirustukset().PirraSatunnainen() Tulosta.Normaali("") else: Tulosta.Normaali("Harjoittele vielä!")
def Koe(self, otsikko, sanat, asetukset): sanalista = list(sanat.keys()) random.shuffle(sanalista) oikeat = 0 vaarat = 0 Piirustukset().PirraViiva() Tulosta.Normaali(otsikko + " valittu\n") Tulosta.Normaali("Aloitetaan") Piirustukset().PirraViiva() for indeksi, kysymys in enumerate(sanalista): Tulosta.Normaali("Kysymys (" + str(indeksi + 1) + "/" + str(len(sanalista)) + ")") Tulosta.Normaali("") Tulosta.Keltainen(kysymys + " ?") Tulosta.Normaali("") oikeavastaus = sanat[kysymys] if asetukset.ajastus: vastaus = LueKayttaja().LueSanaAjastettu(asetukset.maksimiaika) else: vastaus = LueKayttaja().LueVastausSana() if vastaus == oikeavastaus: Tulosta.Korostus("Oikein") Piirustukset().PiirraTahti() oikeat = oikeat + 1 else: Tulosta.Korostus("Väärin. Oikea vastaus on " + str(oikeavastaus)) if vastaus.lower() == oikeavastaus.lower(): Tulosta.Normaali("Muista isot kirjaimet") vaarat = vaarat + 1 Piirustukset().PirraViiva() Tulosta.Normaali("************************") Tulosta.Normaali("* Oikein " + str(oikeat) + " * Väärin " + str(vaarat) + " *") Tulosta.Normaali("************************") if vaarat == 0: Tulosta.Normaali("Erittäin hyvä!") Piirustukset().PirraSatunnainen() Tulosta.Normaali("") else: Tulosta.Normaali("Harjoittele vielä!")
def Aloita(self): Tulosta.TyhjaRuutu() Piirustukset().PiirraTervetuloa() Tulosta.Normaali("") return LueAsetukset().HaeIni("../asetukset.ini")
def Lopeta(self): Tulosta.Normaali("Kiva kun pelasit ja opit uutta!") Tulosta.Normaali("") Piirustukset().PirraViiva() Tulosta.Normaali("Paina jotain nappia lopettaaksesi") LueKayttaja().LueNappi()
def Jatka(self): Tulosta.Korostus("Pelaataanko uudestaan? (k/e)") jatka = LueKayttaja().LueVastausKnappi() Tulosta.TyhjaRuutu() return jatka