Esempio n. 1
0
def prise_possible_direction(p, i, j, vertical, horizontal, joueur):
	if case_valide(p,i+vertical,j+horizontal)==False: # Si la case n'existe pas dans le plateau, on retourne False
		return False
	if get_case(p,i+vertical,j+horizontal)==0 or get_case(p,i+vertical,j+horizontal)==joueur: # Si la case est 0 ou la case est celle du joueur en paramètre, on retourne False 
		return False
	vert=vertical # On rajoute une variable qui permettera une addition de la direction verticale
	horiz=horizontal # On rajoute une variable qui permettera une addition horizontale
	while case_valide(p,i+vertical+vert,j+horizontal+horiz): # Tant qu'on ne sort pas du plateau, on continue de vérifier
		if get_case(p,i+vertical+vert,j+horizontal+horiz)==joueur: # On additionne les directions pour aller dans une nouvelle ligne et/ou nouvelle colonne. Si on retombe sur nos pas avec un pion du même type, on retourne True
			return True # On retourne True si on retombe sur nos pas avec un pion de même couleur
		elif get_case(p,i+vertical+vert,j+horizontal+horiz)==0: # On utilise la même stratégie mais avec le besoin de vérifier si la case entre les deux pions de la même couleur ne soit pas vide (0)
			return False # On retourne False si le pion est vide
		else:
			vertical+=vert #On ré-additionne pour aller dans une nouvelle ligne et/ou colonne 
			horizontal+=horiz 
	return False
Esempio n. 2
0
def mouvement_direction(plateau, i, j, vertical, horizontal, joueur):
	if prise_possible_direction(plateau, i, j, vertical, horizontal, joueur)==True: # On confirme que la prise de direction est possible
		vert=vertical+i # Vertical s'additionne avec la valeur i (de colonne)
		horiz=horizontal+j # Horizontal s'additionne avec la valeur j (de ligne)
		while get_case(plateau, vert, horiz)==pion_adverse(joueur): # Tant que la case est celle de l'adversaire...
			set_case(plateau, vert, horiz, joueur) # ...On change la valeur pour celle du joueur
			vert+=vertical
			horiz+=horizontal # On additionne pour arriver à la prochaine ligne et/ou colonne
Esempio n. 3
0
def mouvement_valide(plateau, i, j, joueur):
	if get_case(plateau,i,j)==0: # On regarde immédiatement si la case est vide
		vertical=-1 # On initialise à -1 pour tout balayer
		while vertical<=1:  
			horizontal=-1 # Même chose pour cette variable
			while horizontal<=1: 
				if prise_possible_direction(plateau,i,j,vertical,horizontal,joueur)==True: # Nous regardons la prise possible de direction dans toutes les directions possibles
					return True # On retourne True si le mouvement est valide
				horizontal+=1 
			vertical+=1
	return False # On retourne False si le mouvement n'est pas valide
Esempio n. 4
0
def test_mouvement():
	
	p=creer_plateau(4)
	print("PLATEAU 4 POUR FONCTION MOUVEMENT")
	mouvement(p,3,2,1) # On mange le pion en (2,2) et on place un pion (3,2)
	afficher_plateau(p)
	assert get_case(p,2,2)==1 # Le pion mangé est bien noir
	assert not get_case(p,2,2)==2 # Le pion mangé est noir donc cela est faux
	
	p=creer_plateau(6)
	print("PLATEAU 6 POUR FONCTION MOUVEMENT") 
	mouvement(p,4,2,2) # On mange le pion en (3,2) et on place un pion (4,2)
	afficher_plateau(p)
	assert get_case(p,3,2)==2 # Le pion mangé est bien blanc
	assert not get_case(p,4,2)==1 # Le pion mangé est blanc donc cela est faux
	
	p=creer_plateau(8)
	print("PLATEAU 8 POUR FONCTION MOUVEMENT")
	mouvement(p,2,3,1) # On mange le pion en (3,3) et on place un pion (2,3)
	afficher_plateau(p)
	assert get_case(p,2,3)==1 # Le pion qu'on a inséré est bien noir
	assert not get_case(p,3,3)==2 # Le pion qu'on a retourné n'est plus noir mais blanc
Esempio n. 5
0
def test_mouvement_direction():
	
	p=creer_plateau(4)
	mouvement_direction(p,0,2,1,0,2) # On mange le pion blanc placé en (1,2)
	print("PLATEAU 4 POUR FONCTION MOUVEMENT_DIRECTION")
	afficher_plateau(p)
	assert get_case(p,2,1)==1 # La valeur de la case (2,1) est 1
	assert not get_case(p,0,0)==2 # La valeur de la case (2,2) est 0
	
	p=creer_plateau(6)
	mouvement_direction(p,4,2,-1,0,2) # On mange le pion noir placé en (3,2)
	print("PLATEAU 6 POUR FONCTION MOUVEMENT_DIRECTION")
	afficher_plateau(p)
	assert get_case(p,3,2)==2 # La valeur de la case (3,2) est 2
	assert not get_case(p,3,2)==1 # La valeur de la case (3,2) est 2
	
	p=creer_plateau(8)
	mouvement_direction(p,4,2,0,1,2) # On mange le pion blanc placé en (4,3)
	print("PLATEAU 8 POUR FONCTION MOUVEMENT_DIRECTION")
	afficher_plateau(p)
	assert get_case(p,4,3)==2 # La valeur de la case (4,3) est 2
	assert not get_case(p,4,3)==1 # La valeur de la case (4,3) est 2