Qbasic - 2 -

 

 

 

Nous verons les commentaire et le dessiner


Les commentaires
Plus on avance en programmation, plus les programmes deviennent longs, plus ils deviennent complexes et moins on s'y retrouve. C'est pourquoi il existe les commentaires. Dans un commentaire, on peut écrire ce que l'on veut.
Il existe 2 façons d'écrire des commentaires :
REM
REM est l'abréviation de REMARK. On l'utise comme ceci :
REM Ceci est un commentaire, et je peux écrire ce que je veux
REM est présent depuis les premières versions de BASIC et a été conservé mais n'est pratiquement plus utilisé. On lui préfère l'apostrophe.
L'apostrophe (')
L'apostrophe fonctionne comme REM. Mais il a deux petits avantages :
Toujours la loi du moindre effort : une touche à presser pour l'apostrophe, contre trois pour REM.
Avec l'apostrophe, on peut écrire des commentaires en fin de ligne :
CLS ' Cette instruction efface l'écran
PRINT "7 + 9 ="; ' Celle-ci affiche 7 + 9 =
PRINT 7 + 9 ' Quand à celle là, elle effectue l'opération 7 + 9 et affiche le résultat.Dessiner
Pour l'instant, nous avons utilisé exclusivement le mode texte. Ce mode est très limité est ne permet pas d'exploiter à 100% les capacités graphiques offertes par QBasic. En QBasic, il existe 12 mode d'écran (0 à 13, sauf 5 et 6).
L'instruction SCREEN
L'instruction SCREEN permet de passer d'un mode d'écran à un autre. Le mode d'écran par défaut est le 0, c'est à dire le mode texte. Voici les differents mode possibles : MODES D'ECRAN Mode d'écran Résolution (en pixels) Couleurs Texte Adaptateurs graphiques
0 Mode texte uniquement 16 40 x 25, 40 x 43, 40 x 50, 80 x 25, 80 x 43, ou 80 x 50 MDPA, CGA, Hercules, Olivetti, EGA, VGA ou MCGA
1 320 x 200 4 40 x 25 CGA, EGA, VGA ou MCGA
2 640 x 200 2 80 x 25 CGA, EGA, VGA ou MCGA
3 720 x 348 1 80 x 25 Hercules, Olivetti ou AT&T
4 640 x 400 1 80 x 25 Hercules, Olivetti ou AT&T
7 320 x 200 16 40 x 25 EGA ou VGA
8 640 x 200 16 80 x 25 EGA ou VGA
9 640 x 350 16 80 x 25, ou 80 x 43 EGA ou VGA
10 640 x 350 4 80 x 25, ou 80 x 43 Ecran monochrome
11 640 x 480 2 80 x 30, ou 80 x 60 VGA ou MCGA
12 640 x 480 16 80 x 30, ou 80 x 60 VGA
13 320 x 200 256 40 x 25 VGA ou MGCA

L'instruction WIDTH
Avant d'entrer de plein fouet dans le dessin, une dernière remarque concernant le texte. Vous aurez remarquez que dans la colonne 'Texte' du tableau ci-dessus, il arrive qu'il y est plusieurs possibilités de résolution pour le mode texte.
Par exemple, pour le mode 0 (le plus riche), si on avait voulu un écran de 80 colonnes et de 50 lignes, on aurrait écrit:
SCREEN 0 ' Passage au mode d'écran 0
WIDTH 80, 50 ' 80 colonnes et 50 lignes
Les couleurs
Il existe 16 couleurs en QBasic (de 0 à 15). COULEURS Couleur Numéro Modes d'écran
Noir 0 0, 1, 2, 7, 8, 9, 11, 12, et 13
Bleu 1 0, 7, 8, 9, 12, et 13
Vert 2 0, 7, 8, 9, 12, et 13
Cyan 3 0, 7, 8, 9, 12, et 13
Rouge 4 0, 7, 8, 9, 12, et 13
Violet 5 0, 7, 8, 9, 12, et 13
Marron 6 0, 7, 8, 9, 12, et 13
Blanc 7 0, 7, 8, 9, 12, et 13
Gris 8 0, 7, 8, 9, 12, et 13
Bleu clair 9 0, 7, 8, 9, 12, et 13
Vert clair 10 0, 7, 8, 9, 12, et 13
Cyan clair 11 0, 1, 7, 8, 9, 12, et 13
Rouge clair 12 0, 7, 8, 9, 12, et 13
Violet clair 13 0, 1, 7, 8, 9, 12, et 13
Jaune 14 0, 7, 8, 9, 12, et 13
Blanc brillant 15 0, 1, 2, 7, 8, 9, 11, 12, et 13

Pour changer la couleur, on utilise l'instruction COLOR. Suivant le mode d'écran sélectionné, cette instruction peut avoir plusieurs arguments. Pour simplifier, voici un tableau regroupant les différents cas: L'INSTRUCTION COLOR Mode d'écran Syntaxe
0 COLOR Texte, Fond, Cadre
1 COLOR Fond
4, 12 et 13 COLOR Texte
7, 8, 9 et 10 COLOR Texte, Fond


Voici quelques exemples d'applications :

Mode 0 :
SCREEN 0
COLOR 0, 5, 4 ' Texte Noir, Fond Violet, Cadre Rouge
PRINT "Ceci est un texte"Mode 1 :
SCREEN 1
COLOR 1 ' Fond Bleu
PRINT "Ceci est un texte"Mode 4, 12 et 13 :
SCREEN 12
COLOR 2 ' Texte Vert
PRINT "Ceci est un texte"Mode 7, 8, 9 et 10 :
SCREEN 7
COLOR 8, 1 ' Texte Gris, Fond Bleu
PRINT "Ceci est un texte"Il est très facile de faire clignoter un texte. Il suffit pour cela d'ajouter 16 à la couleur séléctionnée.
Exemple :
SCREEN 0
CLS
FOR i = 0 to 15
COLOR i
PRINT "Couleur N°"; i;
COLOR i + 16
PRINT "Clignotement correspondant"
NEXT i
Les instructions PSET et PRESET
Ces instructions permettent de tracer un point sur l'écran. Leur syntaxe est très simple :
PSET (X, Y), [Couleur]
PRESET (X, Y), [Couleur]
Utilisées ainsi, ces deux instructions sont équivalentes. Mais si l'on ne spécifie pas le dernier argument (Les arguments entre crochets [ et ] sont TOUJOURS faculatatifs) qui indique la couleur a utiliser, PSET utilise la couleur de premier plan et PRESET la couleur d'arrière plan. Ca peut être utile pour réaliser une animation sommaire. Et oui, pour animer un graphisme, il faut d'abord effacer ce graphisme, puis le redéssiner ailleur. Nous verrons un exemple plus tard. Pour l'instant, observez ce magnifique ciel étoilé scintillent, grâce à l'utilisation de PSET, PRESET, RND, DO...LOOP :
SCREEN 1 ' 320 x 200 pixels
CLS

DO
PSET (RND * 320, RND * 200) ' On dessine un point au hasard
FOR i = 0 TO 100 ' On efface plusieurs point pour un ciel harmonieux
PRESET (RND * 320, RND * 200) ' On efface un point au hasard
NEXT i
LOOP
Pour quitter ce programme, tapez CTRL + PAUSE.
Lignes et rectangles (instruction LINE)
Pour tracer une ligne, on utilise l'instruction LINE. Voici sa syntaxe :
LINE (X1, Y1)-(X2, Y2)
Les coordonnées X1 et Y1 représente la première extrémité de la ligne. Les coordonnées X2 et Y2 corespondent quand à elles à la deuxième extrémité de la ligne. L'exemple suivant trace une ligne oblique, au centre de l'écran :
SCREEN 12
CLS
LINE (50, 50)-(590, 430) ' Ligne
Pour déterminer la couleur de la ligne, on spécifie le numéro de la couleur. Par exemple, pour une ligne rouge :
SCREEN 12
CLS
LINE (50, 50)-(590, 430), 4 ' Ligne Rouge
Mais l'instruction LINE ne s'arrête pas là. Elle permet de tracer des rectangle en mentionnant la lettre B (pour Box) comme argument. Le rectangle tracé aura alors pour premier coin X1 et Y1, et comme coin opposé X2 et Y2. Autrement dit, il aura pour diagonale la ligne qui aurrait été tracée sans B :
SCREEN 12
CLS
LINE (50, 50)-(590, 430), 4, B ' Rectangle Rouge
Maintenant, pour tracer un rectangle plein, on rajoute après le B, la lettre F (pour Full. Ceci aura pour effet de remplir le rectangle avec la couleur choisie :
SCREEN 12
CLS
LINE (50, 50)-(590, 430), 4, BF ' Rectangle Rouge Rempli
Un dernier argument permet de spécifier l'aspect de la ligne. Il est codé sur 16 bits. Le fonctionnement est assez complexe. Lisez si vous voulez.
Qui dit bit dit BINAIRE. Un entier de 16 bits, c'est en fait 16 chiffres, soit 0, soit 1, l'un à coté de l'autre. Par exemple 1010101010101010 est un nombre binaire.
Pour définit l'aspect de la ligne, QBasic regarde la position de chaque 1 ou 0 de gauche à droite. Si c'est un 1, un point est dessiné. Si c'est un 0, il n'y en a aucun.
SCREEN 12
CLS
LINE (50, 50)-(590, 430), , , 3 ' Ligne en pointillés (3 = 011 en binaire)
Tracer un cercle (CIRCLE)
Pour tracer un cercle sur l'écran, on utilise l'instruction CIRCLE dont la syntaxe est la suivante :
CIRCLE (X, Y), Rayon
X et Y représentent le centre du cercle. Rayon est quand à lui le rayon du cercle. L'exemple suivant trace un cercle de 50 pixels au centre de l'écran en mode d'écran 12 :
SCREEN 12
CLS
CIRCLE (320, 240), 50 ' Un cercle
Comme pour une ligne, on peut changer la ligne en donnat le numéro de la couleur correspondante :
SCREEN 12
CLS
CIRCLE (320, 240), 50, 14 ' Un cercle jaune
Et à partir d'ici, comme pour une ligne, il y a des tas d'arguments permettant de triturer ce cercle.
On peut, par exemple, au lieu d'un cercle, tracer un arc. On spécifie pour celà l'angle de départ de l'arc, puis la fin.

PETIT RAPEL DE MATHEMATIQUES Les mesures d'angles doivent être exprimées en radians.
360° = 2 x PI rads
Donc, pour convertir des degrès en radians, il faut effectuer l'opération suivante :
Radians = 2 * PI / 360 * Degres
En simplifiant l'équation :
Radians = PI / 180 * Degres

De plus, on adopte le sens trigonométrique (anti-horaire). Et comme dans un repère ortho-normé, on part de la partie X positif et Y positif.


Donc, si on suit scrupuleusement les rêgles énoncées, pour tracer le quart supérieur droit de notre cercle, on écrit ceci :
CONST PI = 3.14159265458 ' On définit la constante PI
SCREEN 12
CLS
CIRCLE (320, 240), 50, 14, 0, PI / 180 * 90 ' Un quart de cercle jaune
Le dernier argument permet de dessiner une ellipse. Cet argument est en fait le rapport du rayon Y sur le rayon X. Cette exemple transforme notre cercle de départ en élipse :
SCREEN 12
CLS
CIRCLE (320, 240), 50, 14, , , .5 ' Une ellipse jaune
DRAW
Une dernière méthode graphique consiste à utilisé l'instruction DRAW. Cette instruction remplace en quelque sortes ce qu'on appelait la tortue dans d'anciennes (mais alors anciennes!) versions de langages dont certains ont malheuresement disparus aujourd'hui (malheuresement car on pouvait tout de même bien s'amuser!).
Pour utiliser DRAW, on lui associe tout simplement une chaine de caractères où se trouve les instructions à executer, à la manière de l'instruction PLAY pour le son.

D[n] Déplace le curseur vers le bas de n unités.
E[n] Déplace le curseur vers le haut et la droite de n unités.
F[n] Déplace le curseur vers le bas et la droite de n unités.
G[n] Déplace le curseur vers le bas et la gauche de n unités.
H[n] Déplace le curseur vers le haut et la gauche de n unités.
L[n] Déplace le curseur vers la gauche de n unités.
M+x,y Place le curseur sur le point x,y.
R[n] Déplace le curseur vers la droite de n unités.
U[n] Déplace le curseur vers le haut de n unités.
[B] Préfixe facultatif qui déplace le curseur sans tracé.
[N] Préfixe facultatif qui trace et retourne le curseur à sa position initiale.
An Effectue une rotation de n * 90 degrés (n peut être 0, 1, 2, ou 3).
Cn Définit la couleur de tracé (n est un attribut).
Pn1,n2 Définit les couleurs de remplissage et de bordure d'un objet (n1=couleur de remplissage, n2=couleur de bordure)
Sn Modifie l'échelle en définissant la longueur d'une unité de mouvement de curseur. La valeur par défaut de n est 4, ce qui équivaut à un pixel.
TAn Rotation de n degrés (de -360 à 360).
L'exemple suivant trace un triangle réctangle :
SCREEN 1
CLS
' Pour être clair, on utilise la capacité qu'a QBasic à concaténer les chaines
' de caractères
Triangle$ = Triangle$ + "R15" ' 15 unités à droites
Triangle$ = Triangle$ + "H15" ' 15 unités en haut à gauche
Triangle$ = Triangle$ + "D15" ' 15 untités vers le bas
DRAW Triangle$
Le remplissage
Ormis l'instruction LINE qui permet de remplir facilement un rectangle avec la couleur choisie, on peut utiliser l'instruction PAINT pour remplir facilement une surface avec une couleur, ce qui est très utile pour remplir un cercle créé avec l'instruction CIRCLE.
La syntaxe de cette instruction est :
PAINT (X, Y), Couleur
Il y a d'autres arguments, mais il ne sont guère utiles...
Pour créer une cible, on écrira :
SCREEN 12 ' 640 x 480 pixels
CLS

Couleur = 14 ' Définition de la couleur de remplissage
FOR i = 200 TO 0 STEP -50
IF Couleur = 14 THEN Couleur = 4 ELSE Couleur = 14 ' Changement de la couleur (Jaune ou rouge)
CIRCLE (320, 240), i, Couleur ' On déssine le cercle...
PAINT (320, 240), Couleur ' ...puis on le remplit
NEXT i

Suite Qbasic - 3 -

kevb

 

 

 

 

 

 

 

 


Retour a la page d'acceuil

Hiperboyy web site - Tous droits réservés -

   mots-clés du site : , emulateur , emulation , football ,canal +, decodeur,pro evolution soccer 2 , hack, matrix ,DVD, paranormal , windows , truc , astuces , hack,photoshop , regie , dragon ball , d , dragon ball gt , dragon ball x c++, cpp, c plus plus, 007, nintendo,simpson, playstation,PS2, play1, play 2,xbox , epsx, emul, emulation, nintendo64, dreamcast, rom, roms, Jeux, warez (iso, divx, gamez, appz), discussion (chat, forum...), skins, videos,championnat , Emulation (64, playstation 1, playstation 2, gba (game boy advance), nintendo, sega, neo-geo...), aide au webmasters, nouveautees, ps, dream, mangas, hentai, sakura, doujins, manga, free hentai, gratuit, photos, free,methodes pour le hacking , sex, lesbiennes, blondes,pétase , brunes, doujins, sexe, hacking, porno ,underground, hacker, salope ,warez, azpr, crack, piaratage,emul nintendo ,pirate, trojan, intrusion, warez, coupe des confederations , DIVX, game, games, jeux, iso, isoz, gamez, xxx, discussion, chat, forum, appz, aide, webmaster, design, actualité, actualite, films, cinemas, docs, pictures, images, liens, film, histoires,histoire de france , MP3, musique, sounds, hacking, cours,cradle of filth , e-zine, e-zinez, trucs, astuces, soluces, contrefacons, ordi, ordinateur, disquettes, bin, norton, windaube, divx , buffer owerflow , linux , unix , noyau , kernel , illegal , de la daube , pro evolution soccer , ip, caramail, smiley, yescard, telnet, bloofer, spoufer, password, dvd, zonage, dezonage, divx, mp3, midi, music, musique, zic, images, photos, videos, movie, pictures, humour, vidéo drole, faux virus, virus, faille caramail, cs, sof2, top site, Xp, skyrock,forums, radio, fun radio, nrj,, drôle, foutage de gueule, jeux, flash, 3d, java, scripts, conseil, forum, aide, help, informatique, programme, programation, webmaster, software, freeware, shreware, utilitaire, add ons, telecharger, download, upload, ftp, free, gratuit, canal, cheat, codes, tips, gsm, sms, logos, sonneries, half life, counter strike, quake, mail, bombe, nuke, nuclear, web , courier, info, infos, ilegal, crack, cracks, craking,phreaking , cryptographie , booster , pc , booster pc ,windows,kevin mitnik , gran turismo a-spec , dragon ball budokai , roms playstation , lamerz , lamer , appz , episodes de dbz , episodes dbz , roms dbz , emulation , hebergement gratuit , nom de domaine gratuit , marilyn manson , metallica , Muse , muse , graveur , comment graver un cd , dvd , spam , spamming , les langages de programmation , programmation , java script , coupe du monde , doupe des confederations .