METOUALE SOMDA GCL2 S3 2024-2025
Pour rendre ces jeux plus difficiles, vous pouvez ajouter des fonctionnalités avancées,
augmenter la complexité des défis, et introduire des niveaux de difficulté. Voici comment
modifier chaque jeu pour le rendre plus stimulant :
1. Jeu de Devinez le Nombre (Version Difficile)
Améliorations :
- Limite d’essais : Limiter le nombre d’essais disponibles, par exemple à 5 tentatives.
- Niveaux de difficulté : Ajouter des niveaux qui augmentent la plage du nombre à deviner :
- Facile : Nombre entre 1 et 50
- Moyen : Nombre entre 1 et 100
- Difficile : Nombre entre 1 et 500
- Temps limité : Ajouter un compte à rebours pour répondre.
Code Exemple :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void jouer(int maxNombre, int maxEssais) {
int nombreMystere = rand() % maxNombre + 1;
int nombreUtilisateur, essais = 0;
printf("Devinez le nombre entre 1 et %d !\n", maxNombre);
while (essais < maxEssais) {
printf("Essai %d/%d : ", essais + 1, maxEssais);
scanf("%d", &nombreUtilisateur);
essais++;
if (nombreUtilisateur == nombreMystere) {
printf("Bravo ! Vous avez trouvé en %d essais.\n", essais);
return;
} else if (nombreUtilisateur < nombreMystere) {
printf("C'est plus !\n");
} else {
printf("C'est moins !\n");
}
}
printf("Dommage ! Vous avez épuisé vos essais. Le nombre était %d.\n", nombreMystere);
}
int main() {
int choix;
METOUALE SOMDA GCL2 S3 2024-2025
srand(time(NULL));
printf("Choisissez votre niveau de difficulté :\n");
printf("1. Facile (1-50, 10 essais)\n");
printf("2. Moyen (1-100, 7 essais)\n");
printf("3. Difficile (1-500, 5 essais)\n");
scanf("%d", &choix);
switch (choix) {
case 1:
jouer(50, 10);
break;
case 2:
jouer(100, 7);
break;
case 3:
jouer(500, 5);
break;
default:
printf("Choix invalide.\n");
}
return 0;
}
2. Jeu de Quiz de Culture Générale (Version Difficile)
Améliorations :
- Chronomètre : Ajouter une limite de temps pour répondre à chaque question.
- Questions à Choix Multiples avec Niveau : Diviser les questions en catégories de difficulté
(facile, moyen, difficile).
- Score Négatif : Retirer des points pour les mauvaises réponses.
Code Exemple :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main() {
char reponse[10];
METOUALE SOMDA GCL2 S3 2024-2025
int score = 0, choix;
printf("Choisissez le niveau : 1 (Facile), 2 (Moyen), 3 (Difficile)\n");
scanf("%d", &choix);
getchar(); // consomme le retour à la ligne
switch (choix) {
case 1:
printf("Question 1 : Quelle est la capitale de la France ?\n");
printf("a) Paris b) Londres c) Madrid\n");
printf("Votre réponse : ");
scanf("%s", reponse);
if (strcmp(reponse, "a") == 0) score += 2;
else score -= 1;
break;
case 2:
printf("Question 1 : Qui a inventé la théorie de la relativité ?\n");
printf("a) Newton b) Einstein c) Tesla\n");
printf("Votre réponse : ");
scanf("%s", reponse);
if (strcmp(reponse, "b") == 0) score += 3;
else score -= 1;
break;
case 3:
printf("Question 1 : Quelle est la valeur approximative de pi au centième ?\n");
printf("a) 3.15 b) 3.14 c) 3.16\n");
printf("Votre réponse : ");
scanf("%s", reponse);
if (strcmp(reponse, "b") == 0) score += 5;
else score -= 2;
break;
default:
printf("Niveau invalide.\n");
}
printf("Votre score final est : %d\n", score);
return 0;
}
3. Jeu de Tic-Tac-Toe (Version Difficile
Améliorations :
METOUALE SOMDA GCL2 S3 2024-2025
- Mode Joueur contre Ordinateur : L’ordinateur prend des décisions stratégiques.
- Niveaux de difficulté :
- Facile : L'ordinateur joue de manière aléatoire.
- Difficile : L'ordinateur utilise une stratégie pour maximiser ses chances.
Code Exemple (Ordinateur en Facile) :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char grille[3][3];
void initialiserGrille() {
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
grille[i][j] = ' ';
}
void afficherGrille() {
printf(" %c | %c | %c \n", grille[0][0], grille[0][1], grille[0][2]);
printf("---|---|---\n");
printf(" %c | %c | %c \n", grille[1][0], grille[1][1], grille[1][2]);
printf("---|---|---\n");
printf(" %c | %c | %c \n", grille[2][0], grille[2][1], grille[2][2]);
}
int verifierVictoire(char symbole) {
for (int i = 0; i < 3; i++) {
if (grille[i][0] == symbole && grille[i][1] == symbole && grille[i][2] == symbole)
return 1;
if (grille[0][i] == symbole && grille[1][i] == symbole && grille[2][i] == symbole)
return 1;
}
if (grille[0][0] == symbole && grille[1][1] == symbole && grille[2][2] == symbole) return
1;
if (grille[0][2] == symbole && grille[1][1] == symbole && grille[2][0] == symbole) return
1;
return 0;
}
void ordinateurJoue() {
int ligne, colonne;
do {
METOUALE SOMDA GCL2 S3 2024-2025
ligne = rand() % 3;
colonne = rand() % 3;
} while (grille[ligne][colonne] != ' ');
grille[ligne][colonne] = 'O';
}
int main() {
int ligne, colonne;
srand(time(NULL));
initialiserGrille();
printf("Vous jouez contre l'ordinateur (niveau facile).\n");
for (int tour = 0; tour < 9; tour++) {
afficherGrille();
if (tour % 2 == 0) {
printf("Votre tour (X), entrez la ligne et la colonne (1-3) : ");
scanf("%d %d", &ligne, &colonne);
ligne--; colonne--;
if (grille[ligne][colonne] != ' ') {
printf("Case occupée, réessayez.\n");
tour--;
continue;
}
grille[ligne][colonne] = 'X';
if (verifierVictoire('X')) {
afficherGrille();
printf("Félicitations, vous avez gagné !\n");
return 0;
}
} else {
ordinateurJoue();
if (verifierVictoire('O')) {
afficherGrille();
printf("L'ordinateur a gagné. Bonne chance la prochaine fois !\n");
return 0;
}
}
}
afficherGrille();
printf("Match nul !\n");
return 0;
}
METOUALE SOMDA GCL2 S3 2024-2025
4. Jeu de Mots Mélangés (Version Difficile)
Améliorations :
- Temps Limité : Donnez à l’utilisateur un temps limité pour répondre.
- Mots Longs et Complexes : Mélangez des mots plus longs et moins communs.
- Système de Points: Accordez des points selon la difficulté et le temps restant.
Code Exemple avec Mots Longs :
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void melangerLettres(char *mot) {
int longueur = strlen(mot);
for (int i = 0; i < longueur; i++) {
int j = rand() % longueur;
char temp = mot[i];
mot[i] = mot[j];
mot[j] = temp;
}
}
int main() {
srand(time(NULL));
char mot[20];
printf("Choisissez un niveau de mot (ex : 'ordinateur', 'bibliotheque') : ");
scanf("%s", mot);
char motMelange[20];
strcpy(motMelange, mot);
melangerLettres(motMelange);
printf("Mot mélangé : %s\n", motMelange);
printf("Vous avez 15 secondes pour deviner le mot.\n");
char reponse[20];
scanf("%s", reponse);
METOUALE SOMDA GCL2 S3 2024-2025
if (strcmp(reponse, mot) == 0) {
printf("Bravo ! Vous avez deviné correctement.\n");
} else {
printf("Dommage, la bonne réponse était : %s\n", mot);
}
return 0;
}
```
METOUALE SOMDA GCL2 S3 2024-2025