-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlearn_language.py
127 lines (105 loc) · 4.01 KB
/
learn_language.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# -*- coding: utf-8 -*-
from random import randint
from readfile import readFile
from checker import Checker
from languages import Languages
from readfile import readFile
class Learning():
def __init__(self,file_name):
self.file_name=file_name
self.word_list = self.create_word_list()
def setFileName(self,name):
self.file_name=name
def create_word_list(self):
outer_list = []
lines = readFile(self.file_name)
self.lines_in_file = len(lines)
for x in range(0, self.lines_in_file):
outer_list.append(lines[x].strip().split(";"))
return outer_list
@property
def wordlist(self):
return self.word_list
def get_random_word(self,language):
"""
:param self:
:param language:
:return: randomly selected index and correct word in the selected language
"""
index = randint(0, self.lines_in_file-1)
return [index,self.wordlist[index][language]]
def check_answer(self, language, words=None, answer=None, points=None, index=None):
"""
:param language:
:param words: right answer
:param answer: user answer
:param points: the current user points
:param index: index where the word found
:return:
"""
if words == None:
words=self.word_list
ret=[]
if language== "r" or language==Languages.FINNISH:
p=Checker((words[index][Languages.SWEDISH]).split(",")).check(answer)
if p > 0 and p < 4:
ret.append("Osa oikein!")
ret.append("Oikea vastaus on " + str(words[index][Languages.SWEDISH]))
elif p == 4:
ret.append("Kaikki oikein!!!")
elif p == 0:
ret.append("Ei yhtään oikein")
ret.append("Oikea vastaus on " + str(words[index][Languages.SWEDISH]))
points+=p;
ret.insert(0,points)
elif language== "s" or language==Languages.SWEDISH:
p = Checker((words[index][Languages.FINNISH]).split(",")).check(answer)
if p > 0 and p < 4:
ret.append("Osa oikein!")
ret.append("Oikea vastaus on " + str(words[index][Languages.FINNISH]))
elif p == 4:
ret.append("Kaikki oikein!!!")
elif p == 0:
ret.append("Ei yhtään oikein")
ret.append("Oikea vastaus on " + str(words[index][Languages.FINNISH]))
points += p;
ret.insert(0,points)
return ret
def main():
learn=Learning("sanasto.txt")
words=learn.create_word_list()
points=0
count=0
index_sverige=0
index_finnish=1
language=input("vastaa kielellä, ruotsi=r ja suomi=s ")
checked_values = [0]
while 1==1:
count+=4
index=randint(0,100)
index_and_word=[]
if language=="r":
index_and_word=learn.get_random_word(Languages.FINNISH)
print("suomi " + index_and_word[1])
else:
index_and_word=learn.get_random_word(Languages.SWEDISH)
print("ruotsi " + index_and_word[1])
#print("ruotsi "+learn.get_random_word(Languages.SWEDISH))
answer=input("Anna sana toisella kielellä\n")
checked_values=learn.check_answer(language, words,answer, checked_values[0],index_and_word[0])
length=len(checked_values)
if length==3:
print(checked_values[1])
print(checked_values[2])
else:
print(checked_values[1])
print("Sinulla on nyt", checked_values[0], " pistettä.")
#check_answer(language, answer, points)
resume=input("Jatketaanko k/e ")
if resume== "e":
print("Kiitos ruotsin opiskelusta, tervetuloa uudelleen!")
percent = checked_values[0] / count * 100
print("sait " + str(checked_values[0]) + "/" + str(count) + " pistetta, eli %22.2f prosenttia oikein" % percent)
break;
if __name__=='__main__':
main()