示例#1
0
matrice partie(matrice M, char *nom, int joueur)
{
	char coup[2];
	char *ordi="l\'ordinateur";
	int i, j;

	while ( peut_jouer(M, 1) || peut_jouer(M, 2))
	{
		if (!peut_jouer(M, joueur))
		{
			printf("%s ne peut pas jouer", (joueur==1)?nom:ordi);
			joueur=changer_joueur(joueur);
		}
		else
		{
			printf("Au tour de %s : \n", (joueur==1)?nom:ordi);
			do
			{	
				affiche_matrice(M);
				printf("Rentrez un coup :\n");
				fscanf(stdin, "%s", coup);
				if (verif_coup(coup))
				{
					if (verif_coup(coup) == 1)
					{
						i=convertir(coup[0]);
						j=convertir(coup[1]);
					}
					else
					{
						j=convertir(coup[0]);
						i=convertir(coup[1]);
					}
				}
				
			} while (!coup_valide(M, i, j, joueur));
			M=changer(M, i, j, joueur);
			joueur=changer_joueur(joueur);
			purger();
			clear();
		}

	}
	return M;
}
示例#2
0
/* Fonction permettant de faire jouer un joueur humain
    - saisie des coordonnées tant qu'elles sont invalides
    - jouer le coup
 */
int humain_joue_un_coup(othello* jeu, char joueur){
    int i, j, ok=0;
    
    if(!peut_jouer(jeu, joueur)){
        return 0;
    }
    
    do{
        printf("Joueur J%d [%c]:\n", joueur==J1?1:2, joueur);
        printf("ligne: ");
        scanf("%d", &i);
        printf("colonne: ");
        scanf("%d", &j);
        if(!case_libre(jeu, i, j))
            printf("La case est occupée, recommencez ...\n");
        else if(!(ok=coup_possible(jeu, joueur, i, j)))
            printf("Vous ne pouvez pas jouer ici, recommencez ...\n");
        
    } while(!ok);
    jouer_un_coup(jeu, joueur, i, j);
    return 1;
}