ami cafzoniens bonjour!
le wack a craquer, il est passe du coté obscur …
à la lecture d’un topic “apprendre à programmer” je me suis dis qu’après tout cela ne me ferai pas de mal de m’y mettre aussi
je me suis donc mis en quete de tuto pour les tanches et j’en ai trouver un sympa (sitedu zero.com)
alors je le précise, j’ai trois quatre heures de pratique derriere moi( ouais carrément) et un petit truc sympa à programmer (un 'tit jeu de + ou -)
j’ai un peu (beaucoup) remanier le code et j’ai rajouter des options(niveau de difficulté, continue,compteur de coup,et message d’erreur et même un game over!)
alors, c’est méchament basic, sans doute codé comme un porc mais rien de ce que j’ai rajouté n’était documenté, et en plus ça marche:
d’ailleurs voilà le bestiau:
[code]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/jeu de +ou-
creer par moi meme, d’apres M@teo21 du site du zero
ceci est la version 0.3/
int main(int argc, char *argv[])
{
const long MIN=1;//on instaure une constante mini
long MAX=100;// et une variable maxi(100 de base)
long nombreMystere;//ça c’est notre variable mystere
long compteur=0;//on initialise le compteur
int continuer=1;//la c’est le continue
long saisi=0;//le chiffre que le joueur saisira
long difficulte=1;//on fixe le niveau de difficulte de depart
do//debut du jeu
{
//selection du niveau de difficulté
do
{//debut de la boucle
printf(“choisissez votre niveau de difficulte\n\n”);
printf(“1.facile\n”);
printf(“2.moyen\n”);
printf(“3.dur\n\n\t”);
scanf("%ld",&difficulte);//c’est ici qu’on modifie le niveau
if (difficulte==1)//choix1
{
MAX=10;//on fixe la limite à 10
}
else if (difficulte==2)//choix 2
{
MAX=100;//on fixe la limite à 100
}
else if (difficulte==3)//choix 3
{
MAX=1000;//on fixe la limite à 1000
}
else //mauvais choix
{
printf (“1, 2, ou 3, c’est pourtant pas dur!\n”);
}
}//fin de la boucle
while (difficulte>3);/si le joueur rentre une valeur superieure à 3
on recommence la boucle/
//fin selection du niveau de difficultés
//et on balance un nombre aleatoire
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
//voilà ça c’est fait…
do
{
compteur++;//on commence par incrementer le compteur de coups de 1
printf(“quel est le nombre mystere?\t”);// on pose la question
scanf("%ld",&saisi);//le joueur repond
while (saisi>MAX)//si le joueur rentre un nombre hors borne
{
printf(“le nombre doit etre entre 1 et %ld\n”,MAX);
scanf("%ld",&saisi);
}//on boucle tant que le joueur se trompe
// le jeu se deroule
if (saisi<nombreMystere)
{
printf(“c’est plus!\n\n”);
}
else if (saisi>nombreMystere)
{
printf(“c’est moins!\n\n”);
}
else
{
printf(“bravo le nombre mystere est %ld\nvous l’avez trouve en %ld coups\n\n”,nombreMystere,compteur);
}
if (compteur==15)
{
printf (“perdu,plus de tentatives possibles\n\tla solution etait %ld\n”,nombreMystere);
saisi=nombreMystere;
}
}
//jusqu’a ce que le joueur ai trouvé
while (saisi!=nombreMystere);
//on lui propose alors de continuer ou pas(voir la fin du code)
printf(“souhaitez vous continuez?\n\n”);
printf(“1. continuez\n”);
printf(“0. arretez,stop!!!\n\t”);
scanf("%ld",&continuer);
//s’il choisi de continuer on reinitilise le nombre mystere
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
//et le compeur de coups
compteur=0;
}
while (continuer!=0);// le jeu boucle tant que le joueur ne met pas le continue à 0
system(“PAUSE”);
return 0;
}[/code]
le pourquoi du topic?
oui, j’ai failli oublier, en fait j’ai fait tester le bouzin
et le premier truc que mon “testeur-beta” à fait, c’est de rentrer des lettres au lieu de chiffres
et tout c’est mis à boucler à l’infini.
j’ai cru comprendre que le scanf renvoyait à une adresse mémoire, et que saisir des lettres dans la mémoire c’est le mal( elle comprend que les chiffres mémére)
aussi je souhaiterai:
soit pouvoir renvoyer un message d’erreur au joueur lui priant de mettre des chiffres (comme j’ai fait pour les chiffres hors bornes)
soit carrément empecher la saisie de lettre.
soit enfin faire comprendre à mon programme qu’il ne doit pas s’enerver pour si peux, et que un jour quand je serai bon je lui apprendrai à lire.
j’ai chercher sur le site en question,j’ai même poster sur leur forum, mais j’ai l’impression que seuls des beotiens comme moi tente de répondre.
et, n’ayant pas le vocabulaire nécésaire, google a du mal à etre mon ami.
quelqu’un pourrait il, soit me mettre sur la voie, soit me renvoyer dans mes 22 en disant, “t’as pas le niveau gros nOOb, laisse faire les codeurs burnés!!!”