carte.py 19.8 KB
Newer Older
Vincent BRULE's avatar
son    
Vincent BRULE committed
1
# -*- encoding: utf-8 -*-
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
2

Vincent BRULE's avatar
son    
Vincent BRULE committed
3
4
5
6
7
from pygame import *
import time
import os

from carteStruct import *
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
8
from constante import Constante
Vincent BRULE's avatar
up    
Vincent BRULE committed
9
10
from base import *
from joueur import *
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
11
12
from tour import *
from unite import *
Vincent BRULE's avatar
son    
Vincent BRULE committed
13
#ctrl+Q utile pour commenter
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
14
15


Vincent BRULE's avatar
up    
Vincent BRULE committed
16
 
Vincent BRULE's avatar
son    
Vincent BRULE committed
17

Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
18
19
20
def son_fond(verif):
	mixer.init()
	son_fond = mixer.Sound("projet_jeux_video.wav")
Vincent BRULE's avatar
up    
Vincent BRULE committed
21
22
23
24
25
26
27
28
29
30
	if Constante.son == 0:
		if verif == 1:
			son_fond.play(loops = -1)
			son_fond.set_volume(1.0)
			Constante.son = 1
	else : 
		if verif == 2:
			mixer.pause()
		if verif == 3:
			mixer.unpause()
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
	
def fond_depart(ecran):
	image_depart = image.load("ecran_depart.jpg")
	image_depart = transform.scale(image_depart,(Constante.largeur, Constante.hauteur))
	ecran.blit(image_depart, (0 ,0))
	
def saut_ligne(texte, ecran):
	bulle = Rect(Constante.largeur/5, Constante.hauteur/4, 500,500)
	x,y = bulle.topleft
	for ligne in texte.splitlines():
		x,y = ecran.blit(Constante.type_ecriture_titre.render(ligne , 1, Constante.ORANGE),(x,y)).bottomleft

def ecran_depart(ecran):
	fond_depart(ecran)
	titre_jeu = """                      Bienvenue    dans    \n\n                         POLYDENFENSE \n\n\nAppuyez sur "Entrer" pour commencer le Jeu"""
	saut_ligne(titre_jeu, ecran)
	display.flip()
	while True:
		for evenement_joueur in event.get():
				if evenement_joueur.type == KEYDOWN:
					if evenement_joueur.key == K_RETURN:
						continuer = 0
						return
					
Mimeau Corentin's avatar
Mimeau Corentin committed
55
56
57
58
59
60
61
def ajouterHerbeObstacle(liste, taille, coord):
	for i in range(0, taille):
		for j in range(0, taille):
			liste.append((coord[0] + i, coord[1] + j))



Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
62
63
64
65
66
67
68
69
70
	
def lecture_carte (fichier, carte): # Permet de lire le .txt contenant la carte
	dico = open(fichier, "r")
	numLigne = 0


	for ligne in dico :
		numColonne = 0
		for trouve_lettre in ligne :
Mimeau Corentin's avatar
Mimeau Corentin committed
71
			u = (numColonne, numLigne)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
72
			if trouve_lettre == "X":
Mimeau Corentin's avatar
Mimeau Corentin committed
73
				carte.liste_herbe.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
74
			if trouve_lettre == "O":
Mimeau Corentin's avatar
Mimeau Corentin committed
75
				carte.liste_route.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
76
			if trouve_lettre == "A":
Mimeau Corentin's avatar
Mimeau Corentin committed
77
78
				ajouterHerbeObstacle(carte.liste_herbe_obstacle, 2, u)				
				carte.liste_arbre.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
79
			if trouve_lettre == "C":
Mimeau Corentin's avatar
Mimeau Corentin committed
80
				carte.liste_contour.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
81
			if trouve_lettre == "B":
Mimeau Corentin's avatar
Mimeau Corentin committed
82
83
				ajouterHerbeObstacle(carte.liste_herbe_obstacle, 3, u)				
				carte.liste_base.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
84
			if trouve_lettre == "D":
Mimeau Corentin's avatar
Mimeau Corentin committed
85
86
				ajouterHerbeObstacle(carte.liste_herbe_obstacle, 1, u)				
				carte.liste_contour_sortie_ennemie.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
87
			if trouve_lettre == "E":
Mimeau Corentin's avatar
Mimeau Corentin committed
88
89
				ajouterHerbeObstacle(carte.liste_herbe_obstacle, 1, u)				
				carte.liste_contour_sortie_ennemie_2.append(u)
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
90
			if trouve_lettre == "S":
Mimeau Corentin's avatar
Mimeau Corentin committed
91
92
93
				ajouterHerbeObstacle(carte.liste_herbe_obstacle, 1, u)				
				carte.liste_sortie_ennemie.append(u)

Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
94
95
			numColonne = numColonne + 1
		numLigne = numLigne + 1
Vincent BRULE's avatar
son    
Vincent BRULE committed
96

Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
97
98
99
100
	dico.close()


def titre_nom(n_joueur, ecran):
Vincent BRULE's avatar
up    
Vincent BRULE committed
101
	titre = "Entrer le nom du joueur" + " " + str(n_joueur) + " (Moins de 7 lettres svp) :  "
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
102
103
	texte_titre = Constante.type_ecriture.render(titre, 1, Constante.ORANGE)
	#texte_titre = Constante.type_ecriture.render(titre, 1, Constante.ORANGE, (204, 204, 255)) permet de mettre un fond de couleur
Vincent BRULE's avatar
up    
Vincent BRULE committed
104
	ecran.blit(texte_titre, (Constante.largeur/6, Constante.hauteur/4))
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
105
106
107
	display.flip()
	
def nom_joueur (n_joueur, ecran, joueur):
Vincent BRULE's avatar
up    
Vincent BRULE committed
108
	nom = ""
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
109
110
111
112
113
114
	fond_depart(ecran)
	titre_nom(n_joueur, ecran)
	while True:    
		for evenement_joueur in event.get():
			if evenement_joueur.type == KEYDOWN:
				if evenement_joueur.unicode.isalpha():
Vincent BRULE's avatar
up    
Vincent BRULE committed
115
116
117
118
					if len(nom) < 7 :
						nom = nom + evenement_joueur.unicode
						texte = Constante.type_ecriture.render(nom, True, Constante.ORANGE)
						ecran.blit(texte, (float(Constante.largeur)/2.5, float(Constante.hauteur)/2.5))
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
					
				if evenement_joueur.key == K_RETURN:
						joueur.modifier_nom(nom)
						joueur.modifier_numero(n_joueur)
						return

				if evenement_joueur.key == K_BACKSPACE:
					nom = nom[:-1]
					texte = Constante.type_ecriture.render(nom, True, Constante.ORANGE)
					fond_depart(ecran)
					titre_nom(n_joueur, ecran)
					ecran.blit(texte, (float(Constante.largeur)/2.5, float(Constante.hauteur)/2.5))
				
			display.flip()
					
	
def ecran_accueil(ecran):

	accueil = image.load("accueil.jpg")
	bouton_jouer = image.load("bouton_jouer.png")
	bouton_regle = image.load("bouton_regle.png")

	accueil = transform.scale(accueil,(Constante.largeur, Constante.hauteur))
	bouton_jouer = transform.scale(bouton_jouer,(Constante.hauteur/5, Constante.hauteur/5))
	bouton_regle = transform.scale(bouton_regle,(Constante.hauteur/3, Constante.hauteur/3))

	

	while True:    
		for evenement_joueur in event.get():
			if evenement_joueur.type == KEYDOWN:
				if evenement_joueur.key == K_SPACE:
					return

			if evenement_joueur.type == MOUSEBUTTONDOWN :
				x, y = evenement_joueur.pos
				if Constante.hauteur/5 <= x <= (2*Constante.hauteur)/5 and Constante.hauteur/5 <= y <= (2*Constante.hauteur)/5:
					return

				elif 6*Constante.hauteur/5 <= x <= (23*Constante.hauteur)/15 and 3*Constante.hauteur/5 <= y <= (14*Constante.hauteur)/15:
					ecran_regle(ecran)

			ecran.blit(accueil, (0, 0))
			ecran.blit(bouton_jouer, (Constante.hauteur/5, Constante.hauteur/5))
			ecran.blit(bouton_regle, (6*Constante.hauteur/5, 3*Constante.hauteur/5))

			display.flip()

	
def ecran_regle (ecran):

	fond_regle = image.load("ecran_regle.jpg")
	fond_regle = transform.scale(fond_regle,(Constante.largeur, Constante.hauteur))

	ecran.blit(fond_regle, (0, 0))
	display.flip()

	while True:
		for evenement_joueur in event.get():
			if evenement_joueur.type == KEYDOWN:
				if evenement_joueur.key == K_SPACE:
					return
 
			if evenement_joueur.type == MOUSEBUTTONDOWN :
				x, y = evenement_joueur.pos
				if Constante.largeur/2.3 <= x <= Constante.largeur/1.8 and Constante.hauteur/2.6 <= y <= Constante.hauteur/1.6:
					return
		
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
def maj_affichage_tour (ecran, liste_1, liste_2, image_herbe, verif_tour):
	if verif_tour == 1 :	
		for i in liste_1:
			i.afficher(ecran)# Met l'image dans le fond

	elif verif_tour == 2 :
		for i in liste_2 :
			i.afficher(ecran) # Met l'image dans le fond

def maj_affichage_unite (ecran, image, liste_1, liste_2, liste_3, verif_tour):
	if verif_tour == 3:
	
		for u in liste_3:
			for i in liste_1:
				if u[0] >= (i.position[0]/Constante.taille_rel)-1  and u[0] <= (i.position[0]/Constante.taille_rel)+1 and u[1] >= (i.position[1]/Constante.taille_rel)-1 and u[1] <= (i.position[1]/Constante.taille_rel)+1:
					ecran.blit(image, (u[0]*Constante.taille_rel, u[1]*Constante.taille_rel))
					
		for i in liste_1:
			i.avancer(carte)
			i.afficher(ecran)# Met l'image dans le fond
		
		for u in liste_3:
			for i in liste_2:
				if u[0] >= (i.position[0]/Constante.taille_rel)-1  and u[0] <= (i.position[0]/Constante.taille_rel)+1 and u[1] >= (i.position[1]/Constante.taille_rel)-1 and u[1] <= (i.position[1]/Constante.taille_rel)+1:
					ecran.blit(image, (u[0]*Constante.taille_rel, u[1]*Constante.taille_rel))	
					
		for i in liste_2 :
			i.avancer(carte)
			i.afficher(ecran) # Met l'image dans le fond
Vincent BRULE's avatar
up    
Vincent BRULE committed
216
217
218
			
def maj_affichage_argent(ecran, base_joueur, joueur):
	argent_joueur = Constante.type_ecriture.render(str(base_joueur.argent)+" euros", True, Constante.ORANGE, (0, 0, 0))
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
219
	
Vincent BRULE's avatar
up    
Vincent BRULE committed
220
221
222
223
224
225
226
	if joueur.recuperer_numero() == 1:
		draw.rect(ecran, (0, 0, 0), (5*Constante.taille_rel, 17*Constante.taille_rel, 4*Constante.taille_rel, Constante.taille_rel))
		ecran.blit(argent_joueur, (5*Constante.taille_rel, Constante.taille_rel*17))
	else :
		draw.rect(ecran, (0, 0, 0), (20*Constante.taille_rel, 17*Constante.taille_rel, 4*Constante.taille_rel, Constante.taille_rel))
		ecran.blit(argent_joueur, (20*Constante.taille_rel ,17*Constante.taille_rel))
		
Vincent BRULE's avatar
up    
Vincent BRULE committed
227
def maj_affichage_liste (ecran, liste, image):
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
228
	for i in liste :
Vincent BRULE's avatar
up    
Vincent BRULE committed
229
		ecran.blit(image, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
230
231
232

	
def verif_pose_tour (ecran, carte, (i, j)):
Mimeau Corentin's avatar
Mimeau Corentin committed
233
234
	if (i, j) in carte.liste_herbe and (i, j) not in carte.liste_herbe_obstacle and (i, j) not in carte.liste_route:
		return True
Vincent BRULE's avatar
Vincent BRULE committed
235
										
Vincent BRULE's avatar
Vincent BRULE committed
236
def affichage_chronometre (ecran, temps_passe, temps_depart):
Mimeau Corentin's avatar
Mimeau Corentin committed
237
	affichage_chrono = Constante.temps_tour - (int(temps_passe) - int(temps_depart))
Vincent BRULE's avatar
Vincent BRULE committed
238
	affichage_chrono_texte = Constante.type_ecriture_chrono.render(str(affichage_chrono), True, Constante.ORANGE, (0, 0, 0))
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
239
	draw.rect(ecran, (0, 0, 0), (Constante.largeur/2, 17*Constante.taille_rel, Constante.taille_rel,Constante.taille_rel))
Vincent BRULE's avatar
Vincent BRULE committed
240
241
242
	ecran.blit(affichage_chrono_texte, (Constante.largeur/2, 17*Constante.taille_rel))
	display.flip()		
	
Vincent BRULE's avatar
up    
Vincent BRULE committed
243
244
245
246
247
248
249
250
251
252
253
def couvrir_ecran_ennemie (ecran, verif_tour):
	if Constante.ratio == 1.6:
		if verif_tour == 1:
			draw.rect(ecran, (0, 0, 0), (Constante.largeur/2, 0, Constante.largeur/2, 17*Constante.hauteur/20))
		elif verif_tour == 2:
			draw.rect(ecran, (0, 0, 0), (0, 0, 15*Constante.largeur/32, 17*Constante.hauteur/20))
	else :
		if verif_tour == 1:
			draw.rect(ecran, (0, 0, 0), (Constante.largeur/2, 0, Constante.largeur/2, 17*Constante.hauteur/18))
		elif verif_tour == 2:
			draw.rect(ecran, (0, 0, 0), (0, 0, 15*Constante.largeur/32, 17*Constante.hauteur/18))
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
254
255
256
257
			
def maj_affichage_ecran_principal(ecran, herbe_finale, route_finale, arbre_finale, contour_finale, contour_milieu_soldat_finale, contour_milieu_soldat_finale_2, base_finale, base2_finale, sortie_ennemie_finale, base_1, base_2, j1, j2, verif_tour, verif_base ):
	for i in carte.liste_herbe : # Parcours la liste comportant la position de l'herbe
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
Vincent BRULE's avatar
up    
Vincent BRULE committed
258
		
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
		
	for i in carte.liste_route : # Parcours la liste comportant la position de la route
		ecran.blit(route_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		
	for i in carte.liste_arbre : # Parcours la liste comportant la position des arbres
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		ecran.blit(arbre_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		
	for i in carte.liste_contour : 
		ecran.blit(contour_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
		
	for i in carte.liste_contour_sortie_ennemie:
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		ecran.blit(contour_milieu_soldat_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
		
	for i in carte.liste_contour_sortie_ennemie_2:
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		ecran.blit(contour_milieu_soldat_finale_2, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
		
	for i in carte.liste_base :
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		if verif_base == 0 :
			ecran.blit(base_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
			verif_base = verif_base + 1
		else :
			ecran.blit(base2_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))
			
	for i in carte.liste_sortie_ennemie :
		ecran.blit(herbe_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel)) # Met l'image dans le fond 
		ecran.blit(sortie_ennemie_finale, (i[0]*Constante.taille_rel, i[1]*Constante.taille_rel))

	if verif_tour == 1 :	
		for i in base_1.liste_tour :
			ecran.blit(herbe_finale, (i.position[0]*Constante.taille_rel, i.position[1]*Constante.taille_rel)) # Met l'image dans le fond 
			i.afficher(ecran)# Met l'image dans le fond

	elif verif_tour == 2 :
		for i in base_2.liste_tour :
			ecran.blit(herbe_finale, (i.position[0]*Constante.taille_rel, i.position[1]*Constante.taille_rel)) # Met l'image dans le fond 
			i.afficher(ecran) # Met l'image dans le fond

	else :
		for i in base_1.liste_tour :
			i.afficher(ecran)
		for i in base_2.liste_tour :
			i.afficher(ecran)
	
	couvrir_ecran_ennemie (ecran, verif_tour)
		
	maj_affichage_argent(ecran, base_1, j1)
	maj_affichage_argent(ecran, base_2, j2)	
	
Vincent BRULE's avatar
up    
Vincent BRULE committed
311
312
313
def ecran_principal(ecran, j1, j2, verif_tour, base_1, base_2):
	
	son_fond(1) #demarre le son
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
314
	verif_base = 0
Vincent BRULE's avatar
up    
Vincent BRULE committed
315
	
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
316
	draw.rect(ecran, (0, 0, 0), (0, 0, Constante.largeur, Constante.hauteur))
Vincent BRULE's avatar
up    
Vincent BRULE committed
317
	
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
318
319
	contour_milieu_soldat_image = image.load("contour_milieu_soldat.png")
	contour_milieu_soldat_image_2 = image.load("contour_milieu_soldat_2.png")
Vincent BRULE's avatar
Vincent BRULE committed
320
	herbe_image = image.load("herbe.png") # Charge l'image de la pelouse
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
321
322
323
324
325
326
	route_image = image.load("route.png")# Charge l'image de la route
	arbre_image = image.load("arbre.png").convert_alpha() # Charge l'image des arbres
	contour_image = image.load("contour.png")
	sortie_ennemie_image = image.load("milieu_soldat.png").convert_alpha()
	base_image = image.load("base.png").convert_alpha()
	base2_image = image.load("base2.png").convert_alpha()
Vincent BRULE's avatar
up    
Vincent BRULE committed
327
	choix_case_image = image.load("choix_case.png")
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
328
329
	tour_1_image = image.load("tour_1_avec_fond.png") 
	tour_2_image = image.load("tour_2_avec_fond.png") 
Vincent BRULE's avatar
up    
Vincent BRULE committed
330
	
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
331
332
	contour_milieu_soldat_finale = transform.scale(contour_milieu_soldat_image,(Constante.taille_rel, Constante.taille_rel))
	contour_milieu_soldat_finale_2 = transform.scale(contour_milieu_soldat_image_2,(Constante.taille_rel, Constante.taille_rel))
Vincent BRULE's avatar
Vincent BRULE committed
333
	herbe_finale = transform.scale(herbe_image,(Constante.taille_rel, Constante.taille_rel))
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
334
335
336
337
338
339
	route_finale = transform.scale(route_image,(Constante.taille_rel, Constante.taille_rel))
	arbre_finale = transform.scale(arbre_image,(2*Constante.taille_rel, 2*Constante.taille_rel))
	contour_finale = transform.scale(contour_image,(Constante.taille_rel, Constante.taille_rel))
	base_finale = transform.scale(base_image,(3*Constante.taille_rel, 3*Constante.taille_rel))
	base2_finale = transform.scale(base2_image,(3*Constante.taille_rel, 3*Constante.taille_rel))
	sortie_ennemie_finale = transform.scale(sortie_ennemie_image,(Constante.taille_rel, Constante.taille_rel))
Vincent BRULE's avatar
up    
Vincent BRULE committed
340
	choix_case_finale = transform.scale(choix_case_image,(Constante.taille_rel, Constante.taille_rel))
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
341
342
343
	tour_1_finale = transform.scale(tour_1_image, (Constante.taille_rel, Constante.taille_rel))
	tour_2_finale = transform.scale(tour_2_image, (Constante.taille_rel, Constante.taille_rel))
		
Vincent BRULE's avatar
up    
Vincent BRULE committed
344
345
346
347
348
349
350
351
352
353
354
355
356
	if Constante.verif_carte == 0:
		global carte 
		carte = Carte()
		if Constante.ratio == 1.6:
			lecture_carte("dico_carte_ratio_16_10.txt", carte) # Lis le dictionnaire contenant la carte en fonction du ratio
		else :
			lecture_carte("dico_carte_ratio_16_9.txt", carte)
	
		
	texte_joueur = Constante.type_ecriture.render(j1.nom, True, Constante.ORANGE)
	texte_joueur2 = Constante.type_ecriture.render(j2.nom, True, Constante.ORANGE)
	ecran.blit(texte_joueur, (0, Constante.taille_rel*17))
	ecran.blit(texte_joueur2, (28*Constante.taille_rel ,Constante.taille_rel*17))
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
357
		
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
358
	maj_affichage_ecran_principal(ecran, herbe_finale, route_finale, arbre_finale, contour_finale, contour_milieu_soldat_finale, contour_milieu_soldat_finale_2, base_finale, base2_finale, sortie_ennemie_finale, base_1, base_2, j1, j2, verif_tour, verif_base )
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
359
	
Vincent BRULE's avatar
up    
Vincent BRULE committed
360
	Constante.verif_carte = 1
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
361
	
Mimeau Corentin's avatar
Mimeau Corentin committed
362
363
	temps_passe = time.time()
	temps_depart = time.time()
Vincent BRULE's avatar
Vincent BRULE committed
364
	
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
365
366
367
368
369
	unite = Unite_feu((Constante.taille_rel*14, Constante.taille_rel*8), 2)
	unite_2 = Unite_glace((Constante.taille_rel*16, Constante.taille_rel*8), 1)
	base_1.liste_unite.append(unite)
	base_2.liste_unite.append(unite_2)
	
Mimeau Corentin's avatar
Mimeau Corentin committed
370
	while temps_passe - temps_depart < Constante.temps_tour:
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
371
372
373
	
		maj_affichage_unite (ecran, route_finale, base_1.liste_unite, base_2.liste_unite, carte.liste_route, verif_tour)

Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
374
		for evenement_joueur in event.get():
Vincent BRULE's avatar
up    
Vincent BRULE committed
375
		
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
376
377
			if evenement_joueur.type == KEYDOWN:
				if evenement_joueur.key == K_ESCAPE:
Vincent BRULE's avatar
Vincent BRULE committed
378
					quit()
Vincent BRULE's avatar
up    
Vincent BRULE committed
379
380
381
382
383
384
385
					
				elif evenement_joueur.key == K_SPACE:
					return
					
				elif evenement_joueur.key == K_s:
					if Constante.verif_son % 2 == 0:
						Constante.verif_son = Constante.verif_son + 1
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
386
						son_fond(2)
Vincent BRULE's avatar
up    
Vincent BRULE committed
387
388
					elif Constante.verif_son % 2 == 1:
						Constante.verif_son = Constante.verif_son + 1
Vincent BRULE's avatar
Gros up    
Vincent BRULE committed
389
						son_fond(3)
Vincent BRULE's avatar
up    
Vincent BRULE committed
390
391
392
						
			if evenement_joueur.type == MOUSEBUTTONDOWN :	
			
Mimeau Corentin's avatar
Mimeau Corentin committed
393
				couvrir_ecran_ennemie(ecran, verif_tour)	
Vincent BRULE's avatar
up    
Vincent BRULE committed
394
				
Vincent BRULE's avatar
Vincent BRULE committed
395
396
				(x, y) = evenement_joueur.pos
				(u, v) = (x/Constante.taille_rel, y/Constante.taille_rel)
Vincent BRULE's avatar
up    
Vincent BRULE committed
397
398
				(g, b) = (Constante.position[0]*Constante.taille_rel, Constante.position[1]*Constante.taille_rel)
				
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
399
				if (u, v) in carte.liste_tour_1:
Vincent BRULE's avatar
up    
Vincent BRULE committed
400
401
					if verif_tour == 1:
						if Constante.position[0] < 16 :
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
402
							if verif_pose_tour(ecran, carte, (Constante.position[0], Constante.position[1])) == True:
Vincent BRULE's avatar
up    
Vincent BRULE committed
403
404
405
								ecran.blit(herbe_finale, (g ,b))
					else : 
						if Constante.position[0] >= 16 :
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
406
							if verif_pose_tour(ecran, carte, (Constante.position[0], Constante.position[1])) == True:
Vincent BRULE's avatar
up    
Vincent BRULE committed
407
408
409
410
411
412
413
414
415
								ecran.blit(herbe_finale, (g ,b))
								
					Constante.verif_cadre_rouge = 0		
 
					
				else:	
				
					if Constante.verif_cadre_rouge == 1:
						
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
416
417
						if Constante.position in carte.liste_tour_1:
							ecran.blit(tour_1_finale, (g ,b))
Vincent BRULE's avatar
up    
Vincent BRULE committed
418
419
420
421
422
						else :
							ecran.blit(herbe_finale, (g ,b))
							
						Constante.verif_cadre_rouge = 0
						
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
423
424
425
						if verif_tour == 1:		
							if (u, v) == (18, 3):
								if verif_pose_tour(ecran, carte, Constante.position) == True:
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
426
427
										couvrir_ecran_ennemie (ecran, verif_tour)
										if base_1.depenser_argent(10) != "NON":
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
428
429
430
431
432
433
434
435
												carte.liste_tour_1.append(Constante.position)
												tour = Tour_feu(Constante.position, verif_tour)
												base_1.liste_tour.append(tour)

												carte.liste_herbe_obstacle.append(Constante.position)
												maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
												maj_affichage_argent(ecran, base_1, j1)

436
437
438
439
440
441
442
							elif (u, v) == (22, 3):
								if verif_pose_tour(ecran, carte, Constante.position) == True:
										couvrir_ecran_ennemie (ecran, verif_tour)
										if base_1.depenser_argent(20) != "NON":
												carte.liste_tour_1.append(Constante.position)
												tour = Tour_glace(Constante.position, verif_tour)
												base_1.liste_tour.append(tour)
Mimeau Corentin's avatar
Mimeau Corentin committed
443

444
445
446
447
												carte.liste_herbe_obstacle.append(Constante.position)
												maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
												maj_affichage_argent(ecran, base_1, j1)

Mimeau Corentin's avatar
Mimeau Corentin committed
448

Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
449
450
451
452
453
454
455
456
457
458
459
460
461
						elif verif_tour == 2:					
							if (u, v) == (8, 3):
								if verif_pose_tour(ecran, carte, Constante.position) == True:
										couvrir_ecran_ennemie (ecran, verif_tour)
										if base_2.depenser_argent(20) != "NON":
												carte.liste_tour_1.append(Constante.position)
												tour = Tour_glace(Constante.position, verif_tour)
												base_2.liste_tour.append(tour)
												carte.liste_herbe_obstacle.append(Constante.position)
												maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
												maj_affichage_argent(ecran, base_2, j2)
							elif (u, v) == (12, 3):
								if verif_pose_tour(ecran, carte, Constante.position) == True:
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
462
463
										couvrir_ecran_ennemie (ecran, verif_tour)
										if base_2.depenser_argent(10) != "NON":
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
464
465
466
												carte.liste_tour_1.append(Constante.position)
												tour = Tour_feu(Constante.position, verif_tour)
												base_2.liste_tour.append(tour)
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
467
												carte.liste_herbe_obstacle.append(Constante.position)
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
468
												maj_affichage_tour (ecran, base_1.liste_tour, base_2.liste_tour, herbe_finale, verif_tour)
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
469
470
												maj_affichage_argent(ecran, base_2, j2)

Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
471

Vincent BRULE's avatar
Vincent BRULE committed
472
									
Vincent BRULE's avatar
up    
Vincent BRULE committed
473
474
475
476
					for (i, j) in carte.liste_herbe:
						if u == i and v == j:
							if verif_tour == 1 :
								if i < 16:
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
477
478
479
									if verif_pose_tour(ecran, carte, (i, j)) == True:
										ecran.blit(tour_1_finale, (18*Constante.taille_rel, 3*Constante.taille_rel))
										ecran.blit(tour_2_finale, (22*Constante.taille_rel, 3*Constante.taille_rel))
Vincent BRULE's avatar
up    
Vincent BRULE committed
480
481
482
483
										ecran.blit(choix_case_finale, (i*Constante.taille_rel, j*Constante.taille_rel))
										Constante.verif_cadre_rouge = 1
							if verif_tour == 2 :
								if i >= 16:
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
484
485
486
									if verif_pose_tour(ecran, carte, (i, j)) == True:
										ecran.blit(tour_1_finale, (12*Constante.taille_rel, 3*Constante.taille_rel))
										ecran.blit(tour_2_finale, (8*Constante.taille_rel, 3*Constante.taille_rel))
Vincent BRULE's avatar
up    
Vincent BRULE committed
487
488
489
490
										ecran.blit(choix_case_finale, (i*Constante.taille_rel, j*Constante.taille_rel))
										Constante.verif_cadre_rouge = 1
										
					Constante.position = (u , v)
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
491

Mimeau Corentin's avatar
Mimeau Corentin committed
492
		affichage_chronometre (ecran, temps_passe, temps_depart)
Vincent BRULE's avatar
up    
Vincent BRULE committed
493
		display.flip()
Mimeau Corentin's avatar
Mimeau Corentin committed
494
		temps_passe = time.time()
Vincent BRULE's avatar
Vincent BRULE committed
495
		
Mimeau Corentin's avatar
Indent    
Mimeau Corentin committed
496
	return
Mimeau Corentin's avatar
idem    
Mimeau Corentin committed
497