Programmons notre premier jeu : "Plus ou Moins"

Notre premier jeu : le "Plus ou Moins"

Le principe de ce jeu est très simple : le joueur doit deviner le nombre que la calculatrice a choisi aléatoirement. Quand le joueur entre un nombre, la calculatrice indique si le nombre entré est plus grand ou plus petit que le nombre choisi.

Générer des nombres aléatoires

Vous avez toutes les clés pour programmer un "Plus ou Moins", sauf... la génération d'un nombre aléatoire.

Avec RanInt()

L'un des objectifs de ce tutoriel est de toucher un maximum de calculatrices. Comme dit au début du tutoriel, avec les mises à jour successives, certaines fonctions ne sont pas présentes sur toutes les calculatrices. Quand je parle de fonction exclusive à l'OS 2, je vise les 25+ PRO, 35+ USB, 75, 95 SD, Fx-CG 10 et 20, les Graph 85 et 85 SD mises à jour.

Ranint() est exclusive à l'OS 2.

RanInt() génère un nombre entier compris entre les bornes renseignées :

RanInt(0,10) //génère un nombre entier compris entre 0 et 10 inclus

Sans RanInt()

L'absence de RanInt() sur votre calculatrice ne pénalisera aucunement la création de ce jeu, heureusement. On va juste bricoler cette fonction et on utilisera pour cela :

  • Ran# : génère un nombre réel (décimal) de façon aléatoire entre [ 0 ; 1 [ (1 est exclu).
  • Int : retourne la valeur entière d'un nombre. Ran# génère un nombre décimal, mais on veut un entier.

La fonction Ran# (de random pour aléatoire) se trouve dans : [OPTN] + [F6] + [F3] (PROB) + [F4] (RAND) + [F1]

Si on veut générer un nombre entre 0 et 10 exclu, il faudra multiplier le résultat du Ran# par 10.

10*Ran# →A

De manière générale, pour générer aléatoirement un nombre compris entre A et B, on fait :

(A-B)*Ran# +A→C

Si on veut sa partie entière, on utilise la fonction Int : [OPTN] + [F6] + [F4] (NUM) + [F2].

Int ((b-a+1)*Ran# +a)→A

Ainsi, par exemple, je veux générer aléatoirement un nombre entier entre 10 (A) et 30 (B), je fais :

Int ((B-A+1)*Ran# +A)→C
Int ((30-10+1)*Ran# +10)→C
Int (21*Ran# +10)→C

Int ou Intg ?

Int renvoie la partie entière d'un nombre et Intg renvoie la partie entière au sens mathématique. Avec les nombres positifs, Int et Intg donnent la même valeur, mais pas avec les nombres négatifs :

  • Int 4,6 = 4
  • Intg 4,6 = 4
  • Int -4,6 = -4
  • Intg -4,6 = -5

Votre premier jeu

Maintenant, vous avez toutes les clés en main pour programmer ce "Plus ou Moins". Une dernière chose, je vous "impose" quelques conditions pour ce Plus ou Moins, rien de compliquer :

  • Le joueur doit deviner un nombre entre 1 et 100 (1 et 100 inclus, ce sont des valeurs possibles)
  • La calculatrice dit si le nombre à trouver est plus grand ou plus petit que le nombre donné par le joueur
  • Bonus : ajouter un compteur de coups

A vous de programmer !

Cliquez sur cette barre pour afficher la solution
Cliquez sur la barre pour cacher la solution

Le programme que je vous présente est une des solutions parmi tant d'autres. Cela n'a aucune importance si le vôtre est différent, l'essentiel est qu'il remplisse les critères et que ce soit bien un "Plus ou Moins". Les commentaires sont écrits en vert et ne sont donc pas à inclure dans votre programme.

Besoin d'aide ? [url=plus-ou-moins2.php]Construction du Plus ou Moins pas à pas[/url]

Int (100*Ran#)+1→A    //On génère un nombre aléatoire compris entre 1 et 100
0→C    //On initialise le compteur de coups
"VOUS DEVEZ TROUVER UN(sans espace)NOMBRE MYSTERE COMPRIS ENTRE 1 ET 100"
Do    //Début de la boucle LpWhile
"VOTRE PROPOSITION" ? →B
If B≠A    //On vérifie si le nombre proposé est bien différent du nombre mystère (sinon, on affichera un message faux)
Then If B<A
Then "PLUS GRAND"[DISP]
Else "PLUS PETIT"[DISP]
IfEnd
IfEnd
" "        //Un saut supplémentaire pour l’ergonomie
C+1→C        //On ajoute 1 coup au compteur
LpWhile A≠B    //Tant que A (le nombre mystère) différent de B (le nombre proposé), on répète l’action
ClrText        //On nettoie l’écran
"BRAVO VOUS AVEZ TROUVE(sans espace)LE NOMBRE MYSTERE EN  (4 espaces)  COUPS"
Locate 3,3,C    //On affiche le nombre de coups


Pour aller plus loin, on peut imaginer un mode deux joueurs, plusieurs niveaux de difficulté, un nombre maximum de coups pour trouver la solution, améliorer la présentation…
D’ailleurs, c’est un très bon entrainement si vous désirez vous perfectionner avant d’aller plus loin.

<<< Revenir au cours précédent Continuer le cours >>>

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 3.0 France.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2018 | Il y a 33 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd