-
Notifications
You must be signed in to change notification settings - Fork 0
/
ListeMots.py
executable file
·75 lines (64 loc) · 2.18 KB
/
ListeMots.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
#!/usr/bin/python3
"""Une ListeMots sous forme de dictionnaire qui regroupe les mots par leur longeur et s'assure de leur unicité"""
class ListeMots:
def __init__(self):
self.listeMots = dict()
self.longeur = 0
# methodes de construction et recherche
def len(self):
return self.longeur
def insert(self, mot):
try:
for stringa in self.listeMots[len(mot)]:
if stringa == mot: # si le mot est deja present dans la liste
return
self.listeMots[len(mot)].append(mot)
self.longeur += 1
except:
self.listeMots[len(mot)] = [mot]
self.longeur += 1
def estDans(self, mot):
try:
for string in self.listeMots[len(mot)]:
if string == mot:
return True
return False
except KeyError:
return False
# methodes d'affichage
def printCroissant(self):
#print("Mots Trouvees:")
for string in self.listeMots[3]:
print(string + ", ", end='')
print("")
for string in self.listeMots[4]:
print(string + ", ", end='')
def printDecroissant(self):
if self.longeur == 0:
print("LISTE_VIDE")
return
liste_indices = list()
for cle in self.listeMots.keys():
liste_indices.append(cle)
liste_indices.sort()
liste_indices.reverse()
#print("Mots Trouvees:")
for indice in liste_indices:
for string in self.listeMots[indice]:
print(string + ", ", end='')
print("")
# methodes de gestion du Jeu en mode Multiplayer
def compressToSend(self):
liste_indices = [cle for cle in self.listeMots.keys()]
liste_indices.sort()
liste_indices.reverse()
toSend = ""
for indice in liste_indices:
for string in self.listeMots[indice]:
toSend += string + ";"
return toSend[0:len(toSend) - 1]
def decompress(self, toDecompress):
stringa = toDecompress
liste = stringa.split(';')
for mot in liste:
self.insert(mot)