Cette page comporte les codes sources de plusieurs petits programmes BASIC. Pour les débutants en programmation, un petit questionnaire ludique permet de voir si vous avez réussi à comprendre chaque programme sans l'avoir exécuter auparavant. Enfin, une explication est donnée sur les principale fonction du programme.
'MUSIQUE.BAS
'Créé le Samedi 19 octobre par Frédéric WANG.
'Ce petit programme permet de jouer quelques notes de musique.
CLS
PRINT "Appuyer sur a, z, e, r, t, y ou u pour jouer de la musique."
PRINT "Appuyer sur espace pour quitter."
DO
tt$ = INKEY$
FOR a = 1 TO 7
IF tt$ = MID$("azertyu", a, 1) THEN PLAY "L30" + CHR$(64 + a)
NEXT a
LOOP UNTIL tt$ = " "
La fonction INKEY$ retourne la touche appuyée.
On la dépose dans la variable tt$ pour éviter que
son contenu change pendant les tests. La boucle principale
DO...LOOP permet d'attendre que l'utilisateur souhaite
quitter le programme. Ce dernier boucle jusqu'à ce que l'on appuie sur espace
(UNTIL tt$ = " ").
L'association de la boucle FOR a = 1 TO 7 ...
NEXT avec MID$ est interessante à étudier.
La varible a prends les valeurs entières de 1 à 7.
la fonction MID$("azertyu", a, 1) retourne donc
chacun des caractères de a, z, e, r, t, y, u et les
compare avec tt$ pour savoir si une de ces touches
est appuyées.
Enfin, l'instruction PLAY permet de jouer de la
musique. "L30" règle la durée des notes jouée
tandis que la fonction CHR$(64 + a) retourne une
des caractère A, B, C, D, E, F, G qui code chacun
pour une note différente.
'PALETTE.BAS
'Créé le Samedi 19 octobre par Frédéric WANG.
'Ce petit programme permet de visualiser toutes les couleurs du QBASIC.
CLS : SCREEN 12
DIM C(3): C$ = "Rouge Vert Bleu"
y = 0: PALETTE 0, 3289650: PALETTE 5, 0
DO
PALETTE 6, C(0) + 256 * C(1) + 65536 * C(2)
LINE (0, 0)-(639, 479), 6, BF
FOR A = 0 TO 2
COLOR 5: LOCATE 12 + A * 2, 30: PRINT " "; CHR$(32 + (A = y) * 16);
COLOR (A = 0) * -4 + (A = 1) * -2 + (A = 2) * -1
PRINT " "; MID$(C$, 1 + A * 5, 5); ":"; C(A); "/ 63"
NEXT A
COLOR 5
LOCATE 19, 25: PRINT "Numéro de la couleur:"; C(0) + 256 * C(1) + 65536 * C(2)
LOCATE 25, 12: PRINT "Changer la couleur avec les flèches et les touches - ou +"
LOCATE 28, 25: PRINT "Appuyer sur espace pour quitter"
DO: tt$ = INKEY$: LOOP WHILE tt$ = ""
IF tt$ = CHR$(0) + "K" AND C(y) > 0 THEN C(y) = C(y) - 1
IF tt$ = CHR$(0) + "M" AND C(y) < 63 THEN C(y) = C(y) + 1
IF tt$ = CHR$(0) + "H" AND y > 0 THEN y = y - 1
IF tt$ = CHR$(0) + "P" AND y < 2 THEN y = y + 1
IF tt$ = "-" THEN C(y) = 0
IF tt$ = "+" THEN C(y) = 63
LOOP UNTIL tt$ = " "
L'instruction SCREEN 12 passe en mode graphique
pour pouvoir se servir de l'instruction PALETTE.
Cette dernière fixe les valeurs RGB de 3 couleurs : la couleur de fond 0 est
un gris de valeurs (50,50,50), la couleur d'écriture 5 le noir (0,0,0), et
enfin, la couleur observée a pour valeurs (C(0),C(1),C(2))
'TOUCHES.BAS
'Créé le Samedi 19 octobre par Frédéric WANG.
'Ce petit jeu permet de tester votre agilité au clavier.
RANDOMIZE TIMER
Temps = TIMER
DO
CLS
c$ = CHR$(97 + RND * 25)
LOCATE 2, 1: PRINT "Appuyez sur la touche «"; c$; "»"
LOCATE 1, 15: PRINT "Nombre de points:"; Pts
Sec = 5
DO
LOCATE 1, 1: PRINT "Temps:"; Sec
GOSUB VerifTemps
TT$ = INKEY$
IF TT$ = c$ THEN Pts = Pts + Sec: EXIT DO
LOOP WHILE Sec > 0
LOOP WHILE Sec > 0
CLS
PRINT "Votre score:"; Pts
END
VerifTemps:
IF TIMER - Temps >= 1 THEN Sec = Sec - 1: Temps = TIMER
RETURN
' POURCENT.BAS (provient du site « Maths, Informatique, Jeux »
' http://maths-informatique-jeux.chez-alice.fr)
'
' Programmé le 13 Juillet 2004 par Frédéric WANG (FWSmail35@aol.com)
' Ce programme montre comment faire une barre remplie selon un certain
' pourcentage. Cela peut servir pour comme barre de chargement, de barre de
' de vie de personnage (pour un jeu) ou tout autre barre de ce genre...
SCREEN 13
RANDOMIZE TIMER
longueur% = 200 ' Longueur de la barre
t% = RND * 100 ' Pourcentage de remplissage
DO
LINE (49, 69)-(51 + longueur%, 81), 39, BF
IF t% THEN LINE (50, 70)-(50 + longueur% * t% / 100, 80), 43, BF
LOCATE 12, 10: PRINT USING "Pourcentage : ### %"; t%
LOCATE 14, 4: PRINT "Réglez le pourcentage avec - et +"
DO
tt$ = INKEY$
IF tt$ = "-" AND t% > 0 THEN t% = t% - 1
IF tt$ = "+" AND t% < 100 THEN t% = t% + 1
LOOP WHILE tt$ = ""
LOOP UNTIL tt$ = " "
' HASARD.BAS (provient du site « Maths, Informatique, Jeux »
' http://maths-informatique-jeux.chez-alice.fr)
'
' Programmé en 2002 par Frédéric WANG (FWSmail35@aol.com)
' Dernière mise à jour : Mardi 13 Juillet 2004
' Ce programme montre un exemple d'utilisation du hasard.
SCREEN 12
RANDOMIZE TIMER
Deplacement = 25
Eloignement = 220
CIRCLE (320, 240), Eloignement, 14
DO
LOCATE 1, 1: PRINT "-"; Deplacement; "+"; " "
TT$ = INKEY$
IF TT$ = "*" THEN RUN
IF TT$ = "+" OR TT$ = "-" THEN Deplacement = Deplacement + 44 - ASC(TT$)
IF Deplacement < 1 THEN Deplacement = 1
IF Deplacement > Eloignement THEN Deplacement = Eloignement
x = x + (RND - .5) * Deplacement
y = y + (RND - .5) * Deplacement
DO WHILE SQR((320 - x) ^ 2 + (240 - y) ^ 2) > Eloignement
x = RND * 640: y = RND * 480
PSET (x, y), 0
LOOP
IF RND * 20 < 1 THEN CC = RND * 6 + 9
LINE -(x, y), CC
LOOP WHILE TT$ <> " "