Cette source est un petit tutorial illustrant le (plus ?) célèbre jeu en programmation à savoir : "deviner le nombre généré aléatoirement par l'ordinateur"
- nombre d'essais limité (paramètrable)
- jeu personalisé (entrée du pseudo)
- affichage du nombre de tentatives à la fin (si gagné)
- affichage de la réponse à la fin (si perdu)
- code triche pour obtenir la réponse
- jeu clair (espacé)
- source très commentée
- texte corrigé et revu au niveau des caractères spéciaux
- fichier zip (jeu.zip) : tutojeu.cpp + source.doc (zip en 8Ko)
- (spécial) transformation/mutation en source exclusivement C++
Source / Exemple :
// Cette source est un petit tutorial illustrant le (plus ?) célèbre jeu en programmation à savoir : "deviner le nombre généré aléatoirement par l'ordinateur"
// par neo_00110010101@hotmail.com
// Débuté le 05/06/04
// Terminé le 05/06/04
// MAJ du 17/06/04
// Il va falloir trouver un nombre généré aléatoirement par l'ordinateur (de 1 à 100)
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
int main()
{
// EFFACEMENT DU TEXTE
system("cls"); // ainsi, tout s'effacera à chaque nouveau jeu
// INITIALISATION DES VARIABLES
srand(time(NULL)); // initialisation du générateur de nombre
int guess = 0; // initialisation de la variable "guess"
int reponse = (rand() % 100) + 1; // génération du nombre aléatoire de 1 à 100 ("reponse")
int essais = 0; // initialisation de la variable "essais"
int choix = 0; // initialisation de la variable "choix"
string pseudo; // initialisation de la variable "pseudo"
// AFFICHAGE TEXTE
cout << "Tutorial jeu par neo_00110010101 -Guess the number-\n";
// INPUT DU PSEUDO DU JOUEUR
cout << "Entre ton pseudo :"; // demande du pseudo
cin >> pseudo; // enregistrement du pseudo dans "pseudo"
cout << "Bienvenue " << pseudo << ", es-tu pr\210t ?\n"; // utilisation du pseudo dans une phrase
// DEMANDE NOMBRE ESSAIS
cout << "Combien d'essais possibles ?\n"; // demande combien d'essais le joueur pourra bénéficier
cin >> essais; // enregistre la réponse dans la variable "essais"
// LE JEU ET SON DEROULEMENT
for(guess = 1; guess <= essais; guess++) // boucle pour que le jeu ne se termine
// pas avant que la partie soit terminée
{
cout << "\nEssai num\202ro " << guess; // affichage du numéro de l'essai présent
cout << "\nTon choix : " << flush; // demande du nombre à trouver
cin >> choix; // enregistrement de la proposition dans "choix"
if(choix > reponse) cout << "Plus petit, essaie encore !\n";// si "choix" est plus grand que "reponse"
if(choix < reponse) cout << "Plus grand, essaie encore !\n";// si "choix" est plus petit que "reponse"
// partie triche
if(choix == 26154859) // si on tape "26154859" le programme affiche la réponse !
{
cout << "Sale petit tricheur ^^\n";
cout << reponse;
}
if(choix == reponse) // si "choix" est égal à "reponse"
{
cout << "\nBravo, " << pseudo << " tu as r\202ussi en " << guess << " essais !\n";
// la phrase de la victoire ^_^
// avec affichage du nombre de tentatives
break; // on arrête le jeu
}
}
// JEU TERMINE
string recommencer;
if(guess > essais) // si "guess" est strictement supérieur à "essais"
// alors cela veut dire que le jeu est terminé et
// que le joueur a perdu
cout << "\nDommage ! Le nombre \202tait "<< reponse << endl; // Donc, la réponse est affichée
for(;;) // début de la boucle
{
cout << "\nVeux-tu recommencer ?";
cin >> recommencer; // enregistrement de la réponse dans "recommencer"
if(recommencer== "non") // si c'est "non" ...
{
cout << "Au revoir " << pseudo << endl;
cout << "A bient\223t...\n";
return 0; // ... on arrête là
}
if(recommencer== "oui") // si c'est "oui" ...
{
cout << "C'est reparti " << pseudo << endl;
return main(); // ... on recommence un nouveau jeu
}
if(recommencer!= "oui" || recommencer!= "non") // si on entre autre chose que "oui" ou "non" ...
{
cout << "Tape oui ou non\n"; // ... on affiche ce qu'il faut entrer (une sorte d'aide)
continue; // et donc on refait la demande
// (on revient au début de la boucle)
}
}
}
Conclusion :
Programme fonctionnant parfaitement sans erreurs ni warnings sur VC++ 6.0
Si questions : neo_00110010101@hotmail.com
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.