/* jeu des cailloux */ #include /* initialisation de la partie, avec la saisie du nombre total de cailloux et * du joueur qui demarre la partie */ void initialiser(int *nbCa, int *jo); /* le jeu proprement dit pour un des deux joueurs : choix du nombre de * cailloux */ void jeu(int jo, int *nbCa); /* la machine joue */ void machine_joue(int *nbCa); /* l'utilisateur joue, et saisit le nombre de cailloux */ void utilisateur_joue(int *nbCa); /* changement de joueur dans *jo */ void changer_joueur (int *jo); int main() { int finJeu = 0; int nbCailloux , joueur, perdant; initialiser(&nbCailloux, &joueur); while ( !finJeu ) { printf("\nil reste %d cailloux\n", nbCailloux); jeu (joueur, &nbCailloux); if (nbCailloux == 0) { perdant = joueur; finJeu = 1; } else { changer_joueur (&joueur); } } if (perdant == 1) { printf("dommage: tu as perdu\n"); } else { printf("bravo: tu as gagne\n"); } return 0; } void initialiser(int *nbCa, int *jo) { int rep; printf("donnez le nombre de cailloux : "); scanf("%d", nbCa); printf("\nchoix du premier joueur :\n"); printf("\tutilisateur.: 1\n"); printf("\tmachine.....: 2\n"); printf("qui ? "); scanf("%d", &rep); switch (rep) { case 1: *jo = 1; break; case 2: *jo = 2; break; } } void jeu(int jo, int *nbCa) { if (jo == 2) { machine_joue(nbCa); } else { utilisateur_joue(nbCa); } } void machine_joue(int *nbCa) { int cailloux_pris, modu; modu = *nbCa % 4; switch (modu) { case 0: cailloux_pris = 3; break; case 1: cailloux_pris = 1; break; case 2: cailloux_pris = 1; break; case 3: cailloux_pris = 2; break; } printf("j\'ai pris %d cailloux \n",cailloux_pris); *nbCa = *nbCa - cailloux_pris; } void utilisateur_joue(int *nbCa) { int cailloux_pris; do { printf("combien de cailloux: "); scanf("%d", &cailloux_pris); } while ((cailloux_pris <= 0) || (cailloux_pris >= 4) || (cailloux_pris > *nbCa)); *nbCa = *nbCa - cailloux_pris; } void changer_joueur (int *jo) { if (*jo == 2) { *jo = 1; } else { *jo = 2; } }
Pages: 1 2