Accueil > Forum > > > > test morpion
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
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|