begin process at 2012 05 30 13:25:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

test morpion


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

test morpion

lundi 16 mai 2005 à 16:10:29 | test morpion

nadml

nous programmons un morpion et nous avons un problème avec notre test de case valide ou pas
est ceque  quelqu'un pourrez nous aidez à résoudre notre problème très très rapidement
merci d'avance
nadml


#include <curses.h>
#include <stdio.h>
#define COLOR1 1
#define COLOR2 2
#define COLOR3 3



/*initialiation*/
/*void  init(int grille[10][10],int *ligne,int *colonne)
{
for(*ligne=0; *ligne<=9; *ligne++)
    {for (*colonne=0;*colonne<=9;*colonne++)
    {grille[*ligne][*colonne]=0;}
}
}
*/

 /*effacer*/
 void effacer(void)
 {
 int i;
 
 for(i=25;i<=38;i++)
      {
       mvprintw(i,1,"                                                                      ");
       }
}
/*affichage*/
void afficher()
{
int c,l, joueur ;
int plateaujeu[10][10];
l=3;
c=4;
mvprintw(2,16,"*********************morpion*********************");
for(l=3;l<25;l=l+2)
   {for(c=4;c<24;c=c+2)   
      {
     
       mvprintw(c,20,"|  |   |   |   |   |  |   |   |   |   |");
      }
    
    mvprintw(l,20,"|---|---|---|---|---|---|---|---|---|---|"); 
    }
}


    
/*nom des joueurs*/
void nommer(char *J1, char *J2)
{
attron(COLOR_PAIR(COLOR1));
mvprintw(25,5,"nom du joueur 1:");
mvscanw(26,5,"%s",J1);
mvprintw(27,5,"bonjour %s .\n vous etes le joueur J1.",J1);
attron(COLOR_PAIR(COLOR2));
mvprintw(30,5,"nom du joueur 2:");
mvscanw(31,5,"%s", J2);
mvprintw(32,5,"bonjour %s.\n vous etes le joueur J2.",J2);
attron(COLOR_PAIR(COLOR3));
mvprintw(35,5,"Bienvenue a morpion programme par deux eleves de l IUP TMM."); 
mvprintw(36,5,"BONNE CHANCE!");
mvprintw(37,5,"pour commencer appuyer sur une touche");
getch();
effacer();
}



/*jouer*//*
void jouer(int *ligne,int *colonne)
{


}

*/

/*test*/
int testecase( int casepleine,int *ligne,int *colonne)
{int grille[10][10];
mvprintw(26,5,"entrer n°ligne :");
mvscanw(27,5,"%d", ligne);
mvprintw(28,5,"entrer n°colonne :");
mvscanw(29,5,"%d", colonne);
if(*ligne<0 || *ligne>9 || *colonne<0 || *colonne>9)   
     {mvprintw(30,5,"ligne et colonne eronees, veuillez recommencer");
      casepleine=0;
      }
      else
           if(grille[*ligne][*colonne]!=0)
         {
          mvprintw(31,5,"cette case a deja ete remplie, veuillez recommencer");
          casepleine=0;
         }
           else casepleine = 1;

return casepleine;
}





   
   
/*test avoir un gagant*/

int avoirungagnant(int gagne, int *ligne, int *colonne)
{
int i, j;
int grille[10][10];
int  vide;

grille[i][j]=grille[*ligne][*colonne];


       /*test ligne*/

gagne = 0;
if((grille[i][j]==grille[i-1][j]==grille[i-2][j]==grille[i-3][j])!=vide ||
(grille[i][j]==grille[i+1][j]==grille[i+2][j]==grille[i+3][j])!=vide)
{
    gagne = 1;
}
   
   
       /*test colonne*/

else
{
    if((grille[i][j]==grille[i][j-1]==grille[i][j-2]==grille[i][j-3])!=vide
    ||(grille[i][j]==grille[i][j+1]==grille[i][j+2]==grille[i][j+3])!=vide)
        {
        gagne = 1;
    }
    
       /*test diagonale*/
    
    else
    {
        if((grille[i][j]==grille[i-1][j-1]==grille[i-2][j-2]==grille[i-3][j-3])!=vide
        ||(grille[i][j]==grille[i+1][j+1]==grille[i+2][j+2]==grille[i+3][j+3])!=vide
        ||(grille[i][j]==grille[i-1][j+1]==grille[i-2][j+2]==grille[i-3][j+3])!=vide
        ||(grille[i][j]==grille[i+1][j-1]==grille[i+2][j-2]==grille[i+3][j-3])!=vide)
        {
            gagne = 1;
        }
    else return gagne;
    }
   
}
return gagne;  
     }




    
 /*afficher joueur gagnant*/
int joueurgagnant(char *J1, char *J2)
{
int grille[10][10];
int ligne, colonne;
int av, *joueurgagnant;int gagne;
av=avoirungagnant(gagne,&ligne,&colonne);
if (av==1)
     {*joueurgagnant = grille[ligne][colonne];
       if(*joueurgagnant==*J1)
       {mvprintw(5,5,"%c vous avez gagne", &J1);
       }
      else mvprintw(7,5,"%c vous avez gagne ", &J2);
      }
else  { if( av==0 && grille[ligne][colonne]== 1)
           { mvprintw(5,5,"match nul");
         mvprintw(6,5,"merci d avoir jouer");
         }
     else return 0;
       }   
 }
 
 
 
 
 /*rejouer*/
 int rejouer()
 {
 
 char rej;
 mvprintw(0,0,"voulez vous rejouer(o/n)?");
 mvscanw(1,0,"%c", &rej);
 if (rej=='o' || rej== 'O')
     {return OK;}
 else
      {return 0;}
      }
    


    
   
int main()
{
 
 char J1[10]; char J2[10];
 int  ligne, colonne,x, o,n,av, casepleine, joueur;
 int plateaujeu[10][10];
initscr();
/*init(grille,&ligne,&colonne);*/
start_color();
int grille[10][10]={0};
init_pair(COLOR1, COLOR_CYAN, COLOR_MAGENTA);
init_pair(COLOR2, COLOR_BLACK, COLOR_YELLOW);
init_pair(COLOR3, COLOR_BLACK, COLOR_GREEN);

afficher(plateaujeu);
nommer(J1,J2);
for(n=1;n<100;n++)
{/*mvprintw(25,5,"%s",J1);
jouer(&ligne,&colonne);
grille[ligne][colonne]=1;
mvprintw(ligne,colonne,"X");
effacer();*/

     for(n=1;n<7;n++)
        {     
               if(n%2==1)
                   {attron(COLOR_PAIR(COLOR1));
            mvprintw(25,5,"%s",J1);           
             do{
             /*jouer(&ligne,&colonne);*/
             testecase(casepleine,&ligne,&colonne);
            grille[ligne][colonne]=1;           
                 
               }
             while(casepleine==1);        
                 mvprintw(ligne,colonne,"X");
             effacer();
                }
                   else if(n%2==0)
                {attron(COLOR_PAIR(COLOR2));
            mvprintw(25,5,"%s",J2);              
            do{
                /*jouer(&ligne,&colonne);*/
            testecase(casepleine,&ligne,&colonne);
           grille[ligne][colonne]=2;            
           
                }
            while(casepleine==1);
                    mvprintw(ligne,colonne,"O");
            effacer();
                    }
     
         }
    for(n=7;n<100;n++)
        {   if(n%2==1)
                    {
             mvprintw(25,3,"%s",J1);
             do {
           /*  jouer(&ligne,&colonne);*/
             testecase(casepleine,&ligne,&colonne);
             joueurgagnant(J1,J2);
             rejouer(o,n);
                }
             while(casepleine==1);
            grille[ligne][colonne]=1;        
               mvprintw(ligne, colonne,"x");           
             effacer();
                }
                   else if(n%2==0)
                {
            mvprintw(25,3,"%s",J2);
            do {
                /*jouer(&ligne,&colonne);*/
            testecase(casepleine,&ligne,&colonne);
            joueurgagnant(J1,J2);
                rejouer(o,n);
                    }
                while(casepleine==1);
              grille[ligne][colonne]=2;          
                  mvprintw(ligne, colonne+20,"O");
            effacer();
                    }
     
     
     }     
}
refresh();
endwin();}



Cette discussion est classée dans : ligne, int, grille, colonne, mvprintw


Répondre à ce message

Sujets en rapport avec ce message

pb classe [ par JediMaster ] j'ai créé un tableau dynamique dans une classe comme ca:class MaClasse{public: int m_largeur; int m_hauteur; int** m_tableau; MaClasse(int lar,int hau tableau a 2 dimensions [ par minet03 ] Bonjour, ceux qui ont eu l'occasion de me parler sur #Programmation vont surement me détester à jamais, mais voilà j'ai encore un problème avec ce tab allocation dynamique [ par ralou ] salut tlm mon prob c est que je veux utiliser une fonction pour creer des tableaus dynamiques (langage C), mais j'arrive pas a comprendre ou a vrai d Recuperer un parametre de la ligne de commande [ par Loonis ] Bonjour à tous,Supposons une application a.out avec 2 parametres, le 1er étant une chaine de caractère le 2eme un entier.int main(int argc, char* argv Problème de transmission d'entier d'un client à un serveur [ par lillie69 ] Bonjour, nous devons faire une bataille navale en réseau et nous avons un problème de transmission d'entiers. En fait on envoit des valeurs correctes Aide partie résolution de mon sudoku... [ par Francks11 ] Bonsoir, enfaite il me faudrait de l'aide pour ma partie sol du sudoko qui recherche les solutions du jeu. A savoir, que pour chaque essai, on conser Conversion int en string [ par EagleEye ] Bonsoir ! J'ai un pti soucis en fait il m'est impossible d'effectuer cette instruction car nbLigne est un int. itoa existe mais il ya plus simple nan URGENT :voila la sulution du SUDOKU avec recursivité,mais y a qq chose qui manque [ par imad_lol ] merci de lire ma fonction de parcour (recursive).jai donné que des "0" a ma grille.donc y a au moin une solution.mon prg affiche les chiffe de "1" a " lecture ordonnée dans fichier [ par UnderFlow ] Bonjour à tous,(encore une question dsl),j'aimerais savoir s'il existe en C ou C++ (pas de C#), une fonction qui permette de :lire dans le fichier "mo récupérer le nombre de valeurs identiques adjacentes dans un tableau [ par Pekele ] j'ai donc un tableau mur de 15*15 remplit de valeur. lorsque je choisis une valeur de ce tableau j'aimerais qu'il me comptabilise le nombre de valeur


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales