Пример #1
0
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;
}
Пример #2
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);
}
Пример #3
0
/* 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);
            */
        }
    }
}
Пример #4
0
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;
}
Пример #5
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);
}