Skip to content

Commit a4b12f2

Browse files
author
Miika Laaksonen
committed
treenit eka versio
0 parents  commit a4b12f2

File tree

13 files changed

+426
-0
lines changed

13 files changed

+426
-0
lines changed

aloitaKertotaulu.bat

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@echo off
2+
mode 80,50
3+
python kertotaulu.py

aloitaSanakoe.bat

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@echo off
2+
mode 80,50
3+
python sanakoe.py

kertotaulu.py

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
import os
2+
import random
3+
import sys
4+
import time
5+
import msvcrt
6+
from kirjasto.koekirjasto import *
7+
8+
9+
class Kertolaskupeli:
10+
11+
def TulostaVinkit(self, kysymys, taulunnumero):
12+
edellinen = (kysymys-1) * taulunnumero
13+
seuraava = (kysymys+1) * taulunnumero
14+
if edellinen > seuraava:
15+
vaihto = edellinen
16+
edellinen = seuraava
17+
seuraava = vaihto
18+
print("Vinkki: isompi kuin " + str(edellinen) +
19+
" pienempi kuin " + str(seuraava))
20+
21+
def Taulutesti(self, taulunnumero, maksimi, vinkit, ajastus):
22+
numerot = list(range(1, maksimi+1))
23+
random.shuffle(numerot)
24+
25+
oikeat = 0
26+
vaarat = 0
27+
28+
print("Kertotaulu " + str(taulunnumero) + " valittu.\n")
29+
print("Aloitetaan")
30+
Piirustukset().PirraViiva()
31+
for indeksi, kysymys in enumerate(numerot):
32+
print("Kysymys (" + str(indeksi+1) + "/" + str(maksimi) + ")")
33+
print("")
34+
print(bcolors.WARNING + "Paljonko on " + str(kysymys) +
35+
" x " + str(taulunnumero)+" ?" + bcolors.ENDC)
36+
print("")
37+
if vinkit:
38+
self.TulostaVinkit(kysymys, taulunnumero)
39+
40+
aika = 999999
41+
if ajastus:
42+
aika = 10
43+
44+
oikeavastaus = kysymys * taulunnumero
45+
vastausnumero = LueKayttaja().LueNumeroAjastettu(aika,len(str(oikeavastaus)))
46+
47+
if vastausnumero == oikeavastaus:
48+
print(bcolors.BOLD + "Oikein" + bcolors.ENDC)
49+
Piirustukset().PiirraTahti()
50+
oikeat = oikeat+1
51+
else:
52+
print(bcolors.BOLD + "Väärin. Oikea vastaus on " +
53+
str(oikeavastaus) + bcolors.ENDC)
54+
vaarat = vaarat+1
55+
Piirustukset().PirraViiva()
56+
57+
print("************************")
58+
print("* Oikein " + str(oikeat) + " * Väärin " + str(vaarat)+" *")
59+
print("************************")
60+
61+
if vaarat == 0:
62+
print("Erittäin hyvä!")
63+
Piirustukset().PirraSatunnainen()
64+
print("")
65+
66+
else:
67+
print("Harjoittele vielä!")
68+
69+
def AloitaPeli(self, maksimi):
70+
jatka = True
71+
Piirustukset().PiirraTervetuloa()
72+
Piirustukset().PiirraKuutiot()
73+
print("")
74+
print("Anna kertotaulun numero jota haluat haluat harjoitella. Mikä vain kokonaisluku")
75+
taulunnumero = LueKayttaja().LueNumero()
76+
77+
print(bcolors.BOLD + "Haluatko vinkit käyttöön? (k/e)" + bcolors.ENDC)
78+
vinkit = LueKayttaja().LueVastausKnappi()
79+
if vinkit:
80+
print("Vinkit käytössä")
81+
else:
82+
print("Vinkit ei käytössä")
83+
84+
print("")
85+
print(bcolors.BOLD + "Haluatko 10s ajastuksen käyttöön? (k/e)" + bcolors.ENDC)
86+
ajastus = LueKayttaja().LueVastausKnappi()
87+
if ajastus:
88+
print("Ajastus käytössä")
89+
else:
90+
print("Ajastus ei käytössä")
91+
92+
while jatka == True:
93+
Piirustukset().PirraViiva()
94+
self.Taulutesti(taulunnumero, maksimi, vinkit, ajastus)
95+
print(bcolors.BOLD + "Pelaataanko uudestaan? (k/e)" + bcolors.ENDC)
96+
jatka = LueKayttaja().LueVastausKnappi()
97+
print("Kiva kun pelasit ja opit uutta!")
98+
print("")
99+
100+
101+
os.system('cls')
102+
peli = Kertolaskupeli()
103+
peli.AloitaPeli(10)
104+
Piirustukset().PirraViiva()
105+
print("Paina jotain nappia lopettaaksesi")
106+
LueKayttaja().LueNappi()
4.45 KB
Binary file not shown.

kirjasto/koekirjasto.py

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
import os
2+
import msvcrt
3+
import random
4+
import sys
5+
import time
6+
7+
class bcolors:
8+
HEADER = '\033[95m'
9+
OKBLUE = '\033[94m'
10+
OKGREEN = '\033[92m'
11+
WARNING = '\033[93m'
12+
FAIL = '\033[91m'
13+
ENDC = '\033[0m'
14+
BOLD = '\033[1m'
15+
UNDERLINE = '\033[4m'
16+
17+
class Piirustukset:
18+
19+
kuvat = {
20+
1: "lintu.txt",
21+
2: "hevonen.txt",
22+
3: "hai.txt"
23+
}
24+
25+
kansio = "kuvat/"
26+
27+
def PirraSatunnainen(self):
28+
valinta = random.Random().randint(1, len(self.kuvat))
29+
self.Piirra(self.kansio + self.kuvat.get(valinta))
30+
31+
def PiirraLintu(self):
32+
self.Piirra(self.kansio + self.kuvat.get(1))
33+
34+
def PiirraHevonen(self):
35+
self.Piirra(self.kansio + self.kuvat.get(2))
36+
37+
def PiirraKuutiot(self):
38+
self.Piirra(self.kansio + "kuutiot.txt")
39+
40+
def PiirraTervetuloa(self):
41+
print(bcolors.OKBLUE)
42+
self.Piirra(self.kansio + "tervetuloa.txt")
43+
print(bcolors.ENDC)
44+
45+
def PiirraTahti(self):
46+
self.Piirra(self.kansio + "tahti.txt")
47+
48+
def Piirra(self, nimi):
49+
hakemisto = os.path.dirname(__file__)
50+
tiedostonimi = os.path.join(hakemisto, nimi)
51+
tiedosto = open(tiedostonimi, mode="r", encoding="utf-8")
52+
teksti = tiedosto.read()
53+
tiedosto.closed
54+
print(teksti)
55+
56+
def PirraViiva(self):
57+
print(bcolors.OKGREEN +
58+
"--------------------------------------------------------------------------------" + bcolors.ENDC)
59+
60+
class LueKayttaja:
61+
def OnkoNumero(self, teksti):
62+
try:
63+
int(teksti)
64+
return True
65+
except ValueError:
66+
return False
67+
68+
def LueNumero(self):
69+
numero = 0
70+
luettu = False
71+
while luettu == False:
72+
lue = input()
73+
if self.OnkoNumero(lue) == True:
74+
numero = int(lue)
75+
luettu = True
76+
else:
77+
sys.stdout.write("\033[1A[\033[2K\b")
78+
return numero
79+
80+
def LueVastausSana(self):
81+
vastaus = ""
82+
luettu = False
83+
while luettu == False:
84+
lue = input()
85+
if lue != "":
86+
vastaus = lue
87+
luettu = True
88+
else:
89+
sys.stdout.write("\033[1A[\033[2K\b")
90+
return vastaus
91+
92+
def LueVastausKylla(self):
93+
vastaus = input()
94+
if vastaus.lower().startswith("k") == True:
95+
return True
96+
return False
97+
98+
def LueVastausKnappi(self):
99+
while True:
100+
if msvcrt.kbhit():
101+
nappi = msvcrt.getwch()
102+
if nappi.lower() == 'k':
103+
return True
104+
elif nappi.lower() == 'e':
105+
return False
106+
time.sleep(0.04)
107+
108+
def LueNappi(self):
109+
while True:
110+
if msvcrt.kbhit():
111+
return
112+
time.sleep(0.04)
113+
114+
def LueNumeroAjastettu(self, timeout, pituus):
115+
timer = time.monotonic
116+
endtime = timer() + timeout
117+
result = []
118+
while timer() < endtime:
119+
if msvcrt.kbhit():
120+
nappi = msvcrt.getwch()
121+
if nappi == '\b' and len(result) > 0:
122+
result = result[:-1]
123+
msvcrt.putwch(nappi)
124+
125+
elif self.OnkoNumero(nappi) or nappi == '\r' or (len(result) == 0 and nappi == '-'):
126+
result.append(nappi)
127+
msvcrt.putwch(nappi)
128+
if len(result) == pituus:
129+
lue = ''.join(result)
130+
if self.OnkoNumero(lue) == True:
131+
numero = int(lue)
132+
print()
133+
return numero
134+
else:
135+
result = []
136+
time.sleep(0.04)
137+
return -99999999

kirjasto/kuvat/hai.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
(`.
2+
\ `.
3+
) `._..---._
4+
\`. __...---` o )
5+
\ `._,--' , ___,'
6+
) ,-._ \ ) _,-'
7+
/,' ``--.._____\/--''

kirjasto/kuvat/hevonen.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
_(\_/)
2+
,((((^`\
3+
(((( (6 \
4+
,((((( , \
5+
,,,_ ,((((( /"._ ,`,
6+
((((\\ ,... ,(((( / `-.-'
7+
))) ;' `"'"'""(((( (
8+
((( / ((( \
9+
)) | |
10+
(( | . ' |
11+
)) \ _ ' `t ,.')
12+
( | y;- -,-""'"-.\ \/
13+
) / ./ ) / `\ \
14+
|./ ( ( / /'
15+
|| \\ //'|
16+
|| \\ _//'||
17+
|| )) |_/ ||
18+
\_\ |_/ ||
19+
`'" \_\

kirjasto/kuvat/kuutiot.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
_______
2+
/\ o o o\
3+
/o \ o o o\_______
4+
< >------> o /|
5+
\ o/ o /_____/o|
6+
\/______/ |oo|
7+
| o |o/
8+
|_______|/

kirjasto/kuvat/lintu.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
__ __
2+
.-'.' .-. '.'-.
3+
.'.(( ( ^ `> )).'.
4+
/`'- \'._____\ (_____.'/ -'`\
5+
|-''`.'------' '------'.`''-|
6+
|.-'`.'.'.`/ | | \`.'.'.`'-.|
7+
\ .' . / | | | | \ . '. /
8+
'._. : _|_| |_|_ : ._.'
9+
````` /T"Y"T\ `````
10+
/ | | | \
11+
`'`'`'`'`'`

kirjasto/kuvat/tahti.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
,
2+
\ : /
3+
`. __/ \__ .'
4+
_ _\ /_ _
5+
/_ _\
6+
.' \ / `.
7+
/ : \
8+
'

0 commit comments

Comments
 (0)