La vie a besoin d'illusions, c'est-à-dire de non-vérités tenues pour des vérités.
Magic 500 n'est que le jeu où l'on devine un nombre, après essais successifs (trop grand, trop petit...)
Développé par les membres de Microloges, le club d'informatique de Beaumetz les loges, Magic 500 présente l'interêt d'offrir des sources quickbasic qui peuvent servir d'exemples aux débutants...
Le fichier principal:
DECLARE SUB jeu (moinsbon!)
DECLARE SUB regle ()
DECLARE SUB beethov ()
DECLARE SUB init (e$)
DECLARE SUB texte (a$, li!, co!, couleur!, t$)
DECLARE SUB espace (w!)
DECLARE SUB elise ()
CONST nbnb = 5 'nb de nb à trouver
CONST nbch = 3 'nb de chiffre à trouver
CONST nbenr = 30
TYPE sov
chnom AS STRING * 20
chnbes AS INTEGER
END TYPE
DIM joueur AS sov
joueur.chnom = "Adam"
' Page de garde...
'__________________________________________________
DO
WIDTH 40, 25
CLS
texte "MICRoLoGES", 12, 5, 3, "non"
elise
texte "PRESENTE:", 14, 10, 4, "oui"
CLS
texte " M A G I C 5 0 0", 12, 1, 5, "non"
SLEEP 2
'_______________________________________________
'page 2
WIDTH 80, 50
CLS
OPEN "score.wou" FOR RANDOM AS #1 LEN = LEN(joueur)
i = 1
texte "MEILLEURS SCORES", 1, 25, 2, "non"
texte "NOM", 5, 15, 3, "non"
texte "ESSAIS", 5, 50, 3, "non"
max = LOF(1) / LEN(joueur)
IF max > nbenr THEN max = nbenr
FOR i = 1 TO max
GET #1, i, joueur
LOCATE 7 + i, 2
COLOR 1
PRINT i
LOCATE 7 + i, 15
PRINT joueur.chnom
LOCATE 7 + i, 50
COLOR 5
PRINT joueur.chnbes
NEXT
CLOSE #1
moinsbon = joueur.chnbes
IF moinsbon = 0 OR max < nbenr THEN moinsbon = 9999
LOCATE 50, 35
COLOR 2
PRINT "J";
COLOR 1
PRINT "ouer/";
COLOR 2
PRINT "R";
COLOR 1
PRINT "ègles/";
COLOR 2
PRINT "Q";
COLOR 1
PRINT "uitter";
DO
init e$ 'on initialise la liste de nb aleatoires
LOOP UNTIL INSTR("jJrRqQ", e$) > 0 AND e$ <> ""
SELECT CASE UCASE$(e$)
CASE "J"
jeu moinsbon
CASE "Q"
fin$ = "oui"
CASE "R"
regle
END SELECT
LOOP UNTIL fin$ = "oui"
SUB jeu (moinsbon)
DIM joueur AS sov
DIM j AS sov
CLS
WIDTH 80, 50
BEEP
FOR no = 1 TO nbnb
nbcach = INT(RND * 9 * 10 ^ (nbch - 1)) + 10 ^ (nbch - 1)
DO
essai = essai + 1
PRINT
COLOR 3
PRINT "Encore "; nbnb - no + 1; "nombre";
IF nbnb - no + 1 > 1 THEN PRINT ("s");
PRINT " ...trouver. ";
COLOR 3
PRINT " Essai nø ";
COLOR 4
PRINT essai;
COLOR 3
PRINT " > ";
t = 0
FOR y = 1 TO nbch
t$ = ""
DO
t$ = INKEY$
LOOP UNTIL INSTR("0123456789q", t$) > 0 AND t$ <> ""
IF t$ = "q" THEN STOP
PRINT t$;
t = t * 10 + VAL(t$)
t$ = ""
NEXT y
IF t > nbcach THEN PRINT " trop grand "
IF t < nbcach THEN PRINT " trop petit "
LOOP UNTIL t = nbcach
COLOR 4
PRINT " BRAVO !"
IF no <nbnb THEN elise ELSE beethov
espace (5)
NEXT no
PRINT " Mission accomplie !"
SLEEP 3
' ici on regarde le score et on le sauve si il est bon
IF essai < moinsbon THEN
PRINT " Bravo ! Vous entrez dans le top "; nbenr
PRINT
BEEP
INPUT "Entrez votre nom : "; nom$
OPEN "score.new" FOR RANDOM AS #2 LEN = LEN(joueur)
OPEN "score.wouf" FOR RANDOM AS #1 LEN = LEN(joueur)
ok$ = "non"
i2 = 0
max = LOF(1) / LEN(joueur)
IF max = 0 THEN
ok$ = "oui"
j.chnom = nom$
j.chnbes = essai
i2 = i2 + 1
PUT #2, i2, j
END IF
FOR i = 1 TO max
GET #1, i, joueur
IF (essai < joueur.chnbes OR joueur.chnbes = 0) AND ok$ = "non" THEN
ok$ = "oui"
j.chnom = nom$
j.chnbes = essai
i2 = i2 + 1
PUT #2, i2, j
END IF
i2 = i2 + 1
PUT #2, i2, joueur
NEXT
IF ok$ = "non" THEN
ok$ = "oui"
j.chnom = nom$
j.chnbes = essai
i2 = i2 + 1
PUT #2, i2, j
END IF
CLOSE #2
CLOSE #1
KILL "score.wou"
NAME "score.new" AS "score.wou"
END IF
END SUB
SUB regle
WIDTH 40, 25
CLS
texte "Règles", 5, 10, 5, "non"
texte "du jeu", 5, 23, 5, "oui"
espace (5)
COLOR 4
PRINT "Il s'agit de découvrir ";
PRINT nbnb;
PRINT " nombres cachés en dépensant"
PRINT "le moins d'essais possibles."
PRINT
PRINT " Les nombres sont des entiers de "; nbch; " chiffres"
PRINT
PRINT " plus petit, ou plus grand"
PRINT "seront mes seules indications"
PRINT
texte "BONNE CHANCE", 23, 12, 3, "oui"
LOCATE 25, 10
COLOR 4
PRINT " presser une touche";
SLEEP
END SUB
Et ce fichier externe, comme un "include"...
SUB beethov
ECOUTE$ = "T180 o2 P2 P8 L8 GGG L2 E-"
SUITE$ = "P24 P8 L8 FFF L2 D"
PLAY ECOUTE$ + SUITE$
END SUB
SUB elise
PLAY ON
lise$ = "o3 L8 E D+ E D+ E o2 B o3 D C L2 o2 A"
PLAY "MB X" + VARPTR$(lise$)
END SUB
SUB espace (w)
FOR i = 1 TO w
PRINT
NEXT
END SUB
SUB init (e$)
DO
e$ = INKEY$
z = z + 1
LOOP UNTIL e$ <> ""
RANDOMIZE (z)
END SUB
SUB texte (a$, li, co, couleur, t$)
LOCATE li, co
COLOR couleur
FOR i = 1 TO LEN(a$)
PRINT (MID$(a$, i, 1)); " ";
IF t$ = "oui" THEN SLEEP 1
NEXT
END SUB
Quick Basic est téléchargeable: qb45fr.zip
Un autre exemple sur Wikipedia: Exemple de programme sous Qbasic

Je suis tombé un peu par hasard sur Zotero.
Au départ, je pensais à un truc un peu “universitaire”, pas forcément pour moi.
En fait, j’étais complètement à côté.
Zotero, c’est simplement un outil qui permet de garder des traces de ce qu’on lit.
Mais surtout, de ne plus rien perdre.
Et ça, ça change beaucoup de choses.
On lit plein de choses :
Et puis… on oublie.
Avant, j’avais une “méthode” : je sauvegardé l'onglet dans un dossier "temp" en me disant “je le garde pour plus tard”.
Résultat, j’avais un groupe d’onglets “temporaires”… qui ne l’étaient pas du tout.

À l’heure actuelle, temp contient 54 liens.
Et honnêtement, je ne sais plus vraiment à quoi ils correspondent.
Certains sont sûrement intéressants.
D’autres plus du tout.
Mais le simple fait de devoir trier me décourage… donc je ne fais rien.
Avec Zotero, j’ai commencé à faire un truc très simple :
? je clique → je garde la page
? j’ajoute une petite note
Rien de compliqué. Pas de système lourd.
Juste :
“Idée d’article”
“À exploiter avec les élèves”
“Lien avec tel exercice”
Et petit à petit… ça s’accumule.
Au moment d’écrire un article, je ne pars plus de zéro.
J’ouvre Zotero, je tombe sur :
Et ça change tout.
Moins de page blanche.
Moins de perte de temps.
Plus de fluidité.
Ce n’est pas un outil magique.
Mais il enlève des frictions :
Et au final, je produis plus.
Zotero ne fait pas de bruit.
Pas d’effet “waouh” au départ.
Mais après quelques jours d’utilisation, on se rend compte qu’on travaille différemment.
? Clairement, si vous lisez beaucoup, écrivez un peu… ou préparez des contenus :
ça vaut le coup d’essayer.
Petit point important : Zotero s’intègre directement avec LibreOffice (et OpenOffice).
Concrètement, on peut insérer des références ou générer une bibliographie en quelques clics.
Alors oui, je ne m’en sers pas tous les jours dans cet usage-là, mais pour des documents plus “propres” ou un peu plus formels, c’est clairement un plus.
Et surtout, ça fonctionne très bien sous Linux, sans bidouille particulière une fois que tout est en place.
lien vers l'article sur wouf blog
Et pourquoi pas le Site de Wouf comme page de démarrage sur Internet?
Une page légère et simple, avec des liens, des infos, des conseils, un peu de culture... Que demander de plus!