Ejemplo n.º 1
0
def verification_solution (proposition): 
	""" Fonction qui effectue un coup du joueur !
		Si le coup est invalide, on n'enlève pas de vie ni ne diminue 
		le score !

		@proposition : [couleur (français) ...] = la proposition du joueur

		@return : "gagne" | "perdu" | (a,b)
			- "gagne" : l'utilisateur a gagné la partie
			- "perdu" : l'utilisateur a perdu la partie
			- (a,b) : a couleurs justes et bien placées, b couleurs justes et mal placées 
		
		@throw : TableauInvalide (msg)
				PasEnCoursDePartie
	"""
	global restant
	
	if est_en_partie () != True:
		raise PasEnCoursDePartie
	
	if len (proposition) != 4:
		raise TableauInvalide ("Pas le bon nombre de couleurs")
	
	

	univers = couleurs.liste_couleurs()[0:get_nombre_couleurs ()]
	for i in proposition:
		if i not in univers:
			raise TableauInvalide ("La couleur {0} n'est pas bonne".format (i))

	reponse = proposition_solution (proposition,code_secret)
	
	a,b = reponse

	historique.append([ list (proposition) , reponse])
	
	restant -= 1
	l = []

	for i in proposition: # alala, c'est trop con sinon 
		l.append (couleurs.string_to_hexa (i))
	
	# Affiche la proposition à l'écran
	affichage.afficher_couleurs (4,l,reponse)
	
	if a == 4: #si proposition est identique à solution
		score = scores.calcul_score()
		affichage.win (score)
		
		en_cours_de_partie = False
		return "gagne"
	elif restant <= 0: #si le nombre de coups restants est de 0
		affichage.loose (list(code_secret))
		
		en_cours_de_partie = False
		return "perdu"
	else:
		return reponse #retourne a, le nombre de justes bien placées, et b le nombre de justes mal placées.
Ejemplo n.º 2
0
def proposer_solution (proposition):
	global restant

	# couleurs.is_string (c) 
	# il faut verifier que la couleur est valide 

	a = 0
	b = 0
	i = 0

	solution = list (code_secret)

	while i < len (code_secret):
		if solution[i] == proposition[i]:
			a = a+1
			solution[i] = "*"
		i = i+1
	i = 0

	while i < len (code_secret):
		j = 0
		while j < len (solution):
			if solution[j] != "*" and solution[j] == proposition[i]:
				b = b+1
				solution[j] = "*"
				break
			j = j + 1
		i = i+1

	restant -= 1
	if a == 4:
		affichage.win ("red")
		return "gagne"
	elif restant == 0:
		affichage.perdu ()
		return "perdu"
	else:
		l = []
		for i in proposition:
			l.append (couleurs.string_to_hexa (i))
		
		affichage.afficher_couleurs (4,l,(a,b))
		return (a,b)
Ejemplo n.º 3
0
def reprendre_partie ():
	""" Réaffiche le plateau et les coups joués précédement dans 
		la partie sur l'écran Turtle 
		
		@return : None
		
		@throw : PasEnCoursDePartie
	"""
	global historique
	
	if est_en_partie () != True:
		raise PasEnCoursDePartie
	
	affichage.plateau () # Remet l'affichage du plateau

	for coup in historique:
		couleurs_hexa = []
		
		for couleurplacee in coup[0]: # alala, c'est trop con sinon 
			couleurs_hexa.append (couleurs.couleur_to_hexa (couleurplacee))
			
		affichage.afficher_couleurs (4,couleurs_hexa,coup[1])