/
model.py
117 lines (82 loc) · 2.32 KB
/
model.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
import random
STEVILO_DOVOLJENIH_NAPAK = 10
PRAVILNA_CRKA = '+'
PONOVLJENA_CRKA = '0'
NAPACNA_CRKA = '-'
ZMAGA = 'W'
PORAZ = 'X'
ZACETEK = 'Z'
class Igra:
def __init__(self, geslo, crke=[]):
self.geslo = geslo
self.crke = crke
def napacne_crke(self):
sez = []
for crka in self.crke:
if crka not in self.geslo:
sez.append(crka)
return sez
def pravilne_crke(self):
sez = []
for crka in self.crke:
if crka in self.geslo:
sez.append(crka)
return sez
def stevilo_napak(self):
return len(self.napacne_crke())
def zmaga(self):
for crka in self.geslo:
if crka not in self.crke:
return False
return True
def poraz(self):
return self.stevilo_napak() >= STEVILO_DOVOLJENIH_NAPAK
def pravilni_del_gesla(self):
sez = ''
for crka in self.geslo:
if crka in self.crke:
sez+= crka + ' '
else:
sez += '_ '
return sez
def nepravilni_ugibi(self):
return ' '.join(self.napacne_crke())
def ugibaj(self, crka):
crka = crka.upper()
if crka in self.crke:
return PONOVLJENA_CRKA
else:
self.crke.append(crka)
if crka in self.pravilne_crke():
if self.zmaga():
return ZMAGA
else:
return PRAVILNA_CRKA
else:
if self.poraz():
return PORAZ
else:
return NAPACNA_CRKA
bazen_besed=[]
with open('besede.txt') as dat:
for vrstica in dat:
bazen_besed.append(vrstica.strip().upper())
def nova_igra():
return Igra(random.choice(bazen_besed))
class Vislice:
def __init__(self):
self.igre = {}
def prost_id_igre(self):
if self.igre == {}:
return 0
else:
return max(self.igre.keys()) + 1
def nova_igra(self):
id = self.prost_id_igre()
igra = nova_igra()
self.igre[id] = (igra, ZACETEK)
return id
def ugibaj(self, id, crka):
igra, _= self.igre[id]
stanje = igra.ugibaj(crka)
self.igre[id] = (igra, stanje)