-
Notifications
You must be signed in to change notification settings - Fork 0
/
map.py
75 lines (72 loc) · 2.89 KB
/
map.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
import configparser
config = configparser.ConfigParser()
config.read('.editorconfig') #ouverture ficher config
class Map:
def __init__(self,tab):
self._tab_str= "000000"
self._case=[0]
self._taille_max=int(config['map']['hauteur_max'])
self._taille=0
self._danger_max=int(config['map']['danger_max'])
self._danger=0
self._case = []
for e in range(len(tab)):
self._tab_str+=str(ord(tab[e]) * 4325655489212302938457) # transforme les lettre en code uft8 pour réaliser une chaine de caractère
while len(self._tab_str)<=20000:
self._tab_str+= "3"
e=0
while len(self._case)<1000:
if int(self._tab_str[e])==8 or int(self._tab_str[e])==7:
if self._danger >= self._danger_max:
self._case.append(0)
self._danger = 0
else:
self._case.append(5)
self._danger += 1
if int(self._tab_str[e])>0 and int(self._tab_str[e])<7 :
if self._tab_str[e] == "1" or self._tab_str[e] == "2":
self._danger = 0
if self._taille > self._taille_max:
self._case.append(0)
else:
self._case.append(int(self._tab_str[e]))
if self._tab_str[e] == "3" or self._tab_str[e] == "4":
self._danger = 0
if self._taille < 0:
self._case.append(0)
else:
self._case.append(int(self._tab_str[e]))
if self._tab_str[e] == "5" or self._tab_str[e] == "6":
if self._danger >= self._danger_max:
self._case.append(0)
else:
self._case.append(int(self._tab_str[e]))
self._danger+=1
else:
self._case.append(0)
e+=1
self._case.append(9)
self._case.append(9)
self._case.append(9)
self._case.append(9)
def get_case(self):
return self._case
def __str__(self):
return str(self._case)
def nb_type_case(self):
""" permet de connaitre le nombre de triangle , de saut , de case vide et de case sans saut
retourn un tableau sous la forme [nbtri,nbsaut,nbvide,nb_sans_saut]"""
nbtri=0
nbcase_vide=0
nbsaut=0
nbvide=0
for e in range (len(self._case) - 1):
if self._case[e]==5:
nbtri+=1
elif self._case[e]!=0 or self._case[e - 1]!=self._case[e]:
nbsaut+=1
else:
nbcase_vide+=1
if self._case[e]==6:
nbvide+=1
return [nbtri,nbsaut//2,nbvide,nbcase_vide]