Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Presque tous les programmeurs (quels que soient les langages) sont passés par là : la réalisation du jeu du plus ou moins. Il est simple et résume tout ce que nous avons vu jusque-là.
Le but est très facile à comprendre : la calculatrice tirera un nombre au hasard et vous devrez le deviner. Pour le deviner, vous devrez donner des nombres et la calculatrice vous dira si le nombre qu'elle aura tiré au sort est plus grand ou plus petit.
Prêt à vous lancer ? ...
Avant tout, je voudrais vous donner quelques petites indications, sans quoi vous n'arriverez à rien.
Comment tirer un nombre au hasard ?
Eh oui, vous ne le savez pas. Vous étiez prêts à vous lancer sans même savoir le commencement de votre programme...
Je ne vous expliquerai pas comment fonctionne cette fonction car je ne veux pas vous embrouiller avec (c'est assez compliqué) et vous n'en aurez pas besoin. Je vous donnerai donc juste la syntaxe :
Int <le nombre de possibilités>ran#+1
-><la variable à laquelle vous voulez assigner ce nombre généré aléatoirement>.
Le chemin d'accès de la fonction "Int" : [optn], [F6], [F4] (num), [F2] (Int)
Le chemin d'accès de la fonction Ran# : [Optn], [F6], [F3] (prob), [F4] (Ran#)
Je vais vous donner un petit exemple pour clarifier vos esprits.
Code : Autre
Voilà, si vous exécutez ce programme, la variable A prendra une valeur entière comprise entre 1 et 1000.
Retenez bien ce code car dans beaucoup de jeux vous en aurez besoin, et j'espère que vous créerez d'autres jeux d'ici le moment où je vous expliquerai ce code.
Quel groupement de fonctions utiliser ?
Vous pourriez en utiliser 3 types :
- If, Then, Ifend
- While, WhileEnd
- Do, LpWhile
Mais je vous déconseille la première (bien que ce soit possible) car il vous faudrait encastrer des boucles dans d'autres boucles, ce serait trop compliqué alors qu'avec les autres c'est très simple.
Quelles instructions utiliser ?
Eh bien quasiment toutes celles que nous avons vues : l'affichage de texte, tout ce qui va avec les variables, la double flèche (vous pourriez utiliser la boucle de condition mais utilisez plutôt son raccourci), le petit triangle noir (lorsque vous afficherez des messages tels que "Bravo, vous avez trouvé". Ne l'utilisez pas pour vos messages tels que "+ GRAND" ou "+ PETIT".
Informations générales
Vous appellerez votre programme "MYST" (comme mystère).
La variable contenant le nombre mystère s'appellera X.
La variable contenant le nombre choisi par l'utilisateur s'appellera J.
Faites en sorte qu'il y ait 100 possibilités de solutions.
Si jamais vous y arrivez très facilement (ce qui devrait être le cas de tous

), rajoutez un compteur qui comptera le nombre de coups que vous mettrez pour trouver le nombre mystère.
Si vous avez bien tout compris jusqu'à maintenant, créer un tel programme ne devrait pas vous prendre plus d'une demi-heure (Personnellement, j'en ai pour 5 min mais bon, je connais le principe par coeur et je connais le chemin d'accès de mes fonctions par coeur (j'espère que vous aussi, vous commencez à les connaître).).
Voilà, je crois que je vous ai tout dit... ah non, j'allais oublier :
Bonne Chance
Bon j'espère que vous avez réussi... et surtout, ne regardez pas la solution si vous n'y êtes pas arrivé (sauf si vraiment, vous bloquez). Essayez plutôt de voir là où ça ne va pas et relisez le cours au cas où. Si jamais il y a un message d'erreur, appuyez sur la flèche de gauche et la calculatrice vous enverra à l'endroit où s'est produite l'erreur : vous pourrez donc savoir pourquoi ça a buggé. Si vous ne trouvez pas, rendez vous à l'endroit du cours où l'utilisation de la fonction qui vous pose problème a été expliqué.
Voici donc la correction : j'ai fait le minimum, j'ai réduit mon programme au maximum (ou presque). Si vous avez le même code, c'est parfait. S'il est différent mais qu'il marche, c'est très bien aussi (c'est le but) mais essayez quand même de comprendre mon code.
Note : ce n'est pas forcément le code le plus condensé qui existe... mais il est déjà pas mal

.
Secret (cliquez pour afficher)
A étant la variable servant de compteur. Si vous avez trouvé ça, vous deviendrez grâce à votre ingéniosité, un jour, un grand programmeur !

.
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| 0->A~Z
ClrText
Int100Ran#+1->X
Do
"NOMBRE MYSTERE"?->J
J<X => "+ GRAND"
J>X => "+ PETIT"
A+1->A
LpWhile J=|X
"BRAVO VOUS AVEZ TROUVE"
"NOMBRE DE COUPS=":A¤ |
Pour la correction de celui qui inclut le compteur, la voici :
J'aurais pu insérer les deux points (:) entre le texte "NOMBRE MYSTERE" et le point d'interrogation (?) mais ils ne sont pas indispensable. Ils servent juste à permettre de faire afficher le point d'interrogation à la ligne.
Même si je vous l'ai déjà dit, je vous le redis : ¤ correspond au petit triangle noir et =| correspond au signe différent de (égal barré).
Code : Autre1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| 0->A~Z
ClrText
Int100Ran#+1->X
Do
"NOMBRE MYSTERE"?->J
J<X => "+ GRAND"
J>X => "+ PETIT"
LpWhile J=|X
"BRAVO VOUS AVEZ TROUVE"¤ |
Conclusion
Bon, j'espère que vous avez tous réussi à créer un programme qui marche et que vous avez au moins compris mon code. Si tel est le cas, vous pouvez continuer les cours. Sinon il faut absolument que vous relisiez les passages flous sinon, vous allez être largués dans les prochains chapitres.
Bon comme promis, voici d'autres idées de programmes que vous pouvez réaliser au stade où nous en sommes :
- un petit théorème de Pythagore : dans un triangle rectangle, le carré de l'hypoténuse est égal à la somme des carrés des deux autres côtés. Ce programme pourra calculer le troisième coté si vous donnez les deux autres. Attention, ce n'est pas évident.
- des petites questions (genre QCM) avec les réponses numérotées 1), 2), 3)...
- une amélioration du jeu que nous venons de réaliser : ajout d'un compteur (si ce n'est pas déjà fait), un paramètre permettant de changer le nombre de possibilités, ajout d'une fonction permettant de jouer à deux...
-et plein d'autres encore, trouvez en vous-même ... mais bon, ça restera limité tant que nous n'aurons pas vu les Labels et le getkey (les deux prochains chapitres). Après, vous serez capables de faire de bons programmes (sans graphisme malheureusement)...