foducool
Messages postés9Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 6 janvier 2005
-
4 janv. 2005 à 11:27
Vladostivistic
Messages postés4Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 8 janvier 2005
-
8 janv. 2005 à 22:12
ben vala moi aussi j'dois faire un prog de reversi en C
j'avais déjà posté mais le thread à l'air si vieux que je l'ai pas
retrouvé dans les 10 premières pages du forum alors je reposte vala.
je fais le reversi, je tourne sous windows, j'utilise Dev C++
je fais la phase d'initialisation du plateau :
#define N 8
#include <stdio.h>
int main(void)
{
int Plateau[N][N];
int i,j,k=64;
for(i=N;i>0;i--)
{
for(j=N;j>0;j--)
{
Plateau[i][j]=0;
}
}
return 0;
}
j'l'ai séparée du reste du prog pour voir pk le programme plantait.
enfin bref j'en suis arrivé à la réduire à ça et je comprends pas
pourquoi quand je lance l'application, l'invite de commande me met un
erreur (en considérant que j'ai vérifié que le programme effectuait
bien l'opération que je lui demandais en couplant l'initialisation avec
un programme d'affichage.)
je pense que le problème vient de la boucle vu qu'il reste plus que ça et que ca plante encore
/*fonction principale*/
int main(void)
{
int Plateau[N][N],vide;
init(Plateau);
affichage(Plateau);
do{
joueur1(Plateau);
affichage(Plateau);
joueur2(Plateau);
affichage(Plateau);
vide=case_vide(Plateau);
}while (vide=0);
return 0;
}
comment ça se fait que quand je fais tourner le programme, quand vient le tour du joueur 1, ça marche impec, il prend les coordonnées, il affiche et quand c'est le tour du joueur 2 il sort du prog sans même demander le scan ?
(idem pour joueur2) si la lettre saisie ne correspond à aucun des choix
('A', 'B', etc) ou si l'utilisateur (qui peut être très con parfois
lol) tape une minuscule, ta variable ligne n'est jamais initialisée et
donc quand tu fais :
Plateau[ligne][colonne]=-1;
o
u encore si l'utilisateur tape une valeur de 'colonne' en dehors des limites du tableau,
tu risques d'avoir un petit problème de plantage (comme au début).
j'aurais fait plutot comme ça :
void joueur1(int Plateau[N][N])
{
char lettre;
int colonne,ligne;
printf("joueur n°1\n");
printf("choisissez une case où poser votre pion (lettre chiffre) : ");
scanf("%c %d",&lettre,&colonne);
foducool
Messages postés9Date d'inscriptionmardi 4 janvier 2005StatutMembreDernière intervention 6 janvier 20051 6 janv. 2005 à 14:28
arf ouais merde >_<
enfin pour les caractères, c'est vrai que je devrai faire ça mais j'en suis qu'au début là
c'est une bonne idée je mettrai en pratique merci Mister Mizo
Vladostivistic
Messages postés4Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 8 janvier 2005 8 janv. 2005 à 22:11
de meme, jai un autre probleme (dans mes connaissances).
je cherche a faire une fonction (je crois que ca sappelle comme ca) de
facon a ne pas repeter a chaque fois la boucle pour l'affichage du
tableau c a d :
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*/
Vladostivistic
Messages postés4Date d'inscriptionvendredi 7 janvier 2005StatutMembreDernière intervention 8 janvier 2005 8 janv. 2005 à 22:11
de meme, jai un autre probleme (dans mes connaissances).
je cherche a faire une fonction (je crois que ca sappelle comme ca) de
facon a ne pas repeter a chaque fois la boucle pour l'affichage du
tableau c a d :
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*/