int main(int argc, const char * argv[]) { Plateau plateau = {'O', 'X'}; creation_grille(12, plateau); afficher_grille(); Square square = {0}; rechercher_carre(0, 0); return 0; }
int main(void) { joueur_t *j1, *j2, *courant; char vainqueur; unsigned int col = 0, ligne = 0; /* Initialisation */ j1 = (joueur_t *) malloc(sizeof(joueur_t *)); j2 = (joueur_t *) malloc(sizeof(joueur_t *)); init_joueur("Joueur 1", 'X', j1); init_joueur("Joueur 2", 'O', j2); courant = j1; srand(time(NULL)); init_grille(); /* Jeu */ printf("Début de la partie\n"); do{ printf("============= Début du tour ==============\n"); debut: saisir_coord(&col, &ligne); col --; ligne --; if(!placer_symbole(col, ligne,courant->symbole)) { printf("Cette case est occupée.\n"); goto debut; } else courant = courant == j1 ? j2 : j1; afficher_grille(); printf("============== Fin du tour ===============\n"); } while(!est_nulle() && !est_gagnee(&vainqueur)); if(est_nulle()) printf("La partie se termine par un match nul.\n"); else printf("La partie a été remportée par %s.\n", vainqueur == j1->symbole ? j1->nom : j2->nom); printf("Partie Terminée\n"); /* Libération mémoire */ free_grille(); free(j1); free(j2); exit(EXIT_SUCCESS); }
/* Vérifie fin de partie */ void verifierFinPartie(void) { int score; if(g.nb_vide == 0) { /* Calcule le temps en seconde de la partie */ time(&fin); duree = difftime(fin, debut); printf("duree = %d\n", duree); /* Vérifie s'il y a un gagnant */ if (game->scoreJoueur1 == game->scoreJoueur2) { g.statut = MATCH_NUL; printf("Match nul !\n Le match a duré %d", duree); } else { g.statut = MATCH_END; if(tour == 0) score = game->scoreJoueur1; else score = game->scoreJoueur2; printf("Le joueur %s gagne avec %d points!\n, %c \n Le match a duré %d", joueur, score, g.statut, duree); } } else { afficher_grille(g.tab, game); /* printf("game->scoreJoueur1 %d\n", game->scoreJoueur1); printf("game->scoreJoueur2 %d\n", game->scoreJoueur2); */ if(tour == 0) { tour = 1; strncpy(joueur, game->nomJoueur2, PLAYER_NAME_SIZE); /* printf("game->nomJoueur2 %s\n", game->nomJoueur2); printf("joueur %s\n\n", joueur); */ } else { tour = 0; strncpy(joueur, game->nomJoueur1, PLAYER_NAME_SIZE); /* printf("game->nomJoueur1 %s\n", game->nomJoueur1); printf("joueur %s\n\n", joueur); */ } } }
int main () { menuJeu(); g = generer_grille(g.tab); if(isGameReloaded == NO) { menuJoueur(); } time(&debut); afficher_grille(g.tab, game); strncpy(joueur, game->nomJoueur1, PLAYER_NAME_SIZE); liste = initialisation(); while (g.statut == VIDE) { printf("Joueur %s, a vous de jouer !\n", joueur); if(game->mode == MULTI) { jouer(tour); } else { if(tour == 0) { jouer(tour); } else { struct Coup coup = ordijouer(g.tab); g.tab[coup.ligne][coup.colonne] = 'X'; /* TEST WRITE DATA writeData(liste, game);*/ } } g.nb_vide--; /* Test si 3 pions sont allignés */ char signe = (tour == 0) ? 'O' : 'X'; int result = verifier_grille(g.tab, signe); printf("\n----- result: %d\n ", result); misAJourScore(result); /* Vérifie si la partie est finie */ verifierFinPartie(); } return 0; }
/** * \fn void Lancer_Jeu() * \brief fonction qui permet de lancer et enregistrer la partie dans un fichier . */ void Lancer_Jeu() { Pion grille[N][M]; FILE * fichier; /*fichier de sauvegarde nom des joueurs et resultats partie !*/ fichier=fopen("resultats.txt","a+"); int joueur,j=0, colonne, compteur=0,rep=0,score, total,choix; char pion; printf("\n"); initialiser_grille(grille); afficher_grille(grille); printf(" \n Bienvenue dans le mode jeu puissance 4++ \n "); do { printf("\n Combien de joueurs vont jouer ? (maximum 4) : "); scanf("%i",&joueur); }while(joueur<2 || joueur>MAX_JOUEUR); printf(" \33[31m /! Pour rappel, un systeme d'aide a était mit en place, si vous demandez de l'aide \n"); printf(" alors que tous vos pions sont encerclés, ou aucun de vos pion n'est placé, \n"); printf(" vous serez alors pénalisé, votre tour sautera ! Bonne Partie ! / \33[30m \n"); while (compteur !=42) //tant que la grille n est pas remplie { j=joueursuivant(j,joueur); printf("\n\n\t\t==============## Joueur \33[31m %i\33[30m ##================\n\n",j); do{ printf("Tapez 1 si vous avez besoin d'aide sinon Tapez 2 : "); scanf("%i",&choix); }while(choix!=1 && choix!=2); switch(choix){ case 1: Help_Me(j,grille); afficher_grille(grille); rep=victoire(j,grille); if (rep==1) { printf("\n Le joueur %i a gagné ! \n", j); fprintf(fichier,"%i %i %i \n",j,1,1); }; break; case 2: printf("Dans quelle colonne voulez-vous jouez et quel type de pièce? \n Pleine (p), Creuse (c), Bloquante (b) "); scanf("%i%c",&colonne,&pion); while (colonne>M || colonne<1 ||( pion !='b' && pion !='c'&& pion!='p')) /*cas erreur*/ { printf("veuillez ressaisir le numero de la colonne (entre 1 et 7) et le type de la pièce "); scanf("%i%c",&colonne,&pion); } if (colonne_pleine(pion,colonne,grille))//on regarde si la colonne est pleine { printf("La colonne est pleine, ressaisissez la colonne et le type de piece "); scanf("%i%c",&colonne,&pion); } jouer(grille,colonne,pion,j) ; rep=victoire(j,grille); afficher_grille(grille); compteur++; if (rep==1){ printf("\n Le joueur %i a gagné ! \n", j); fprintf(fichier,"%i %i %i \n",j,1,1); }; break; } } if (compteur ==42){ // si la grille est remplie printf(" Match nul, la grille est remplie sans detection de victoire \n "); for(j=1;j<5;j++){ fprintf(fichier,"%i %i %i \n",j,0,0); } }else{ switch(j){ case 1:fprintf(fichier,"%i %i %i \n",2,0,0);fprintf(fichier,"%i %i %i \n",3,0,0);fprintf(fichier,"%i %i %i \n",4,0,0);break; case 2:fprintf(fichier,"%i %i %i \n",1,0,0);fprintf(fichier,"%i %i %i \n",3,0,0);fprintf(fichier,"%i %i %i \n",4,0,0);break; case 3:fprintf(fichier,"%i %i %i \n",1,0,0);fprintf(fichier,"%i %i %i \n",2,0,0);fprintf(fichier,"%i %i %i \n",4,0,0);break; case 4:fprintf(fichier,"%i %i %i \n",1,0,0);fprintf(fichier,"%i %i %i \n",2,0,0);fprintf(fichier,"%i %i %i \n",2,0,0);break; } } rewind(fichier);/*met le pointeur du fichier au debut*/ while(!feof(fichier)) { fscanf(fichier,"%i",&j);// afficher les joueurs et leur score mis a jour a voir fscanf(fichier,"%i",&score); fscanf(fichier,"%i",&total); printf ("joueur %i : score %i total %i \n",j,score,total); break; } fclose(fichier); }