jeu de dames prob avec les fonctions - C++ - Programmation
Marsh Posté le 23-05-2005 à 17:17:23
Plusieurs points si tu veux profiter de l'aide du forum :
- Poste dans la bonne catégorie. Là en l'occurrence tu fais du C. La question n'étant pas de savoir si ton programme est correct en C++, mais de savoir quel genre de conseils tu attends. Si c'est des conseils concernant le C++, tu risques de devoir tout recoder.
- Utilise les balises [ cpp ] [ /cpp ] pour encadrer ton code et qu'il soit un peu plus lisible.
- Donne le message d'erreur complet qui doit contenir : le message en lui même mais aussi la ligne correspondante.
- Et enfin un conseil de bon sens : lis les messages d'erreur.
Ah et aussi évite d'utiliser un logiciel piraté (si ce n'est pas le cas tant mieux) alors qu'il existe des alternatives gratuites qui te suffiront amplement.
Voilà.
Marsh Posté le 23-05-2005 à 17:24:51
merci bien, bon beh je vais aller voir du coté du C, desolé!
lol
Marsh Posté le 23-05-2005 à 17:05:45
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;
}
//////////////////////
short demacechi(){
short chiffre2;
printf(" ,chiffre: " );
scanf("%hd%*c",&chiffre2);
return(chiffre2-1);
}
/**************************fin demande*****************************************/
///////////////////////deplacement///////////////
//////////supprimé pion//////////
char**Deplace(char**tab,short lettrif, short chiffre){
tab[lettrif][chiffre]=' ';
return tab;
}
///APPARITION PION///////////
char**Deplace2(char**tab, short littrif2, short chiffre2){
tab[lettrif2][chifffre2]='X';
return tab;
}
/*******************************************FIN
DEPLACE********************************************************************************/
////////////////////A QUI LE TOUR ?////////////////////////////
short tour0(){
short turn;
turn=0;
return turn;
}
///////////////////
short tour(short turn){
turn++;
return (turn%2);
}
/*****************************************************************************************
***************************/
///////////////////ERREUR PION//////////////////////////////////////////////
short erreurpion(char**tab,short lettrif,short chiffre,short turn){
if(turn2==0&&tab[lettrif][chifre]!='B'){
printf("\nERREUR DE PION !Vous devez choisir un pion blanc.\n" );
return 1;
}
else if(turn%2!=0&&tab[lettrif]!='N'){
printf("\nERREUE DE PION ! Vous devez choisir un pion noir.\n" );
return1;
}
else return 0;
}
/**********************************************************************************/
////////////////////////////ERREUR DE DEPLACEMENT//////////////////////////////
short erreurdeplac(char**tab,short lettrif2,short chiffre2){
if(tab[lettrif2][chiffre2]!=' '){
printf("ERREUR DESTINATION !Vous devez choisir une case vide.\n" );
return 1;
}
else return 0;
}
/*****************************************************************************************/
///////////////////////////INITIALISATION TABLEAU/////////////////////////////////
char**initTab(){
char**tab;
short i,j,m;
tab=(char**)malloc(sizeof(char*)*TAY);
for(i=0;i<TAY;i++){
tab[i]=(char*)malloc(sizeof(char)*TAY);
}
//case pions blancs
m=0;
for(i=0;i<4;i++){
for(j=0;j<10;j++){
if(j%2!=1-(m%2)){
tab[i][j]='B';
}
else{
tab[i][j]='#';
}
}
m++;
}
//case vierges
for(i=4;i<6;i++){
for(j=0;j<10;j++){
if(j%2!=1-(m%2)){
tab[i][j]=' ';
}
else{
tab[i][j]='#';
}
}
m++;
}
//case pions noirs
m=0;
for(i=6;i<10;i++){
for(j=0;j<10;j++){
if(j%2!=1-(m%2)){
tab[i][j]='N';
}
else{
tab[i][j]='#';
}
}
m++;
}
return tab;
}
/***************************************************FIN
INIT***************************************************************************/
void main(){
char**jeu;
short jeu1,jeu2,jeu3,jeu4,jeu5,jeu6,jeu7,jeu8;
jeu1=tour0();
jeu=initTAB();
jeu2=compten(jeu);
jeu3=compteb(jeu);
affichage(jeu,jeu2,jeu3);
while(jeu2!=0&&jeu3!=0){
if(jeu1%2==0)printf("Joueur Blanc\n" );
else printf("Joueur Noir\n" );
jeu4=demandeletr();
jeu5=demandechi();
jeu6=erreurpion(jeu,jeu4,jeu5,jeu1);
while(jeu6!=0){
jeu4=demandeletr();
jeu5=demandechi();
jeu6=erreurpion(jeu,jeu4,jeu5,jeu1);}
jeu=deplace(jeu,jeu4,jeu5);
jeu7=demaceletr();
jeu8=demacechi();
jeu6=erreurdeplac(jeu,jeu7,jeu8);
while(jeu6!=0){
jeu4=demaceletr();
jeu5=demacechi();
jeu6=erreurdeplc(jeu,jeu7,jeu8);}
jeu1=tour(jeu1);
jeu=Deplace2(jeu,jeu7,jeu8);
jeu2=compten(jeu);jeu3=compteb(jeu);
affichage(jeu,jeu2,jeu3);
}
}
}