Bonjour à tous,

Je suis en train de programmer une sorte de jeu de dames simplifié et j'ai un problème assez étrange :

J'ai une fonction afficher(grille) ou grille est une matrice dont je me sers pour représenter les différentes cases du plateau de jeu. J'ai défini une fonction qui vérifie si après avoir mangé un pion adverse, l'IA (parce que je programme un bot) peut resauter par dessus un pion adverse :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
def re_saut(arrivée, pion_ennemi, grille):
	X = arrivée[0]
	Y = arrivée[1]
	print(X)
	print(Y)
	for i in [-2, 0, 2]:
		for j in [-2, 0, 2]:
			if i!=j:
				if (0 <= X+i < 5) and (0 <= Y+j < 5):  #łe plateau de jeu est de 5x5 donc on regarde si la case appartient à cette intervalle
					if grille[X+i][Y+j]==' ':  #si la case situé à deux cases de distance du point ou est notre pion est vide
						if grille[X+(i//2)][Y+(j//2)]== pion_ennemi: #et que la case intermédiaire est occupé par un pion ennemi
							return True #on peut faire un déplacement "capture" en sautant par dessus 
	return False
Or le programme me renvoie un "Non obect" parce que la grille semble être du type none (ce qui n'est pas le cas puisque j'arrive parfaitement à l'appeler par d'autres fonctions comme justement ma fonction afficher). Pour corriger cela, j'ai du supprimer grille des arguments de la fonction et mettre global grille au début. Néanmoins, cela a crée d'autres bugs, et j'aimerais savoir ce qu'il se passe (pourquoi il ne reconnait plus grille dans la fonction, pourquoi utiliser un global etc...).

Merci d'avance !