DEVINECODE (JEU)

roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005 - 6 juin 2003 à 08:54
looping93290b Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 22 août 2003 - 10 juin 2003 à 09:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10855-devinecode-jeu

looping93290b Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 22 août 2003
10 juin 2003 à 09:23
roswell 117, j'ai suivi tes conseil et voila le resultat :

//*******************
//* \ *
//* §§§§\ *
//* !--! @@ *
//* ! ~! @@\ *
//* @@@@@@@@ \ *
//* @@ @@@@ \*
//* @@ @@@@ *
//* #### *
//* ## ## *
//*~~~~~~##~~##~~~~~*
//*~~~~~~##~~##~~~~~*
//*~~~~~~@@@~@@@~~~~*
//*~~~~~~~~~~~~~~~~~*
//*******************
//* * * * * * * * * *
//**** By ***********
//* * * * * * * * * *
//******** Looping **
//* * * * * * * * * *
//*******************

//Le programme devinecode est un jeu,
// dans lequel l'ordinateur choisi un code et l'utilisateur doit le retrouver,
// en un nombre de tours limiter.

#include

#include <cstdlib>

#include <ctime>

using namespace std;

int main()
{
int choixmenuprincipal;

cout << "
************************************************************";
cout << "
* *";
cout << "
* *";
cout << "
* *";
cout << "
* - 1 - jouer. *";
cout << "
* *";
cout << "
* *";
cout << "
* *";
cout << "
* - 2 - quitter. *";
cout << "
* *";
cout << "
* *";
cout << "
* *";
cout << "
************************************************************";
cout << "
* Choisissez une option entre (1) ou (2): ";
cin >> choixmenuprincipal;
cout << "************************************************************

";


if( choixmenuprincipal < 1 )
{
return main();
}
if( choixmenuprincipal > 2 )
{
return main();
}
if( choixmenuprincipal == 1 )
{
//insere le programme du jeu.

int valeur[5] = {10000, 50000, 100000, 200000, 500000};

int difficulte = 1;

cout << "
************************************************************";
cout << "
* *";
cout << "
* DIFFICULTE *";
cout << "
* *";
cout << "
* - 1 - ( entre 1 et 10000 en 20 tours. ) *";
cout << "
* *";
cout << "
* - 2 - ( entre 1 et 50000 en 20 tours. ) *";
cout << "
* *";
cout << "
* - 3 - ( entre 1 et 100000 en 20 tours. ) *";
cout << "
* *";
cout << "
* - 4 - ( entre 1 et 200000 en 20 tours. ) *";
cout << "
* *";
cout << "
* - 5 - ( entre 1 et 500000 en 20 tours. ) *";
cout << "
* *";
cout << "
************************************************************";
cout << "
* Choisissez une option entre (1), (2), (3), (4) ou (5): ";
cin >> difficulte;
cout << "************************************************************

";


int lvl;
lvl = valeur[difficulte - 1];

int val1;
int finx;

srand ( time( 0 ) );

int code1 = ( 1 + rand() % lvl );

for ( int tour1 = 1; tour1 < 21; tour1++ )
{
cout << "

Tour n°: " << tour1;
cout << "

Choisissez une valeur entre 1 et " << lvl << " ";
cin >> val1;

if( val1 == code1 )
{
cout << "
Vous avez trouver le bon code.";
cout << "
Voulez vous continuer ? (1) = oui ";
cin >> finx;

if( finx == 1 )
{
return main();
}
if( finx != 1 )
{
exit( EXIT_SUCCESS );
}
}
if( val1 < code1 )
{
cout << "
Votre valeur est trop petite.";
}
if( val1 > code1 )
{
cout << "
Votre valeur est trop grande.";
}
}
}
if( choixmenuprincipal == 2 )
{
exit( EXIT_SUCCESS );
}
return main();
}

j'espere que tu le trouvera cours.

autrement, ceux qui veulent, ils peuvent modifier le prog. pour avoir plus de choix de difficulte a deviner, ou de reduire le nombres de tours pour deviner le code.
pour ce qui veulent garder le prog.
looping93290b Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 22 août 2003
7 juin 2003 à 01:01
elle ne fait pas peur, mais c'est que je ne suis encore qu'un debutant.
cs_AmK Messages postés 368 Date d'inscription jeudi 13 mars 2003 Statut Membre Dernière intervention 27 janvier 2010 1
6 juin 2003 à 18:53
looping la manipulation fait en effet peur (enfin en ce qui me concerne)mais il suffit de s'y mettre à fond une bonne fois pour toute ensuite elle te sera tres naturelle et surtout d'un apport considérable :)
looping93290b Messages postés 30 Date d'inscription vendredi 6 juin 2003 Statut Membre Dernière intervention 22 août 2003
6 juin 2003 à 11:28
merci pour le conseil, mais si pour l'instant je fait beaucoup de repetitions cela est du au fait que je ne maitrise pas encore bien les manipulations des tableaux.
je suis ouvert a touts conseils.
merci encore.
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
6 juin 2003 à 08:54
un conseil pour épurer le code, car il y a trop de répétition :

crée un tableau contenant les valeurs maximum
int valeur[5] = {10000, 50000, 100000, 200000, 500000};
une fois que le joueur a choisi son niveau de difficulté, tu fait :
int lvl;
lvl = valeur[difficulte - 1];

et lors du randomize :
int code1 = ( 1 + rand() % lvl);

et il ne reste plus qu'un seul bloc de test pour les 5 nv de difficulté, au lieu de 5 actuellement.

j'esperes que t'as tout compris.
et continues comme ca !!!
Rejoignez-nous