What is the good number ?

Soyez le premier à donner votre avis sur cette source.

Snippet vu 2 567 fois - Téléchargée 37 fois

Contenu du snippet

C'est mon tout premier programme.
J'ai essayé de l'écrire de facon assez clair cest a dire compréhensible par tous.
J'ai utilisé les boucles switch , if , et la fonction srand pour déterminer le chiffre aléatoire.
Bref rien de très innovant et d'original mè comme c mon premier prog j'aurè bien aimé avoir qques critiques afin de mieux voir qu'est ce qui pourrait etre améliorer...
Sinon j'ai utilisé DevC++ pour réalisé ce ptit jeu

Source / Exemple :


#include <iostream.h>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>

char choix, choix2;
int sol, essai,rep;

void fin();

void presentation()
{
	cout<<"\t\t- WHAT IS GOOD NUMBER -\n\n\n";
	cout<<"\tProgrammeur : Kojiro\n\n\n";
}

void choi_niveau()
{
	cout<<"Jouer : \n";
	cout<<"\t Niveau facile    => Taper 1\n";
	cout<<"\t Niveau moyen     => Taper 2\n";
	cout<<"\t Niveau difficile => Taper 3\n\n";
	cout<<"Quitter \t          => Taper une autre touche\n\n";
	cout<<"Votre choix : ";
	cin>>choix;

	cout<<"\n\n\n";

	switch(choix)
	{
		case'1' : srand((unsigned) time(NULL));
			  sol = rand() %101; 
			  break;

		case'2' : srand((unsigned) time (NULL));
			  sol = rand() %501;
			  break;

		case'3' : srand((unsigned) time (NULL));
			  sol = rand() %1001;
		 	  break;
		
	
	}
}

void test()
{
	
	if(rep!=sol)
	{
		do
		{
			if(rep<sol)
			{
				cout<<"Ta proposition est inferieure a la solution\n\n";
			}

			if(rep>sol)
			{
				cout<<"Ta proposition est superieure a la solution\n\n";
			}
			switch(choix)
			{
				case'1' : cout<<"Propose un nombre entre 1 et 100 : ";
				break;
				case'2' : cout<<"Propose un nombre entre 1 et 500 : ";
				break;			
				case'3' : cout<<"Propose un nombre entre 1 et 1000 : ";
				break;
			}
			cin>>rep;
			cout<<"\n\n";
			essai++;
		}while(rep!=sol);
	}

	else if (rep==sol)
	{
		cout<<"G A G N E !!!\n\n";
	}
}

void jeu()
{
	essai = 0;
	switch(choix)
	{
		case'1' : cout<<"\t - Niveau Facile -\n\n";
			  cout<<"Choisi un nombre entre 0 et 100 : ";
			  cin>>rep;
			  cout<<"\n\n";
			  essai++;
			  test();
			  break;

		case'2' : cout<<"\t - Niveau Moyen -\n\n";
			  cout<<"Choisi un nombre entre 1 et 500 : ";
			  cin>>rep;
			  cout<<"\n\n";
			  essai++;
			  test();
			  break;

		case'3' : cout<<"\t - Niveau difficile -\n\n";
			  cout<<"Choisi un nombre entre 1 et 1000 :";
			  cin>>rep;
			  cout<<"\n\n";
			  essai++;
			  test();
			  break;
	}
}

void apre()
{
	switch(choix)
	{
		case'1' : if(essai<=5)
			  {
				cout<<essai<<" essais => Excellent !\n\n";
			  }
			  else if (essai>5 && essai<=10)
			  {
				cout<<essai<<" essais => Pas terrible...\n\n";
			  }
			  else if (essai>10)
			  {
				cout<<essai<<" essais => Lamentable !!!\n\n";
			  }
				break;
		
		case'2' : if(essai<=7)
			  {
				cout<<essai<<" essais => Excellent !\n\n";
			  }
			  else if (essai>7 && essai<=12)
			  {
				cout<<essai<<" essais => Pas terrible...\n\n";
			  }
			  else if (essai>12)
			  {
				cout<<essai<<" essais => Lamentable !!!\n\n";
			  }
				break;

		case'3' : if(essai<=10)
			  {
				cout<<essai<<" essais => Excellent !\n\n";
			  }
			  else if (essai>10 && essai<=18)
			  {
				cout<<essai<<" essais => Pas terrible...\n\n";
			  }
			  else if (essai>18)
			  {
				cout<<essai<<" essais => Lamentable !!!\n\n";
			  }
				break;
	}
}

void main()
{
	presentation();
	choi_niveau();
	switch(choix)
	{
	case'1' : jeu();
			  apre();
			  fin();
			  break;

	case '2' : jeu();
			   apre();
			   fin();
			   break;

	case '3' : jeu();
			   apre();
			   fin();
			   break;

    default : cout<<"A la prochaine...\n\n";
    }
}

void fin()
{
	cout<<"La partie est terminée\n";
	cout<<"Pour rejouer    => Taper 1\n";
	cout<<"Pour quitter    => Taper 2\n\n";
	cout<<"Votre choix : ";
	cin>>choix2;
	cout<<"\n\n";
	switch(choix2)
	{
	case'1': main();

	default : cout<<"A la prochaine...\n\n";
	}
}

A voir également

Ajouter un commentaire Commentaires
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

salut,

une petite remarque sur la présentation bien que cela n'ait pas d'incidence sur le code, on écrit les prototypes des fonctions avant main puis les fonctions elles-mêmes ou l'on code les fonctions puis on met main à la fin.

ps : il est préférable d'utiliser default à chaque fois dans switch (au cas où)
#include <stdio.h> sert à quoi ?
pour retourner dans la fonction appelante il faut un return ; pour (void)ou return VALEUR;
case'1': main();
Messages postés
20
Date d'inscription
samedi 29 mars 2003
Statut
Membre
Dernière intervention
2 juillet 2004

Merci pour les critiques
On m'a reproché les fotes d'orthographes, mè g bo regarder je nen vois pas...
Voila je modif le if et normalement ca devrè aller.
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
1
salut
juste un tout petit bug :
il faut mettre :

else if (rep==sol) et non pas :else if(rep=sol)

sinon pour le reste ça va!
Messages postés
96
Date d'inscription
mardi 2 avril 2002
Statut
Membre
Dernière intervention
7 août 2005

au moins sa fonction main() a le merite d etre super clair :) !
c'est pas mal de decouper en plein de petite fonction , y'en a qui se casserai pas la tete a faire un truc lisible ^^

je met 7/10 pour la presentation et la clareté dans le nom des variable ;) (manque que des commentaires meme si c pas super utilie ici ^^)
Messages postés
5
Date d'inscription
mardi 11 juin 2002
Statut
Membre
Dernière intervention
30 mars 2003

j ai pas regarder en detail mais il me semble que tu pourrais faire bcp moins long.... a toi de voir....

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.