diff options
| author | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-02-21 17:50:16 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-02-21 17:50:25 +0100 |
| commit | 77bfb2ccd3152c1f41d43dc192ba86ca8fd0f72f (patch) | |
| tree | 798ab77b1c1608ef8cc6e56f3d12778c0844b03b /semestre 2/informatique/tme/semaine3 | |
| parent | a1a5447b8b040b100bad89766066ae4ba8d6d920 (diff) | |
Ajout de la semaine des cours du 14 au 21 février
Diffstat (limited to 'semestre 2/informatique/tme/semaine3')
| -rwxr-xr-x | semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux | bin | 0 -> 15840 bytes | |||
| -rw-r--r-- | semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux.c | 73 |
2 files changed, 73 insertions, 0 deletions
diff --git a/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux b/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux Binary files differnew file mode 100755 index 0000000..56adb13 --- /dev/null +++ b/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux diff --git a/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux.c b/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux.c new file mode 100644 index 0000000..7aed5e2 --- /dev/null +++ b/semestre 2/informatique/tme/semaine3/21_pierre_feuille_ciseaux.c @@ -0,0 +1,73 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> + +#define PIERRE 0 +#define FEUILLE PIERRE+1 +#define CISEAUX FEUILLE+1 + +#define MAX_TRY 3 + +int choix_ordinateur(){ + return rand()%3; +} + +int choix_joueur(){ + int i = 0; + scanf("%d", &i); + for (int j = 0; j < MAX_TRY-1 && i < 1 && i > 3; j++) { + printf("\nCe n'est pas une bonne valeur !\n"); + } + if (i < 1 && i > 3) return choix_ordinateur(); + return i-1; +} + +char* get_name(int coup) { + char *s; + if (coup == FEUILLE) s = "feuille"; + else if (coup == PIERRE) s = "pierre"; + else s = "ciseaux"; + char* v = malloc(25 * sizeof(char)); + strcpy(v, s); + return v; +} + +void score(int joueur, int ordinateur, int * score_joueur, int * score_ordinateur){ + printf("\nLe joueur gagnant est..."); + if (joueur > ordinateur || (joueur == PIERRE && ordinateur == CISEAUX)) { + printf(" vous !\n"); + char* cj = get_name(joueur); + char* co = get_name(ordinateur); + printf("Vous avez joué %s ce qui bat son %s", cj, co); + free(cj); + free(co); + (*score_joueur)++; + } else if (joueur < ordinateur || (ordinateur == PIERRE && joueur == CISEAUX)) { + printf(" l'ordinateur !\n"); + char* cj = get_name(joueur); + char* co = get_name(ordinateur); + printf("Il a joué %s ce qui bat votre %s\n", co, cj); + free(cj); + free(co); + (*score_ordinateur)++; + } else { + printf(" oh non, la partie est nulle !"); + } + printf("\n"); +} + +void jeu(){ + int score_ordinateur = 0, score_joueur = 0; + while (score_ordinateur < 3 && score_joueur < 3) { + printf("Choissez votre coup :\n- 1 pour pierre\n- 2 pour feuille\n- 3 pour ciseaux\n"); + score(choix_joueur(), choix_ordinateur(), &score_joueur, &score_ordinateur); + } + printf("Scores finaux:\n- Joueur : %d\n- Ordinateur : %d\n\n", score_joueur, score_ordinateur); +} + +int main(){ + srand(time(NULL)); + jeu(); + return 0; +} |
