Problème de déplacement jeu de dame
math9
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
faseldi Messages postés 279 Date d'inscription Statut Membre Dernière intervention -
faseldi Messages postés 279 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
svp je rencontre un problème sur le déplacement de de mon jeu de dame en langage C(à chaque fois que j'essai de compilé le programme, il plante donc n'arrive pas à le lire. es ce que quelqu'un pourrait m'aider à le corriger svp; c'est assez urgent Merci à tous
svp je rencontre un problème sur le déplacement de de mon jeu de dame en langage C(à chaque fois que j'essai de compilé le programme, il plante donc n'arrive pas à le lire. es ce que quelqu'un pourrait m'aider à le corriger svp; c'est assez urgent Merci à tous
#include <stdio.h> #include <stdlib.h> #include <windows.h> #define PION_Noir -1 #define DAME_NOIR -2 #define PION_Blanc 1 #define DAME_BLANC 2 # define CASE_VIDE_NOIR 3 #define case_vide 0 # define CASE_VIDE_BLANC 4 typedef struct damier { int nb_noir ; // Représente le nombre de pion noir int nb_blanc ; // Représente le nombre de pion blanc } tdamier ; typedef struct { char nom[50]; int type; int couleur; } player; void init_damier(tdamier damier, int plateau[10][10]) { int i,j,k ; damier.nb_blanc = 20 ; damier.nb_noir = 20 ; //On initialise le tableau for(i=0 ;i<10 ;i++) { for(j=0 ;j<10 ;j++) { plateau[i][j]=0 ; } } //On remplie la partie haute du damier par des pions noirs for(i=0 ;i<4 ;i++) { //Si i est pair, la première case doit être noir (active) if(i%2 == 0) { k=1 ; } else { k=0 ; } for(j=k;j<10 ;j+=2) { plateau[i][j] = PION_Noir ; } } //On remplie la partie basse du damier par des pions blancs for(i=6 ;i<10 ;i++) { //Si i est pair, la premier case doit être noir (active) if(i%2 == 0) { k=1 ; } else { k=0 ; } for(j=k;j<10 ;j+=2) { plateau[i][j] = PION_Blanc; } } for(i=4;i<5;i++) { if(i%2 == 0) { k=3 ; } for(j=k-2;j<10 ;j+=2) { plateau[i][j] = CASE_VIDE_NOIR; } //} //for(i=4;i<5;i++) //{ if(i%2 == 0) { k=4 ; } for(j=k-3;j<10 ;j+=2) { plateau[i][j] = CASE_VIDE_BLANC; } } for(i=5;i<6;i++) { if(i%2 != 0) { k=3 ; } for(j=k-2;j<10 ;j+=2) { plateau[i][j] = CASE_VIDE_NOIR; } //for(i=5;i<6;i++) //{ if(i%2 == 0) { k=4 ; } for(j=k-3;j<10 ;j+=2) { plateau[i][j] = CASE_VIDE_BLANC; } } plateau[1][1]= 'P'; plateau[1][1]= 'N'; plateau[3][3]= 'P'; plateau[3][3]= 'N'; plateau[5][5] ='P'; plateau[5][5]= 'N'; plateau[7][7]= 'P'; plateau[7][7]= 'N'; plateau[5][7]= 'P'; plateau[5][7]= 'N'; plateau[3][7]= 'P'; plateau[3][7]= 'N'; plateau[4][4]= 'P'; plateau[4][4]= 'B'; plateau[2][3]= 'D'; plateau[4][3]= 'D'; } void affiche_ligne(tdamier damier, int i,int plateau[10][10]) { int j ; printf("| ") ; printf("%2d ",i+1) ; for(j=0 ;j<10 ;j++) { switch(plateau[i][j]) { case PION_Blanc : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0xF2); printf(" O ") ; break ; case PION_Noir : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0xF2); printf(" X ") ; break ; case DAME_NOIR : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0xF2); printf(" N ") ; break ; case DAME_BLANC : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0xF2); printf(" B ") ; break ; case CASE_VIDE_NOIR : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0x02); printf(" ") ; break ; case CASE_VIDE_BLANC : SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0xF2); printf(" ") ; break ; default: SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0x02); printf(" ") ; break ; } } SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),0x21); printf(" %2d\n",i+1) ; printf("\n") ; } void affiche_damier(tdamier damier,int plateau[10][10] ) { int i; for(i=0;i<10;i++) affiche_ligne(damier,i,plateau); } typedef struct { int ligne,col; } Case; typedef struct { Case case_i,case_f; } deplacement; ////déplacement des pions // ///*void deplace_pion(tdamier damier,int prise,int couleur,deplacement d,int plateau[10][10]) //{ // plateau[d.case_i.ligne][d.case_i.col] = case_vide; // // plateau[d.case_f.ligne][d.case_f.col] = couleur; // //if(prise == 1) // { // if(couleur == PION_Blanc) // { // damier.nb_noir--; // } // else{ // damier.nb_blanc--; // } //plateau[(d.case_f.ligne + d.case_i.ligne)/2] [(d.case_f.col + d.case_i.col)/2]=case_vide; // } // } // // int test_deplacement(tdamier damier,int prise,int couleur,deplacement d,int plateau[10][10]) // { // //Le pion sélectionné n’est pas un pion du joueur // // if(plateau[d.case_i.ligne][d.case_i.col]!= couleur) // return -1; // //Case occupé // if(plateau[d.case_f.ligne][d.case_f.col]!= case_vide) // return -1; // //Mauvaise Ligne // if(d.case_f.ligne!= d.case_i.ligne - couleur) // return -1; // //Mauvaise colonne // // if(d.case_f.col!= (d.case_i.col+1) && d.case_f.col!= (d.case_i.col-1) ) // { // return -1; // } // else // return 0; // // }*/ /* Déplacement des pions en avant gauche * Entrée: Le damier et la coordonné de la pièce * Sortie: 1 si déplacement possible et 0 si pas de déplacement possible */ int pdavg(tdamier damier,deplacement d,int plateau[10][10]) { /* Les blancs vont en AVANT*/ if (plateau[d.case_i.ligne][d.case_i.col]=='B') { if (d.case_i.ligne-1>=0 && d.case_i.col+1<10 && plateau[d.case_f.ligne][d.case_f.col]!=case_vide && plateau[d.case_f.ligne-1][d.case_f.col+1]==case_vide) return 1; else return 0; } else return 0; } /* Déplacement des pions en avant droit * Entrée: Le damier et la coordonné de la pièce * Sortie: 1 si déplacement possible et 0 si pas de déplacement possible */ int pdavd(tdamier damier,deplacement d,int plateau[10][10]) { /* Les blancs vont en AVANT*/ if (plateau[d.case_i.ligne][d.case_i.col]=='B') { if (d.case_i.ligne+1<10 && d.case_i.col+1<10 && plateau[d.case_f.ligne][d.case_f.col]!=case_vide && plateau[d.case_f.ligne+1][d.case_f.col+1]==case_vide) return 1; else return 0; } else return 0; } /* Déplacement des pions en arrière gauche * Entrée: Le damier et la coordonné de la pièce * Sortie: 1 si déplacement possible et 0 si pas de déplacement possible */ int pdarg(tdamier damier,deplacement d,int plateau[10][10]) { /* Les noirs vont en ARRIERE */ if (plateau[d.case_i.ligne][d.case_i.col]=='N') { if (d.case_i.ligne-1>=0 && d.case_i.col-1>=0 && plateau[d.case_f.ligne][d.case_f.col]!=case_vide && plateau[d.case_f.ligne-1][d.case_f.col-1]==case_vide) return 1; else return 0; } else return 0; } /* Déplacement des pions en arrière droit * Entrée: Le damier et la coordonné de la pièce * Sortie: 1 si déplacement possible et 0 si pas de déplacement possible */ int pdard(tdamier damier,deplacement d,int plateau[10][10]) { /* Les noirs vont en ARRIERE */ if (plateau[d.case_i.ligne][d.case_i.col]=='N') { if (d.case_i.ligne+1<10 && d.case_i.col-1>=0 && plateau[d.case_f.ligne][d.case_f.col]!=case_vide && plateau[d.case_f.ligne+1][d.case_f.col-1]==case_vide) return 1; else return 0; } else return 0; } int main() { deplacement d; //int prise; //int couleur; int plateau[10][10]; tdamier damier; init_damier(damier,plateau); affiche_damier(damier,plateau); //deplace_pion(damier,prise,couleur,d,plateau); //test_deplacement(damier,prise,couleur,d,plateau); pdavg(damier,d,plateau); pdavd(damier,d,plateau); pdarg(damier,d,plateau); pdard(damier,d,plateau); return 0; }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Problème de déplacement jeu de dame
- 94 jeu - Télécharger - Puzzle & Réflexion
- Historique déplacement google - Guide
- Jeux de moto: jeu de course 3d - Télécharger - Course
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo