Bonjour à toutes et tous !!

Je dois faire un jeu Isola etj'ai un problème pour la vérification de placement.
Je m'explique :

*Base du jeu : Le but de ce jeu est d'isoler son adversaire pour qu'il ne puisse plus bouger. Cela se passe sur un plateau de jeu de taille quelconque (elle est choisit par les joueurs), les joueurs décident de leurs placement initiaux et tente d'isoler leur adversaire le plus rapidement possible.

Mon problème se situe au niveau du placement des joueurs, en effet les 2 joueurs peuvent se placer au même endroit sans que le programme rale alors que je pensais avoir fait la vérification.

Par exemple : le plateau de jeu fait 5 sur 5, le joueur 1 se place sur la case 3-3, le joueur 2 pourra lui aussi se placer sur la case 3-3

J'ai une structure pour le plateau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//On définit une structure plateau
struct plateau
{
       int ligne;
       int colonne;
       int cases;
       int posx1;
       int posx2;
       int posy1;
       int posy2;
       boolean* matrix ;
};
//On nomme struct plateau en matriciel.
typedef struct plateau matriciel ;
Voici comment je créé mon plateau de jeu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
//Fonction CreateDynMatrice2d appelée par la fonction tailleplateau.
matriciel CreateDynMatrice2d(int ligne,int colonne)
{
       int i ;
       matriciel matrice ;
 
	   //Sauvegarde des dimensions de la matrice dans la structure.
       matrice.ligne = ligne ;
       matrice.colonne = colonne ;
 
	   //Réservation de la mémoire pour la matrice.
       matrice.matrix = (boolean*)malloc(ligne*colonne*sizeof(boolean));
 
	   //Mise de toutes les cases de la matrice à vrai.
       for (i = 0 ; i < (ligne*colonne); i++)
       {
		   matrice.matrix[i] = true;
       }
 
	   //Enregistrement du nombre de cases
       matrice.cases = (ligne*colonne);
 
	   //On renvoie la matrice créée.
       return matrice ;
}
//Fin fonction CreateDynMatrice2d
Viens enfin le code pour le placement de joueurs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
//Fonction de placementjoueur appelée par les procédure un_joueur et deux_joueurs.
matriciel placementjoueur(matriciel matrice, joueur j)
{
	//Déclaration des variables
	//pour savoir ou le joueur veut se positionner.
	int ligneplace;
	int colonneplace;
	//pour savoir si le placement du joueur est bon.
	boolean placement = false;
 
	while (placement == false)
	{
	   //Demande de la position de départ du joueur.
	   //Demande pour la ligne
	   printf("\n%s saisissez la ligne ou vous voulez vous placer : ",j.nom);
	   scanf("%d",&ligneplace);
 
	   //Les valeurs doivent êre comprisent entre 0 et la taille de la matrice.
	   while ((ligneplace <= 0) || (ligneplace > matrice.ligne))
	   {
		   //Afichage d'un message d'erreur si les valeurs saisies ne sont pas bonnes.
		   printf("%s, vous devez saisir des valeur comprisent entre 1 et %d\n\n", j.nom, matrice.ligne);
		   printf("%s saisissez la ligne ou vous voulez vous placer : ",j.nom);
		   scanf("%d",&ligneplace);
	   }
 
	   //Demande pour la ligne
	   printf("%s saisissez la colonne ou vous voulez vous placer : ",j.nom);
	   scanf("%d",&colonneplace);
 
 
	   //Les valeurs doivent êre comprisent entre 0 et la taille de la matrice.
	   while ((colonneplace <= 0) || (colonneplace > matrice.colonne))
	   {
		   //Afichage d'un message d'erreur si les valeurs saisies ne sont pas bonnes.
		   printf("%s, vous devez saisir des valeur comprisent entre 1 et %d\n\n", j.nom, matrice.colonne);
		   printf("%s saisissez la colonne ou vous voulez vous placer : ",j.nom);
		   scanf("%d",&colonneplace);
	   }
 
	   //Vérification du placement du joueur, si sa position est fausse, on lui demande de ressaisir.
	   if (matrice.matrix[(ligneplace*matrice.ligne)+colonneplace] == false)
	   {
		   printf("%s la position que vous avez choisie n'est pas accessible, veuillez ressaisir des valeurs correctes.\n\n", j.nom);
	   }
	   else
	   {
		   placement = true;
	   }
 
	}
 
	//Enregistrement de la position du joueur.
	matrice.posy1=colonneplace--;
	matrice.posx1=ligneplace--;
 
	//Mise a faux de la place prise par le joueur.
	matrice.matrix[(ligneplace*matrice.ligne)+colonneplace] = false;
 
	return matrice;
}
//Fin fonction placementjoueur
Je pense que j'ai mis ce qu'il y a de nécessaire pour voir l'erreur.
merci de vos réponses