-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclasses.py
More file actions
67 lines (66 loc) · 2.22 KB
/
classes.py
File metadata and controls
67 lines (66 loc) · 2.22 KB
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
import Pyro4,unidecode
chooser_model={
'name':'',
'word':'',
'pending_arr':[]
}
player_model={
'name':'',
'tries':3,
'found_arr':[]
}
@Pyro4.expose
class Game(object):
def __init__(self):
self.Chooser=None
self.Player=None
def register_chooser(self,Chooser):
self.Chooser=Chooser
def register_player(self,Player):
self.Player=Player
def chooser(self):return self.Chooser
def player(self):return self.Player
def chooser_name(self):return self.Chooser['name']
def player_name(self):return self.Player['name']
def get_word(self):return self.Chooser['word']
def get_tries(self):return self.Player['tries']
def get_pending_array(self):return self.Chooser['pending_arr']
def get_found_array(self):return self.Player['found_arr']
def set_found(self,ar):self.Player['found_arr']=ar
def set_pending(self,ar):self.Chooser['pending_arr']=ar
def set_word(self,word):
self.Chooser['word']=unidecode.unidecode(word.upper())
self.set_pending(list(self.get_word()))
def set_tries(self,tries):self.Player['tries']=tries
def generate_pattern(self):
wd=''
for letter in self.get_word():
if letter in self.get_found_array():
wd+='{} '.format(letter)
else:
wd+=' _ '
return wd[:-1]
def check_letter(self,letter):
if self.get_tries()!=0:
if letter in self.get_word():
self.reset()
while letter in self.get_word():
try:
p_arr=self.get_pending_array()
p_arr.remove(letter)
self.set_pending(p_arr)
except:break
f_arr=self.get_found_array()
f_arr.append(letter)
self.set_found(f_arr)
return True
else:
self.fail_once()
return False
def reset(self):
self.set_tries(3)
def fail_once(self):
if self.get_tries()>0:
self.set_tries(self.get_tries()-1)
else:
self.set_tries(0)