Tutorial/jeu "guess the number"

Description

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

Codes Sources

A voir également

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.