Tu tiens entre tes mains (ou presque) un ordinateur qui a plus de 40 ans : le Thomson MO5. Il n’a pas de souris, pas d’internet, pas d’écran tactile. Il n’a qu’un clavier — et toi.
Et c’est exactement pour ça qu’il est parfait pour apprendre à programmer.
Dans ce cours, tu vas apprendre le BASIC : le langage de programmation que des millions d’enfants ont utilisé dans les années 80. C’est un langage simple, lisible, et qui donne des résultats immédiats. Quand tu écris une instruction, la machine obéit. Tout de suite.
Prêt ? Allume ton MO5. On commence.
Pas de MO5 sous la main ? Utilise un émulateur !
Un émulateur est un programme qui imite le fonctionnement du Thomson MO5 sur un ordinateur moderne. Tu peux taper et lancer tous les programmes de ce cours dessus — le résultat est identique à la vraie machine.
Dans ton navigateur, sans rien installer (le plus simple) :
- Maurice — émulateur MO5 en ligne, fonctionne directement dans Chrome, Firefox et Safari.
https://kpouer.github.io/Maurice/
Utilisation : la page s’ouvre, le MO5 démarre automatiquement. Tape ton programme, appuie sur ENTRÉE. C’est tout. - YAME (Yet Another MO5 Emulator) — autre émulateur en ligne, interface sobre et fiable.
https://scemino.github.io/yame_wp/
A télécharger sur Windows (le plus complet) :
- DCMOTO — l’émulateur de référence pour toute la gamme Thomson (MO5, MO5NR, MO6, TO7, TO8…), développé par Daniel Coulom. Mis à jour régulièrement, très fidèle à la machine originale. Inclut une logithèque complète de jeux et de programmes.
http://dcmoto.free.fr/
Conseil : commence par Maurice dans ton navigateur pour les premières leçons. Si tu accroches, télécharge DCMOTO pour aller plus loin et accéder aux jeux et aux logiciels.
Comment utiliser ce cours
- Tape tout ce qui est dans les cadres de code. Chaque programme doit être saisi au clavier, lettre par lettre.
- Respecte les espaces et les virgules. Le MO5 est pointilleux : une faute de frappe, et rien ne marche.
- Si quelque chose ne fonctionne pas, relis ton code ligne par ligne. L’erreur est presque toujours une faute de frappe.
- Pour lancer un programme, tape
RUNet appuie sur ENTRÉE. - Pour arrêter un programme qui tourne, appuie sur la touche STOP.
- Pour effacer un programme et repartir de zéro, tape
NEWet appuie sur ENTRÉE.
LEÇON 1 — Bonjour, le monde !
La première chose que tout programmeur apprend
Ce que tu vas apprendre
Faire afficher du texte à l’écran. C’est la toute première chose que tous les programmeurs du monde apprennent — depuis 1960 jusqu’à aujourd’hui.
L’instruction PRINT
PRINT veut dire « affiche » en anglais. Tout ce que tu mets entre guillemets après PRINT, l’ordinateur l’écrit à l’écran.
Programme 1 — Tape exactement ceci :
PRINT "BONJOUR !"
Appuie sur ENTRÉE. L’ordinateur répond :
BONJOUR !
Félicitations. Tu viens d’écrire ton premier programme.
Programme 2 — Un programme avec plusieurs lignes
Un vrai programme, c’est plusieurs instructions qui se suivent. On numérote chaque ligne pour que l’ordinateur sache dans quel ordre les exécuter.
10 PRINT "BONJOUR !"
20 PRINT "JE SUIS UN ORDINATEUR."
30 PRINT "J'AI 40 ANS ET JE MARCHE ENCORE !"
RUN
L’écran affiche les trois phrases, l’une après l’autre. Les numéros 10, 20, 30 sont les numéros de ligne. On compte de 10 en 10 pour pouvoir insérer des lignes entre deux si besoin.
Astuce : les points-virgules
Si tu mets un point-virgule à la fin d’un PRINT, la phrase suivante s’affiche sur la même ligne :
10 PRINT "MON PRÉNOM EST ";
20 PRINT "LUCAS"
RUN
Résultat : MON PRÉNOM EST LUCAS — tout sur une seule ligne.
À toi de jouer !
- Écris un programme qui affiche ton prénom, ton âge, et ta couleur préférée — chacun sur une ligne différente.
- Écris un programme qui affiche une blague (la question sur une ligne, la réponse sur la suivante).
- Essaie d’afficher un dessin fait avec des lettres et des symboles — par exemple une maison ou un sapin !
Le mot du programmeur
PRINT : instruction qui affiche du texte ou des nombres à l’écran. C’est l’une des instructions les plus utilisées en BASIC.
LEÇON 2 — La machine qui répond
Apprendre à poser des questions
Ce que tu vas apprendre
Faire en sorte que l’ordinateur pose une question et mémorise ta réponse. C’est le début de la vraie interaction.
L’instruction INPUT
INPUT veut dire « entrée » en anglais. L’ordinateur affiche un message, attend que tu tapes quelque chose, et garde ta réponse en mémoire pour la suite.
Programme 3 — La machine qui dit bonjour
10 PRINT "COMMENT TU T'APPELLES ?"
20 INPUT NOM$
30 PRINT "BONJOUR, "; NOM$; " !"
RUN
Quand tu lances ce programme :
- L’ordinateur affiche :
COMMENT TU T'APPELLES ? - Il attend que tu tapes ton prénom et que tu appuies sur ENTRÉE.
- Il répond :
BONJOUR, LUCAS !(ou ton prénom à toi)
Pourquoi NOM$ avec un dollar ?
Le signe $ à la fin d’un mot signifie que c’est du texte (des lettres). Si tu veux mémoriser un nombre, tu n’en as pas besoin. Par exemple :
NOM$→ mémorise du texte (ton prénom)AGE→ mémorise un nombre (ton âge)
Programme 4 — Version plus courte avec INPUT
Tu peux mettre la question directement dans l’instruction INPUT :
10 INPUT "COMMENT TU T'APPELLES ? "; NOM$
20 INPUT "QUEL AGE AS-TU ? "; AGE
30 PRINT "SALUT "; NOM$; " ! TU AS "; AGE; " ANS."
RUN
Programme 5 — Le programme qui fait un calcul
10 INPUT "ENTRE UN NOMBRE : "; A
20 INPUT "ENTRE UN AUTRE NOMBRE : "; B
30 PRINT A; " + "; B; " = "; A+B
40 PRINT A; " x "; B; " = "; A*B
RUN
L’ordinateur additionne et multiplie tes deux nombres. Tu peux utiliser + (addition), - (soustraction), * (multiplication) et / (division).
À toi de jouer !
- Crée un programme qui demande le prénom de l’utilisateur et son plat préféré, puis affiche une phrase complète.
- Crée un programme qui demande deux nombres et affiche leur somme, leur différence et leur produit.
- Crée un programme qui demande ton année de naissance et calcule ton âge (indice : l’année actuelle est 2026).
Le mot du programmeur
INPUT : instruction qui attend une saisie au clavier et la stocke dans une variable. Variable texte : se termine par $ (ex: NOM$). Variable nombre : sans $ (ex: AGE).
LEÇON 3 — Les boîtes magiques
Comprendre les variables
Ce que tu vas apprendre
Les variables sont les boîtes de rangement de l’ordinateur. Il peut y mettre une valeur, la modifier, la relire autant de fois qu’il veut.
Qu’est-ce qu’une variable ?
Imagine une boîte avec une étiquette. Sur l’étiquette, il y a un nom (par exemple SCORE). Dans la boîte, il y a une valeur (par exemple 0). Tu peux changer ce qu’il y a dans la boîte quand tu veux — la boîte garde la dernière valeur qu’on lui a donnée.
10 SCORE = 0
20 PRINT "TON SCORE : "; SCORE
30 SCORE = SCORE + 10
40 PRINT "TON SCORE : "; SCORE
50 SCORE = SCORE + 10
60 PRINT "TON SCORE : "; SCORE
RUN
Résultat :
TON SCORE : 0
TON SCORE : 10
TON SCORE : 20
La ligne SCORE = SCORE + 10 peut sembler bizarre. Elle signifie : « prends la valeur actuelle de SCORE, ajoute 10, et remets le résultat dans SCORE ». Ce n’est pas une équation mathématique — c’est un ordre !
Programme 6 — Le compteur de points
10 POINTS = 0
20 PRINT "=== JEU DE POINTS ==="
30 PRINT "TU AS "; POINTS; " POINTS."
40 INPUT "VEUX-TU GAGNER 5 POINTS ? (1=OUI / 2=NON) "; CHOIX
50 IF CHOIX = 1 THEN POINTS = POINTS + 5
60 PRINT "TU AS MAINTENANT "; POINTS; " POINTS !"
RUN
Ne t’inquiète pas pour le IF ligne 50 — on l’apprend en détail à la leçon suivante. Tape le programme tel quel et observe ce qui se passe.
Les règles des noms de variables
- Un nom de variable commence toujours par une lettre.
- Il ne peut pas contenir d’espaces : utilise des noms collés comme
MEILLEURSCOREouNB_VIES. - Les variables texte finissent par
$:NOM$,COULEUR$. - Les variables nombres n’ont pas de
$:AGE,SCORE,VIES.
Programme 7 — Calculer un prix
10 PRIX = 3
20 INPUT "COMBIEN DE BONBONS VEUX-TU ? "; QUANTITE
30 TOTAL = PRIX * QUANTITE
40 PRINT QUANTITE; " BONBONS = "; TOTAL; " CENTIMES"
RUN
À toi de jouer !
- Crée une variable VIES qui commence à 3. Affiche-la, enlève 1, affiche-la, enlève 1, affiche-la.
- Crée un programme qui demande le prix d’un article et la quantité achetée, et calcule le total.
- Crée un programme qui demande deux nombres et affiche leur moyenne.
Le mot du programmeur
Variable : une boîte en mémoire qui stocke une valeur. On lui donne un nom et on peut changer son contenu à tout moment avec =.
LEÇON 4 — Si… alors…
Apprendre à prendre des décisions
Ce que tu vas apprendre
L’instruction IF...THEN (Si…Alors) permet à ton programme de prendre des décisions. C’est comme un carrefour : selon la valeur d’une variable, le programme prend un chemin ou un autre.
La structure IF…THEN
IF condition THEN action
En français : « SI la condition est vraie, ALORS fais cette action »
Programme 8 — Trop chaud, trop froid
10 INPUT "QUELLE TEMPERATURE FAIT-IL ? "; TEMP
20 IF TEMP < 0 THEN PRINT "IL GELE ! METS TON MANTEAU !"
30 IF TEMP >= 0 AND TEMP < 15 THEN PRINT "IL FAIT FRAIS."
40 IF TEMP >= 15 AND TEMP < 25 THEN PRINT "IL FAIT BON !"
50 IF TEMP >= 25 THEN PRINT "IL FAIT CHAUD ! PRENDS DE L'EAU."
RUN
Les symboles de comparaison
| Symbole | Signification | Exemple |
|---|---|---|
= | est égal à | IF SCORE = 100 |
< | est plus petit que | IF AGE < 18 |
> | est plus grand que | IF POINTS > 50 |
<= | est plus petit ou égal | IF VIES <= 0 |
>= | est plus grand ou égal | IF SCORE >= 10 |
<> | est différent de | IF REPONSE <> 42 |
Programme 9 — Le videur de boîte de nuit (version enfant !)
10 INPUT "QUEL AGE AS-TU ? "; AGE
20 IF AGE < 10 THEN PRINT "TU ES ENCORE UN BEBE !"
30 IF AGE >= 10 AND AGE < 13 THEN PRINT "TU ES UN ENFANT COURAGEUX !"
40 IF AGE >= 13 AND AGE < 18 THEN PRINT "TU ES UN ADO !"
50 IF AGE >= 18 THEN PRINT "TU ES UN ADULTE !"
RUN
Programme 10 — IF avec ELSE (sinon)
On peut aussi dire « SI… ALORS… SINON… » avec ELSE :
10 INPUT "DEVINE MON CHIFFRE (entre 1 et 3) : "; REP
20 IF REP = 2 THEN PRINT "BRAVO, C'EST CA !" ELSE PRINT "PERDU ! C'ETAIT 2."
RUN
À toi de jouer !
- Crée un programme qui demande une note sur 20 et affiche : « Insuffisant » (moins de 10), « Bien » (10 à 14), « Très bien » (15 à 19), « Parfait ! » (20).
- Crée un programme qui demande un mot de passe (un nombre secret que toi seul connais) et affiche « ACCES AUTORISE » ou « ACCES REFUSE ».
- Crée un programme qui demande deux nombres et affiche lequel est le plus grand.
Le mot du programmeur
IF…THEN : instruction conditionnelle. Le programme exécute l’action après THEN seulement si la condition est vraie. ELSE : ce qui se passe si la condition est fausse.
LEÇON 5 — Répéter sans se fatiguer
Les boucles FOR et NEXT
Ce que tu vas apprendre
Répéter une action un nombre précis de fois, sans avoir à recopier les mêmes lignes. Les boucles sont l’un des outils les plus puissants de la programmation.
La boucle FOR…NEXT
FOR variable = début TO fin
...instructions...
NEXT variable
En français : « POUR variable allant de début à fin, fais ces instructions, puis passe au suivant »
Programme 11 — Compter jusqu’à 10
10 FOR I = 1 TO 10
20 PRINT I
30 NEXT I
RUN
L’ordinateur affiche les nombres 1 à 10, un par ligne. La variable I commence à 1, augmente de 1 à chaque tour, et s’arrête quand elle dépasse 10.
Programme 12 — La table de multiplication
10 INPUT "QUELLE TABLE VEUX-TU ? "; N
20 FOR I = 1 TO 10
30 PRINT N; " x "; I; " = "; N*I
40 NEXT I
RUN
Entre 7, et tu obtiens toute la table de 7. Entre 13, tu obtiens la table de 13. L’ordinateur ne se fatigue jamais !
Programme 13 — Compter de 2 en 2 (STEP)
On peut changer le pas de comptage avec STEP :
10 PRINT "LES NOMBRES PAIRS :"
20 FOR I = 0 TO 20 STEP 2
30 PRINT I
40 NEXT I
50 PRINT "LES NOMBRES IMPAIRS :"
60 FOR I = 1 TO 19 STEP 2
70 PRINT I
80 NEXT I
RUN
Programme 14 — Compter à rebours
10 PRINT "COMPTE A REBOURS !"
20 FOR I = 10 TO 0 STEP -1
30 PRINT I
40 NEXT I
50 PRINT "DECOLLAGE !!!"
RUN
Programme 15 — Les boucles imbriquées
On peut mettre une boucle dans une boucle. C’est un peu casse-tête au début, mais très puissant :
10 FOR LIGNE = 1 TO 5
20 FOR ETOILE = 1 TO LIGNE
30 PRINT "*";
40 NEXT ETOILE
50 PRINT ""
60 NEXT LIGNE
RUN
Résultat : un triangle d’étoiles !
*
**
***
****
*****
À toi de jouer !
- Crée un programme qui affiche tous les multiples de 5 entre 5 et 100.
- Crée un programme qui demande un nombre N et affiche toutes les tables de multiplication de 1 à N.
- Modifie le programme du triangle pour faire un carré de 5×5 étoiles.
- Crée un programme qui affiche les nombres de 1 à 100 et indique pour chacun s’il est pair ou impair (indice : utilise
INT(I/2)*2 = Ipour tester si un nombre est pair).
Le mot du programmeur
FOR…NEXT : boucle qui répète des instructions un nombre fixé de fois. STEP : définit le pas d’incrémentation (peut être négatif pour compter à rebours).
LEÇON 6 — Sauter et recommencer
GOTO et les boucles infinies
Ce que tu vas apprendre
L’instruction GOTO fait sauter le programme à une autre ligne. C’est pratique pour créer des menus, des boucles qui durent tant qu’une condition n’est pas remplie.
L’instruction GOTO
GOTO numéro_de_ligne
En français : « Va directement à la ligne numéro… »
Programme 16 — La boucle infinie (et comment en sortir)
10 PRINT "JE SUIS UN ROBOT !"
20 GOTO 10
RUN
L’ordinateur affiche la phrase sans jamais s’arrêter. Pour stopper un programme qui boucle, appuie sur la touche STOP ou CTRL+C.
Programme 17 — Un menu qui tourne
10 PRINT "=== MON PROGRAMME ==="
20 PRINT "1 - AFFICHER MON NOM"
30 PRINT "2 - CALCULER"
40 PRINT "3 - QUITTER"
50 INPUT "TON CHOIX : "; CHOIX
60 IF CHOIX = 1 THEN PRINT "JE M'APPELLE LUCAS !"
70 IF CHOIX = 2 THEN PRINT "2 + 2 = 4 !"
80 IF CHOIX = 3 THEN PRINT "AU REVOIR !" : END
90 GOTO 10
RUN
Ce programme affiche un menu, attend ton choix, fait quelque chose, puis revient au menu — à l’infini, jusqu’à ce que tu tapes 3 pour quitter. END arrête le programme proprement.
Programme 18 — Tant que… (boucle conditionnelle)
10 VIES = 3
20 IF VIES = 0 THEN PRINT "GAME OVER !" : END
30 PRINT "IL TE RESTE "; VIES; " VIE(S)."
40 INPUT "APPUIE SUR 1 POUR PERDRE UNE VIE : "; X
50 IF X = 1 THEN VIES = VIES - 1
60 GOTO 20
RUN
Le programme continue tant que tu as des vies. Quand VIES atteint 0, il s’arrête. C’est le principe de base de tous les jeux vidéo !
À toi de jouer !
- Modifie le programme du menu pour ajouter une option qui affiche la table de multiplication d’un nombre demandé.
- Crée un programme qui compte combien de fois l’utilisateur appuie sur ENTRÉE avant de taper « STOP ».
- Crée un programme qui demande un nombre et le divise par 2 en boucle, jusqu’à ce qu’il soit inférieur à 1. Combien d’étapes faut-il pour le nombre 1000 ?
Le mot du programmeur
GOTO : saut inconditionnel vers une ligne. END : arrête le programme proprement. À utiliser avec précaution : trop de GOTO rend le code difficile à lire !
LEÇON 7 — Le hasard, c’est magique
La fonction RND pour les jeux
Ce que tu vas apprendre
Générer des nombres aléatoires. Sans le hasard, il n’y a pas de jeu ! Le dé, les cartes, les surprises — tout ça utilise le hasard.
La fonction RND
RND(1) génère un nombre décimal aléatoire entre 0 et 1 (par exemple 0.374 ou 0.891).
Pour obtenir un nombre entier entre 1 et N, on utilise :
INT(RND(1) * N) + 1
RND(1) * 6→ nombre entre 0 et 6INT(...)→ partie entière (supprime les décimales)+ 1→ on commence à 1 plutôt qu’à 0
Programme 19 — Le dé virtuel
10 DE = INT(RND(1) * 6) + 1
20 PRINT "TU AS LANCE LE DE..."
30 PRINT "RESULTAT : "; DE
40 INPUT "APPUIE SUR ENTREE POUR RELANCER : "; X
50 GOTO 10
RUN
Programme 20 — Chiffre mystère
10 MYSTERE = INT(RND(1) * 10) + 1
20 PRINT "J'AI CHOISI UN NOMBRE ENTRE 1 ET 10."
30 INPUT "DEVINE : "; REP
40 IF REP = MYSTERE THEN PRINT "BRAVO !" : END
50 IF REP < MYSTERE THEN PRINT "TROP PETIT !"
60 IF REP > MYSTERE THEN PRINT "TROP GRAND !"
70 GOTO 30
RUN
Programme 21 — Pierre, Feuille, Ciseaux !
10 PRINT "PIERRE FEUILLE CISEAUX !"
20 PRINT "1=PIERRE 2=FEUILLE 3=CISEAUX"
30 INPUT "TON CHOIX : "; JOUEUR
40 ORDI = INT(RND(1) * 3) + 1
50 IF ORDI = 1 THEN PRINT "L'ORDI CHOISIT : PIERRE"
60 IF ORDI = 2 THEN PRINT "L'ORDI CHOISIT : FEUILLE"
70 IF ORDI = 3 THEN PRINT "L'ORDI CHOISIT : CISEAUX"
80 IF JOUEUR = ORDI THEN PRINT "EGALITE !" : GOTO 10
90 IF JOUEUR=1 AND ORDI=3 THEN PRINT "TU GAGNES !" : GOTO 10
100 IF JOUEUR=2 AND ORDI=1 THEN PRINT "TU GAGNES !" : GOTO 10
110 IF JOUEUR=3 AND ORDI=2 THEN PRINT "TU GAGNES !" : GOTO 10
120 PRINT "L'ORDI GAGNE !"
130 GOTO 10
RUN
À toi de jouer !
- Modifie le dé pour simuler deux dés et afficher leur somme (comme dans le jeu du Monopoly).
- Crée un programme qui tire 10 nombres aléatoires entre 1 et 100 et affiche le plus grand.
- Crée une version améliorée du jeu de devinette qui compte le nombre d’essais et affiche un score à la fin.
Le mot du programmeur
RND(1) : génère un nombre décimal aléatoire entre 0 et 1. INT() : arrondit à l’entier inférieur. INT(RND(1)*N)+1 : formule magique pour un nombre entre 1 et N.
LEÇON 8 — Dessiner à l’écran
Les graphismes en BASIC
Ce que tu vas apprendre
Le MO5 peut dessiner des lignes, des rectangles et des cercles. On va créer des images avec du code !
Le système de coordonnées
L’écran du MO5 est une grille de 320 colonnes × 200 lignes en mode graphique. Le point (0, 0) est en haut à gauche, le point (319, 199) est en bas à droite.
Pour passer en mode graphique, on utilise :
SCREEN 1,0
Pour revenir en mode texte :
SCREEN 0,0
Les couleurs du MO5
| Numéro | Couleur |
|---|---|
| 0 | Noir |
| 1 | Rouge |
| 2 | Vert |
| 3 | Jaune |
| 4 | Bleu |
| 5 | Magenta |
| 6 | Cyan |
| 7 | Blanc |
Programme 22 — Dessiner des lignes
10 SCREEN 1,0
20 LINE (0,0)-(319,199),1
30 LINE (319,0)-(0,199),2
40 LINE (160,0)-(160,199),3
50 LINE (0,100)-(319,100),4
RUN
Tu obtiens une grande croix de diagonales colorées sur l’écran.
Programme 23 — Dessiner des rectangles
En ajoutant ,B après la couleur, LINE dessine un rectangle (Box) :
10 SCREEN 1,0
20 LINE (10,10)-(310,190),1,B
30 LINE (50,50)-(270,150),2,B
40 LINE (100,80)-(220,120),3,B
RUN
Programme 24 — Des cercles partout !
10 SCREEN 1,0
20 FOR I = 1 TO 10
30 X = INT(RND(1)*280) + 20
40 Y = INT(RND(1)*160) + 20
50 R = INT(RND(1)*20) + 5
60 C = INT(RND(1)*7) + 1
70 CIRCLE (X,Y),R,C
80 NEXT I
RUN
Le programme dessine 10 cercles de taille et de position aléatoires, en couleurs variées. Lance-le plusieurs fois — tu obtiens à chaque fois un dessin différent !
Programme 25 — Un coucher de soleil
10 SCREEN 1,0
20 LINE (0,100)-(319,199),4,BF
30 LINE (0,0)-(319,100),6,BF
40 CIRCLE (160,100),40,3
RUN
BF signifie « Box Filled » — un rectangle plein. Tu as un ciel cyan, une mer bleue et un soleil jaune.
À toi de jouer !
- Dessine une maison simple : un carré pour les murs, et deux lignes en V pour le toit.
- Dessine un bonhomme : un cercle pour la tête, des lignes pour le corps, les bras et les jambes.
- Crée un programme qui dessine 50 points aléatoires sur l’écran (comme un ciel étoilé). Indice : un point, c’est un cercle de rayon 1.
Le mot du programmeur
SCREEN 1,0 : mode graphique. LINE (x1,y1)-(x2,y2),couleur : ligne droite. LINE …,B : rectangle. LINE …,BF : rectangle plein. CIRCLE (x,y),rayon,couleur : cercle.
LEÇON 9 — Projet 1 : Le Grand Jeu de Devinette
On assemble tout ce qu’on a appris
Ce que tu vas créer
Un jeu complet avec : un nombre secret aléatoire, un compteur d’essais, des indices, un score, et la possibilité de rejouer.
Le programme complet — tape-le entièrement
10 REM *** LE GRAND JEU DE DEVINETTE ***
20 REM
30 PRINT "================================"
40 PRINT " LE GRAND JEU DE DEVINETTE "
50 PRINT "================================"
60 PRINT ""
70 MYSTERE = INT(RND(1)*100) + 1
80 ESSAIS = 0
90 PRINT "J'AI CHOISI UN NOMBRE ENTRE 1 ET 100."
100 PRINT ""
110 INPUT "TON ESSAI : "; REP
120 ESSAIS = ESSAIS + 1
130 IF REP = MYSTERE THEN GOTO 200
140 IF REP < MYSTERE THEN PRINT "TROP PETIT ! CHERCHE PLUS HAUT."
150 IF REP > MYSTERE THEN PRINT "TROP GRAND ! CHERCHE PLUS BAS."
160 IF ESSAIS = 5 THEN PRINT "INDICE : LE NOMBRE EST "; INT(MYSTERE/10)*10; "OU JUSTE APRES."
170 IF ESSAIS >= 10 THEN GOTO 220
180 GOTO 110
190 REM
200 REM *** VICTOIRE ***
210 PRINT ""
220 IF ESSAIS >= 10 AND REP <> MYSTERE THEN GOTO 260
230 PRINT "*** BRAVO ! ***"
240 PRINT "TU AS TROUVE EN "; ESSAIS; " ESSAI(S) !"
250 IF ESSAIS = 1 THEN PRINT "INCROYABLE ! DU PREMIER COUP !"
255 IF ESSAIS <= 3 THEN PRINT "EXCELLENT ! TU ES TRES FORT !"
257 IF ESSAIS > 3 AND ESSAIS <= 7 THEN PRINT "BIEN JOUE !"
258 IF ESSAIS > 7 THEN PRINT "TU Y ES ARRIVE, C'EST L'ESSENTIEL !"
259 GOTO 270
260 PRINT "PERDU ! LE NOMBRE ETAIT : "; MYSTERE
270 PRINT ""
280 INPUT "REJOUER ? (1=OUI / 2=NON) "; AGAIN
290 IF AGAIN = 1 THEN GOTO 30
300 PRINT "MERCI D'AVOIR JOUE ! AU REVOIR !"
310 END
RUN
Décryptage du programme
| Lignes | Ce que ça fait |
|---|---|
| 10–60 | Affiche le titre du jeu |
| 70–80 | Tire le nombre aléatoire et remet le compteur à 0 |
| 110–180 | Boucle principale : demande un essai, donne des indices |
| 160 | Donne un indice spécial au 5e essai |
| 170 | Arrête le jeu après 10 essais (si pas trouvé) |
| 200–259 | Affiche le message de victoire selon le nombre d’essais |
| 260 | Affiche le message de défaite |
| 280–310 | Propose de rejouer |
Note : REM (REMark) permet d’écrire des commentaires dans le code. Le MO5 les ignore — c’est juste pour aider le programmeur à s’y retrouver.
Améliorations à essayer
- Ajoute un score : 100 points si trouvé en 1 essai, 90 en 2 essais, 80 en 3 essais, etc.
- Ajoute un chronomètre (utilise une variable TEMPS qui augmente à chaque essai).
- Propose trois niveaux de difficulté : Facile (1 à 10), Moyen (1 à 100), Difficile (1 à 1000).
LEÇON 10 — Projet 2 : Mon Quiz Personnalisé
Crée ton propre jeu de questions
Ce que tu vas créer
Un quiz avec tes propres questions, une gestion du score, et un écran de résultats final. Tu peux choisir le thème qui te plaît : foot, animaux, géographie, films, Pokémon…
Le programme — Quiz sur les animaux
10 REM *** MON SUPER QUIZ ***
20 SCORE = 0
30 NB_QUESTIONS = 5
40 PRINT "================================"
50 PRINT " MON SUPER QUIZ ! "
60 PRINT "================================"
70 PRINT ""
80 REM --- QUESTION 1 ---
90 PRINT "QUESTION 1 :"
100 PRINT "QUEL EST LE PLUS GRAND ANIMAL DU MONDE ?"
110 PRINT " 1 - L'ELEPHANT"
120 PRINT " 2 - LA BALEINE BLEUE"
130 PRINT " 3 - LE REQUIN BLANC"
140 INPUT "TA REPONSE : "; REP
150 IF REP = 2 THEN PRINT "BRAVO ! +10 POINTS !" : SCORE = SCORE + 10
160 IF REP <> 2 THEN PRINT "RATÉ ! C'EST LA BALEINE BLEUE."
170 PRINT ""
180 REM --- QUESTION 2 ---
190 PRINT "QUESTION 2 :"
200 PRINT "COMBIEN DE PATTES A UNE ARAIGNEE ?"
210 PRINT " 1 - 6 PATTES"
220 PRINT " 2 - 8 PATTES"
230 PRINT " 3 - 10 PATTES"
240 INPUT "TA REPONSE : "; REP
250 IF REP = 2 THEN PRINT "EXACT ! +10 POINTS !" : SCORE = SCORE + 10
260 IF REP <> 2 THEN PRINT "NON ! UNE ARAIGNEE A 8 PATTES."
270 PRINT ""
280 REM --- QUESTION 3 ---
290 PRINT "QUESTION 3 :"
300 PRINT "QUEL ANIMAL DORT DEBOUT ?"
310 PRINT " 1 - LE CHEVAL"
320 PRINT " 2 - LE LION"
330 PRINT " 3 - LE DAUPHIN"
340 INPUT "TA REPONSE : "; REP
350 IF REP = 1 THEN PRINT "OUI ! +10 POINTS !" : SCORE = SCORE + 10
360 IF REP <> 1 THEN PRINT "NON, C'EST LE CHEVAL !"
370 PRINT ""
380 REM --- QUESTION 4 ---
390 PRINT "QUESTION 4 :"
400 PRINT "QUEL OISEAU NE PEUT PAS VOLER ?"
410 PRINT " 1 - L'AIGLE"
420 PRINT " 2 - LE PINGOUIN"
430 PRINT " 3 - LE CORBEAU"
440 INPUT "TA REPONSE : "; REP
450 IF REP = 2 THEN PRINT "PARFAIT ! +10 POINTS !" : SCORE = SCORE + 10
460 IF REP <> 2 THEN PRINT "FAUX ! LE PINGOUIN NE VOLE PAS."
470 PRINT ""
480 REM --- QUESTION 5 ---
490 PRINT "QUESTION 5 :"
500 PRINT "COMBIEN DE COULEURS VOIT UN CHIEN ?"
510 PRINT " 1 - AUCUNE, IL EST DALTONIEN"
520 PRINT " 2 - 2 COULEURS"
530 PRINT " 3 - AUTANT QUE LES HUMAINS"
540 INPUT "TA REPONSE : "; REP
550 IF REP = 2 THEN PRINT "VRAI ! +10 POINTS !" : SCORE = SCORE + 10
560 IF REP <> 2 THEN PRINT "NON ! LE CHIEN VOIT 2 COULEURS."
570 PRINT ""
580 REM --- RESULTATS ---
590 PRINT "================================"
600 PRINT " TES RESULTATS ! "
610 PRINT "================================"
620 PRINT "TON SCORE : "; SCORE; " / 50 POINTS"
630 PRINT ""
640 IF SCORE = 50 THEN PRINT "PARFAIT ! TU ES UN GENIE DES ANIMAUX !"
650 IF SCORE >= 30 AND SCORE < 50 THEN PRINT "TRES BIEN ! TU T'Y CONNAIS !"
660 IF SCORE >= 10 AND SCORE < 30 THEN PRINT "PAS MAL ! REVISE UN PEU !"
670 IF SCORE < 10 THEN PRINT "OH... IL FAUT APPRENDRE !"
680 PRINT ""
690 INPUT "REJOUER ? (1=OUI / 2=NON) "; AGAIN
700 IF AGAIN = 1 THEN GOTO 20
710 PRINT "MERCI D'AVOIR JOUE ! SALUT !"
720 END
RUN
À toi de tout personnaliser !
- Change toutes les questions pour ton sujet préféré (foot, Pokémon, histoire, géographie…).
- Ajoute 5 questions pour arriver à 10 questions et 100 points maximum.
- Ajoute un timer : les questions auxquelles tu réponds du premier coup donnent des points bonus.
- Ajoute un écran d’accueil graphique avec les instructions SCREEN et CIRCLE de la leçon 8.
- Partage ton quiz avec ta famille et vois qui obtient le meilleur score !
Récapitulatif — Ce que tu sais faire maintenant
| Instruction | Ce que ça fait | Exemple |
|---|---|---|
PRINT | Affiche du texte ou un nombre | PRINT "BONJOUR" |
INPUT | Demande une valeur à l’utilisateur | INPUT "NOM : "; NOM$ |
IF...THEN | Exécute une action si une condition est vraie | IF AGE > 10 THEN PRINT "OK" |
FOR...NEXT | Répète des instructions N fois | FOR I=1 TO 10 : NEXT I |
GOTO | Saute à une ligne | GOTO 10 |
END | Arrête le programme | END |
REM | Commentaire (ignoré par l’ordi) | REM MA NOTE |
RND(1) | Nombre aléatoire entre 0 et 1 | INT(RND(1)*6)+1 |
INT() | Partie entière d’un nombre | INT(3.7) → 3 |
SCREEN 1,0 | Active le mode graphique | SCREEN 1,0 |
LINE | Dessine une ligne ou un rectangle | LINE (0,0)-(100,100),1 |
CIRCLE | Dessine un cercle | CIRCLE (160,100),50,2 |
Et maintenant ? La suite de l’aventure
Tu connais maintenant les bases du BASIC sur Thomson MO5. Mais il y a encore beaucoup à découvrir !
- Les sous-programmes avec
GOSUBetRETURN— pour organiser ton code en blocs réutilisables - Les tableaux avec
DIM— pour stocker des listes de valeurs (comme les scores des 10 meilleurs joueurs) - La musique avec
SOUND— pour créer des mélodies et des effets sonores - Les animations — faire bouger des objets à l’écran
- La sauvegarde sur cassette — pour conserver tes programmes
Et si tu veux aller encore plus loin : le langage Assembleur, qui te permet de parler directement au processeur du MO5 — le vrai langage des hackers des années 80 !
Le Retro Computing Club Adour organise régulièrement des ateliers pour aller plus loin, dans la région de Tarbes, Pau et Bayonne. Tu peux aussi poser toutes tes questions sur notre serveur Discord — des passionnés sont là pour t’aider.
Lexique du programmeur BASIC
| Mot | Définition simple |
|---|---|
| Programme | Une liste d’instructions que l’ordinateur exécute dans l’ordre |
| Instruction | Un ordre donné à l’ordinateur (PRINT, INPUT, IF…) |
| Variable | Une boîte en mémoire qui stocke une valeur |
| Boucle | Une série d’instructions que l’on répète plusieurs fois |
| Condition | Une question à laquelle l’ordinateur répond vrai ou faux |
| Fonction | Un outil qui calcule quelque chose (RND, INT…) |
| Algorithme | La recette de cuisine du programme : la liste des étapes dans le bon ordre |
| Bug | Une erreur dans le programme qui fait qu’il ne marche pas comme prévu |
| Déboguer | Chercher et corriger les bugs dans un programme |
| Syntaxe | Les règles d’écriture du langage (comme la grammaire en français) |
| Commentaire (REM) | Une note dans le code pour expliquer ce qu’il fait — ignorée par l’ordinateur |