alix5 Profil : Jeune recrue |
Bonjour,
je n'arrive pas à trouver mes erreurs dans mon code! pouvez -vous m'aider??
[ en c jeu puissance 4]
merci
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- char *creer_grille(int,int);
- void afficher_grille(char *,int,int);
- int verifgrille(char *p4,int colonnes,int lignes,char *joueuractuel);
- int main (void) {
-
- char joueur,joueur2;
- char *joueuractuel=NULL; /* Pointeur joueuractuel vers joueur */
- int choix,nmbrerandom,JEU=1,CHOIXVALIDE=1; /* nmbrerandom pour la fonction random */
- int colonnes,lignes=6;
- char *p4=NULL;
- /* Menu du jeu */
- while(CHOIXVALIDE) { /* Operateur logique boolen, tant que choixvalide != 0, on relance le menu */
- printf("\nSelectionnez le type de partie souhait\n\n" );
- printf("-> Humain vs Humain : 1\n" );
- printf("-> Humain vs CPU : 2\n" );
- printf("-> CPU vs CPU : 3\n\n" );
-
- printf("Votre choix : " );
- scanf("%d",&choix);
-
-
- switch(choix) {
- case 1:
- joueur='O',joueur2='X',CHOIXVALIDE=0;
- break;
- case 2:
- joueur='O',joueur2='S',CHOIXVALIDE=0;
- break;
- case 3:
- joueur='S',joueur2='T',CHOIXVALIDE=0;
- break;
- default:
- break; } }
-
- /* Fin Menu du jeu */
- /* Creer la grille */
-
- printf("\nNombre de colonnes : " );
- scanf("%d",&colonnes);
-
- p4=creer_grille(colonnes,lignes);
- /* fin de creer la grille */
- /* random qui renvoie 0 ou 1 et determine le joueur qui commence */
- srand(time(NULL)); /* On initialise le gnrateur de nombre alatoires */
- nmbrerandom=(rand() % 2);
- if(nmbrerandom==0)
- joueuractuel=&joueur;
- joueuractuel=&joueur2;
-
-
- /* fin random */
- /* Debut de la boucle */
- while(JEU) { /* Operateur logique JEU , tant que JEU != 0 (que personne n'a gagn) on continue le jeu */
-
-
- afficher_grille(p4,colonnes,lignes); /* Affichage de la grille */
-
- int i,j;
-
- /* test */
- *p4='O';
- afficher_grille(p4,colonnes,lignes);
-
- /*fin test */
-
- int condition= verifgrille(p4,colonnes,lignes,joueuractuel); /* test si qqn a gagn */
-
- if(condition == 1)
- {
- printf("gagne" );
- }
- else
- {
- printf("perdu\n" );
- }
- return 0; } }
- /* Debut des fonctions */
- /* Fonction crer grille */
- char *creer_grille(int col,int lignes) {
-
- int i,j;
-
- char *p4=malloc(lignes*sizeof(*p4));
- if(p4==NULL) exit(0);
-
- for(i=0;i<lignes;i++)
- p4=malloc(col*sizeof(*p4));
-
- for(i=0;i<lignes;i++)
- for(j=0;j<col;j++)
- *p4=' ';
- return p4; }
- /* Fonction Afficher grille */
- void afficher_grille(char *p4,int colonnes,int lignes) {
-
- int i,j;
-
- for(i=0;i<lignes;i++) {
- printf("\n" );
- for(j=0;j<colonnes;j++)
- printf("| %c ",*p4); }
- printf("\n" );
- for(i=0;i<colonnes;i++)
- printf("%d ",i);
- printf("\n\n" ); }
- /* Fonction Verifier Grille */
- int verifgrille(char *p4,int colonnes,int lignes,char *joueuractuel) {
- /* verif horizontale */
- int compteur=0;
- int i,j,condition;
- for(i=(lignes-1);i>=0;i--) {
- if(compteur==4) {
- printf("Celui qui a les pions %c a gagn\n",*joueuractuel);
- return 1; }
- else compteur=0;
- for(j=0;j<colonnes;j++) {
- if(compteur==4) {
- printf("Celui qui a les pions %c a gagn\n",*joueuractuel);
- return 1; }
- if(*p4 != *joueuractuel) compteur=0;
- else compteur++; } }
- /* verif verticale */
- compteur=0;
- for(j=0;j<colonnes;j++) {
- if(compteur==4) {
- return 1; }
- else compteur=0;
- for(i=(lignes-1);i>=0;i--) {
- if(compteur==4) {
- printf("Vous avez gagn\n" );
- return 1; }
- if(*p4 != *joueuractuel) compteur=0;
- else compteur++; } }
- return 0;
- }
- /* Fin des fonctions */
|
|