Bonjour,
je commence le C moi aussi et je dois faire un projet reversi.
Cependant, j'ai quelques problemes pour faire la condition de test des cases.
dans l'exemple ci dessous je test la case de gauche a la case que lon veut rentrer.
Le probleme qui se pose c'est que au bout de la 3eme fois il me
creer un autre symbole au dessus de la case voulu et je ne sais pas
d'ou viens le pb.
(dsl pour la longueur)
#include <stdio.h>
#include "conio.h"
int main(int argc, char *argv[])
{
long taille, ligne, colonne;
long col, milieu, tai, lig ;
long i, j, cpt ;
long choix;
char adv, mien ;
char plat[30][30];
do
/*boucle pour avoir un nombre de cases pair*/
{
printf("Combien de colonnes, lignes voulez vous? \n");
fflush(stdin);
scanf("%ld", &taille);
tai=taille%2;
}
while(taille<6 || tai!=0 );
printf("\n");
/*calcul pour obtenir le milei du plateau*/
milieu = taille/2;
for(i=0; i<taille;
i++)
/*boucle pour l'affichge des abscisses*/
{
if(i==0)
{
printf(" %c ", i+49);
}
else
{
printf(" %c ", i+49);
}
}
printf("\n");
for(i=0; i<taille;
i++) /*boucle
pour l'affichage du tableau avec son milieu*/
{
if(i<9)
/*et des ordonnées*/
{
printf(" %ld ", i+1);
}
else
{
printf(" %ld ", i+1);
}
for(j=0; j<taille; j++)
{
plat[i][j]='.';
plat[milieu-1][milieu-1]='O';
plat[milieu][milieu-1]='X';
plat[milieu][milieu]='O';
plat[milieu-1][milieu]='X';
printf(" %c ", plat[i][j]);
}
printf("\n");
}
/*******************************Fin de l'initialisation************************/
cpt = 0 ;
choix=1;
do
{
choix=choix+1;
choix=choix%2;
switch(choix)
{
case 0 :
adv='O';
/*Pour le joueur X l'adversaire a les poins O*/
mien= 'X';
break;
case 1 :
adv='X';
/*Pour le joueur O l'adversaire a les poins X*/
mien= 'O';
break;
default : adv='.';
mien='.';
}
printf("\n\n");
printf("Joueur : %c, a vous de jouer : \n\n",mien);
do
{
printf("entrer les coordonnées de votre points :\n ligne : ");
fflush(stdin);
scanf("%ld",&ligne);
printf(" colonne : ");
fflush(stdin);
scanf("%ld",&colonne);
}
while(ligne>taille || ligne<0 || colonne>taille || colonne<0 );
col = colonne ;
lig=ligne ;
//case a gauche
if (plat[lig-1][col-2]==adv)
{
do
{
col=col-1;
if(plat[lig-1][col-2]==mien)
{
colonne =
colonne - 1
;
/*le tableau commence à 0 */
ligne= ligne- 1;
plat[ligne][colonne]=mien;
for(i=0;
i<taille; i++)
/*boucle pour l'affichage du tableau avec son milieu*/
{
for(j=0; j<taille; j++)
{
printf(" %c ", plat[i][j]);
}
printf("\n");
}
}
}
while ( plat[lig-1][col-2]==adv || plat[lig-1][col-2]==mien);
}
cpt = cpt + 1;
printf("\n\n");
}
while(cpt<taille*taille-4);
/*condition de fin de jeu*/
system("pause");
return 0;
}
si quelqu'un peut maider je lui en serait reconnaissant

-Vlado-