jeu de dames prob avec les fonctions - C - Programmation
Marsh Posté le 23-05-2005 à 17:44:42
Balises [cpp][/cpp] please
Illisible tel quel, pas indenté ni rien, même pas envie d'essayer.
En plus "j'ai un pb avec mes fonctions", c'est un peu trop précis. Si tu pouvais être un peu plus vague, je pense qu'on y verrait encore plus clair.
Marsh Posté le 23-05-2005 à 18:13:57
Bon aller, je sens que je vais devoir mettre moi même les balises parce que là ...
Au passage j'ai modifié un peu pour que ça compile.
Code :
|
Marsh Posté le 23-05-2005 à 21:04:07
hub le switch a écrit : |
En reprenant le code de Tarabiscote, j'obtiens ceci:
|
Les deux derniers problèmes peuvent entrainer des comportements indéfinis...
Voilà ton code remanié. J'ai beaucoup travaillé sur le nommage (le tien était ... innomable) et la sécurité des saisies. J'ai aussi simplifié pas mal de choses (pas la peine d'allouer un tableau de taille fixe).
Pose des questions si tu ne comprends pas.
|
Marsh Posté le 23-05-2005 à 17:26:37
salut à tous,
j'ai un projet à faire, c'est un jeu de dames
j'ai un prob avec mes fonctions
quelqu'un peut y jeter un oeil svp.
vous pouvez faire des modifs si vous voullez.
y'en aura surement vu que c'est ma première programmation;
alors allez y; faites vous plaizzzzzzzzz
j'utilise Visual C++6
voici le message d'erreur:"local function definitions are illegal"
c'est parti!!!
à plus.
#include<stdio.h>
#include<stdlib.h>
#define TAY 10
#define TAY2 2
/*traçage du tableau*/
void affichage(char**tab,short nnr, short nbr){
short i,k,l,m,numligne,numcol;
l=0;
m=0;
//titre
for(i=0;i<27;i++)
printf("*#" );
for(i=0;i<10;i++)
printf("*#" );
printf(" JEU DE DAME" );
for(i=0;i<10;i++)
printf("*#" );
printf("\n" );
for (i=0;i<27;i++)
printf("*#" );
printf("*\n\n\n" );
//rephre colonne
printf(" 1 2 3 4 5 6 7 8 9 10\n" );
//ligne horizontale haut
printf(" " );
for(i=0;i<50;i++)
printf("_" );
printf("\n" );
for (numligne=0;numligne<10;numligne++){
//la case noirte
if(m%2==0){
for(k=0;k<3;k++){
//rephre ligne
if(k==0||k==2)
printf("|" );
else if(m==0)
printf("A|" );
else if(m==2)
printf("C|" );
else if(m==4)
printf("E|" );
else if(m==6)
printf("G|" );
else if(m==8)
printf("I|" );
for(numcol=0;numcol<10;numcol++){
//la fameuse case noirte
if(l%2!=1){
if(k==1)
printf("%c",tab[numligne][numcol]);
else printf(" " );
l++;
}
//et la case blanche
else{
printf("###" );
l++;
}
}
printf("|\n" );
}
m++;
}
//ligne horizontale bas
printf(" " );
for(i=0;i<50;i++)
printf("-" );
//rephre colonne
printf("\n 1 2 3 4 5 6 7 8 9 10\n" );
printf("\n\n\n\n" );
//clearage du tableau
for(i=0;i<10;i++){
for(k=0;k<10;k++){
printf("%c",tab[i][k]);
}
printf("\n" );
}
printf("\n\n\n" );
}
///////////////// fin affichagte
/// nombre de pion restant
short compten(char**tab){
short nnr,i,k;
nnr=0;
//calcul nombre de pions noirs restants
for(i=0;i<10;i++){
for(k=0;k<10;k++){
if(tab[i][k]=='N')
nnr++;
}
}
return nnr;
}
////////////////////////////
short compteb(char**tab){
short nbr,i,k;
nbr=0;
//calcul nombre de pions blancs restants
for(i=0;i<10;i++){
for(k=0;k<10;k++){
if(tab[i][k]=='B')nbr++;
}
}
return nbr;
}
/**************************fin compte***********************/
/////////////////////demande deplacement////////////
//////////////choix pion///////////////
short demandeletr(){
char lettre;
short lettrif;
printf("Select the pion, lettre: " );
scanf("%c%*c",&lettre);
if(lettre=='A')lettrif=0;if(lettre=='B')lettrif=1;if(lettre=='C')lettrif=2;if(lettre=='D')lettrif=3;
if(lettre=='E')lettrif=4;if(lettre=='F')lettrif=5;if(lettre=='G')lettrif=6;if(lettre=='H')lettrif=7;
if(lettre=='I')lettrif=8;if(lettre=='J')lettrif=9;
return lettrif;
}
/////////////////////
short demandechi(){
short chiffre;
printf(" ,chiffre:" );
scanf("%hd%*c",&chiffre);
return (chiffre-1);
}
////choix destinée////
short demaceletr(){
char lettre;
short lettrif2;
printf("Where to go, lettre: " );
scanf("%c%*c",&lettre);
if (lettre=='A')lettif2=0;if(lettre=='B')lettrif2=1;if(lettre=='C')lettrif2=2;if(lettre=='D')lettrif2=3;
if(lettre=='E')lettrif2=4;if(lettre=='F')lettrif2=5;if(lettre=='G')lettrif2=6;if(lettre=='H')lettrif2=7;
if(lettre=='I')lettrif2=8;if(lettre=='J')lettrif2=9;
return lettrif2;
}