예제 #1
0
    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()
예제 #2
0
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()
예제 #3
0
 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))
예제 #4
0
    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()
예제 #5
0
    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ä!")
예제 #6
0
    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ä!")
예제 #7
0
 def Aloita(self):
     Tulosta.TyhjaRuutu()
     Piirustukset().PiirraTervetuloa()
     Tulosta.Normaali("")
     return LueAsetukset().HaeIni("../asetukset.ini")
예제 #8
0
 def Lopeta(self):
     Tulosta.Normaali("Kiva kun pelasit ja opit uutta!")
     Tulosta.Normaali("")
     Piirustukset().PirraViiva()
     Tulosta.Normaali("Paina jotain nappia lopettaaksesi")
     LueKayttaja().LueNappi()
예제 #9
0
 def Jatka(self):
     Tulosta.Korostus("Pelaataanko uudestaan? (k/e)")
     jatka = LueKayttaja().LueVastausKnappi()
     Tulosta.TyhjaRuutu()
     return jatka