Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.
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 ? Construction du Plus ou Moins pas à pas

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 v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 158 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd