[Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
3 participants
Page 1 sur 1
[Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
4)Apprendre les conditions
a)Avec des si, on peut refaire le monde
C'est presque la même chose en programmation, avec des si on crée notre monde.
Et pour cela, on a les commandes IF, THEN, ELSE qui veut dire si, alors, sinon.
On place d'abord notre IF suivi de notre condition puis de THEN et du résultat si
la condition est vrai, on peut rajouter facultativement à la suite un ELSE si la
condition est fausse.
En résumé : Si(IF) la condition est vrai alors(THEN) faire ceci sinon(ELSE) faire cela
Nous avons aussi un cas particulier qui remplace une série de IF, il s'agit d'utiliser
la commande ON.
Lorsque une variable en condition va croître de 1 pour aller à un label différent à chaque
fois, on utilise ON au lieu de IF de cette manière :
Cela évite d'écrire la série de IF qui suit:
b)Les commandes de conditions
Trois commandes nous seront utiles pour écrire des conditions:
AND qui veut dire "et", vérifie si les conditions sont vraies.
Si une des deux était fausse, le texte ne se serait pas affiché.
OR qui veut dire "ou", vérifie si au moins une condition est vraie.
Il faudrait que les conditions soient toutes fausses pour que le texte ne s'affiche pas.
XOR qui veut dire "seulement ou", vérifie si une seule condition est vraie.
Le texte ne s'afficherait pas si toutes les conditions étaient fausses ou que
plus d'une condition soit vraie.
On peut mélanger ces trois commandes dans les conditions:
c)Vrai ou Faux
Je viens d'écrire que des conditons pouvaient vraies ou fausses, et bien il existe
les commandes TRUE qui veut dire vrai et FALSE qui veut dire faux.
Ce sont en fait deux variables systèmes qui auront toujours pour valeur 1 pour TRUE
et 0 pour FALSE.
Du coup on pourrait écrire:
Cela reviendrait au même d'écrire :
d)Maintenant faites des tests !!!
Les conditons sont les règles de votre programme, essentiel à tout programme qui se respecte.
Et vous verrez que par la suite, vos conditions vont s'étoffer !!
Mais pour l'instant, faites des test de ses commandes pour vous familiariser avec.
5)Apprendre l'interactivité
a)Commentaires
Avant d'entrer dans le vif du sujet, laissez moi vous présenter la manière d'écrire un commentaire
dans un programme. Le commentaire sera une annotation que le programme ignorera et servira
principalement à vous souvenir de ce qu'une partie de votre code veut dire.
Pour cela une simple apostrophe en début de phrase, permet de dire au programme que c'est un commentaire.
b)Interactions textuelles
Deux commandes vont nous demander d'écrire un texte en affichant le clavier, il s'agit de INPUT et LINPUT.
INPUT sera suivi d'une question sans point d'interrogation entre guillemets, puis d'un point virgule et
d'une variable numérique ou alphanumérique qui enregistrera notre réponse.
écrive une réponse et qu'on appuie sur Enter du clavier. REP enregistrera votre réponse et le programme
poursuivra sa lecture.
LINPUT est quasi identique à INPUT, à la différence qu'il n'accepte que les variables alphanumériques,
n'affiche pas de ? tout seul et que les réponses vides ne le dérangent pas.
c)Interactions boutons
Appuyer sur un bouton, c'est bien, faire en sorte que le programme le sache, c'est mieux.
On utilise principalement la commande BUTTON() qui agit comme une variable en prenant pour valeur celle
du bouton de votre console quand il est enfoncé.
Voici les différentes valeurs des boutons:
Aucun: 0
Haut: 1
Bas: 2
Gauche: 4
Droite: 8
A: 16
B: 32
X: 64
Y: 128
L: 256
R: 512
Start:1024
Pour mieux les retenir, vous remarquerez qu'on multiplie à chaque fois par 2.
BUTTON() pourra avoir donc ces valeurs ainsi que l'addition de ces valeurs lorsque plusieurs
boutons sont enfoncés.
BUTTON() possède 4 modes d'utilisation allant de 0 à 3 que l'on activera en l'inscrivant entre
les parenthèses.
d)BUTTON Mode 0 ou par défaut
Le mode 0 de BUTTON() est le mode par défaut, ce qui veut dire qu'on n'est pas obligé d'écrire 0
entre les parenthèses de BUTTON().
Il signifie que BUTTON() prendra la valeur du bouton tant qu'il reste enfoncé.
On emploie souvent ce mode pour les déplacements.
e)BUTTON Mode 1
Le mode 1 de BUTTON() est désactivé par défaut, il signifie que BUTTON(1) prendra la valeur du
bouton un certain nombre de fois tant qu'il est enfoncé. Cela peut être vu comme un mode turbo.
Pour que BUTTON(1) puisse être utilisé, il faut utilisé la commande BREPEAT.
BREPEAT sera suivi de trois nombres séparés par une virgule.
Le premier nombre sera l'identifiant du bouton :
Haut:0, Bas:1, Gauche:2, Droite:3, A:4, B:5, X:6, Y:7, L:8, R:9, Start:10
Le deuxième nombre sera le temps en 1/60ème de seconde à attendre avant que BUTTON prendra la valeur
du bouton pour la deuxième fois.
Le troisième nombre sera le temps d'intervalle en 1/60ème de seconde que BUTTON devra attendre
pour reprendre la valeur du bouton.
Pour désactiver BREPEAT, il suffira de l'utiliser qu'avec l'identifiant du bouton.
deux secondes réapparaître à intervalle régulier d'une demi-seconde.
VSYNC est donc la synchronisation verticale, permettant d'afficher une frame après l'autre.
Cela règle certain problème d'affichage. VSYNC est suivi du temps en 1/60ème de seconde.
Il ne fait que ralentir la puissance de la console pour que les frames s'affichent mieux au lieu de se
chevaucher. (frame est équivalent à image)
f)BUTTON Mode 2
BUTTON(2) est pratiquement très peu utilisé car la commande BTRIG() fait exactement la même chose que lui.
Le mode 2 ou BTRIG() signifie que BUTTON(2) ou BTRIG() prendra la valeur du bouton au moment où on appuie
dessus.
On emploie souvent ce mode pour l'animation.
g)BUTTON Mode 3
Le mode 3 de BUTTON() signifie que BUTTON(3) prendra la valeur du bouton qu'une fois celui-ci relâché.
h)Intéraction tactile
Comme on le sait déjà, pour utiliser l'écran du bas il faut enlever le clavier et tout ce
qu'il y a autour avec PNLTYPE "OFF".
Pour que le programme sache qu'on touche l'écran, il faut utiliser la commande TCHST qui est une
variable système qui prend pour valeur 1 quand c'est touché et 0 quand on ne touche pas l'écran.
Avec elle, on a deux autres variables système TCHX et TCHY qui prendront pour valeur les
coordonnées X et Y en pixels (c'est à dire de 0 à 255 et de 0 à 191).
Dernière variable système pour l'écran tactile : TCHTIME.
Elle prend pour valeur le temps en 1/60ème de seconde que l'écran est touché.
commencera donc à 120.
6)Interrogation 1 : Faire un premier programme simple des acquis
a)Apprenons d'abord à sauvegarder et à charger
On utilise pour sauvegarder un programme, la commande SAVE suivi du nom du programme entre guillemets.
Pour charger un programme, on utilise la commande LOAD suivi du nom du programme entre guillemets.
Le nom du programme ne doit pas dépasser 8 caractères.
b)Terminer un programme
Vous devez déjà savoir que pour arrêter un programme, il suffit d'appuyer sur la touche select.
Mais il y a aussi une commande qui peut le faire, il s'agit de END.
END terminera donc le programme dès qu'il l'aura lu.
c)L'énoncé de l'interro 1
Tout le monde assis! Sortez vos consoles et lancez Petit Computer !
Et personne copie sur son voisin, interrogation surprise, qui était prévue en fait.
Vous allez essayer de créer votre premier vrai programme, en utilisant le maximum de commandes apprises.
Pour cette première interro, 2 problèmes !
Problème 1:
vous allez faire un questionnaire vous demandant de vous décrire physiquement.
Suivant vos réponses, votre portrait s'affichera en caractères sur l'écran du bas.
Deux questions obligatoires vous demanderont votre nom et votre âge qui seront eux aussi affichés sur l'écran.
Le questionnaire pourra être à choix multiples, et devra comporter moins de 10 questions.
Problème 2:
Vous allez faire avancer avec les touches et avec l'écran tactile, un personnage en caractère(s) sur
l'écran du haut. Son but sera de ramasser 7 objets par terre (pomme, coeur ou lettres) pour changer
de couleur. Une fois les 7 objets ramassés, un arc en ciel appraîtra et finira le jeu.
Menu titre obligatoire (Titre par défaut: Les 7 objets du ciel).
Si vous réussissez à faire un des deux programmes sans bugs, vous pouvez passer à la suite du guide.
< PARTIE 3 - SOMMAIRE - PARTIE 5 >
a)Avec des si, on peut refaire le monde
C'est presque la même chose en programmation, avec des si on crée notre monde.
Et pour cela, on a les commandes IF, THEN, ELSE qui veut dire si, alors, sinon.
On place d'abord notre IF suivi de notre condition puis de THEN et du résultat si
la condition est vrai, on peut rajouter facultativement à la suite un ELSE si la
condition est fausse.
En résumé : Si(IF) la condition est vrai alors(THEN) faire ceci sinon(ELSE) faire cela
- Code:
A=2
IF A==1 THEN ?"C'est vrai?"
IF A==2 THEN ?"C'est vrai." ELSE ?"C'est faux!"
IF A==3 THEN ?"C'est vrai..." ELSE ?"C'est faux."
Nous avons aussi un cas particulier qui remplace une série de IF, il s'agit d'utiliser
la commande ON.
Lorsque une variable en condition va croître de 1 pour aller à un label différent à chaque
fois, on utilise ON au lieu de IF de cette manière :
- Code:
A=2
ON A GOTO @MENU0, @MENU1, @MENU2, @MENU3
Cela évite d'écrire la série de IF qui suit:
- Code:
A=2
IF A==0 THEN GOTO@MENU0
IF A==1 THEN GOTO@MENU1
IF A==2 THEN GOTO@MENU2
IF A==3 THEN GOTO@MENU3
b)Les commandes de conditions
Trois commandes nous seront utiles pour écrire des conditions:
AND qui veut dire "et", vérifie si les conditions sont vraies.
- Code:
A=1:B=2
IF A==1 AND B==2 THEN ?"Les deux conditions sont remplies."
Si une des deux était fausse, le texte ne se serait pas affiché.
OR qui veut dire "ou", vérifie si au moins une condition est vraie.
- Code:
A=1:B=2
IF A==0 OR B==2 THEN ?"Au moins une condition est remplie."
IF A==1 OR B==5 THEN ?"Au moins une condition est remplie."
IF A==1 OR B==2 THEN ?"Au moins une condition est remplie."
Il faudrait que les conditions soient toutes fausses pour que le texte ne s'affiche pas.
XOR qui veut dire "seulement ou", vérifie si une seule condition est vraie.
- Code:
A=1:B=2
IF A==0 XOR B==2 THEN ?"Une seule condition est remplie."
IF A==1 XOR B==5 THEN ?"Une seule condition est remplie."
Le texte ne s'afficherait pas si toutes les conditions étaient fausses ou que
plus d'une condition soit vraie.
On peut mélanger ces trois commandes dans les conditions:
- Code:
A=1:B=2:C=5:D=7
IF (A==1 OR B==2) AND (C==5 XOR D==6) THEN ?"Le texte s'affiche."
c)Vrai ou Faux
Je viens d'écrire que des conditons pouvaient vraies ou fausses, et bien il existe
les commandes TRUE qui veut dire vrai et FALSE qui veut dire faux.
Ce sont en fait deux variables systèmes qui auront toujours pour valeur 1 pour TRUE
et 0 pour FALSE.
Du coup on pourrait écrire:
- Code:
A=1:B=2
IF (A==0 AND B==2)==FALSE THEN ?"Le texte s'affiche"
Cela reviendrait au même d'écrire :
- Code:
A=1:B=2
IF (A==0 AND B==2)==0 THEN ?"Le texte s'affiche"
d)Maintenant faites des tests !!!
Les conditons sont les règles de votre programme, essentiel à tout programme qui se respecte.
Et vous verrez que par la suite, vos conditions vont s'étoffer !!
Mais pour l'instant, faites des test de ses commandes pour vous familiariser avec.
5)Apprendre l'interactivité
a)Commentaires
Avant d'entrer dans le vif du sujet, laissez moi vous présenter la manière d'écrire un commentaire
dans un programme. Le commentaire sera une annotation que le programme ignorera et servira
principalement à vous souvenir de ce qu'une partie de votre code veut dire.
Pour cela une simple apostrophe en début de phrase, permet de dire au programme que c'est un commentaire.
- Code:
?"Je suis lu par le programme."
'Je suis un commentaire
'?"Moi aussi j'en suis un"
?"Deux commentaires sont passés mais vous n'avez rien vu!" 'Haha, je suis un commentaire et on ne me voit pas
b)Interactions textuelles
Deux commandes vont nous demander d'écrire un texte en affichant le clavier, il s'agit de INPUT et LINPUT.
INPUT sera suivi d'une question sans point d'interrogation entre guillemets, puis d'un point virgule et
d'une variable numérique ou alphanumérique qui enregistrera notre réponse.
- Code:
INPUT "Combien font 2+1";REP
écrive une réponse et qu'on appuie sur Enter du clavier. REP enregistrera votre réponse et le programme
poursuivra sa lecture.
LINPUT est quasi identique à INPUT, à la différence qu'il n'accepte que les variables alphanumériques,
n'affiche pas de ? tout seul et que les réponses vides ne le dérangent pas.
- Code:
LINPUT "Comment t'appelles-tu ?";NOM$
?"Enchantez ";NOM$
c)Interactions boutons
Appuyer sur un bouton, c'est bien, faire en sorte que le programme le sache, c'est mieux.
On utilise principalement la commande BUTTON() qui agit comme une variable en prenant pour valeur celle
du bouton de votre console quand il est enfoncé.
Voici les différentes valeurs des boutons:
Aucun: 0
Haut: 1
Bas: 2
Gauche: 4
Droite: 8
A: 16
B: 32
X: 64
Y: 128
L: 256
R: 512
Start:1024
Pour mieux les retenir, vous remarquerez qu'on multiplie à chaque fois par 2.
BUTTON() pourra avoir donc ces valeurs ainsi que l'addition de ces valeurs lorsque plusieurs
boutons sont enfoncés.
BUTTON() possède 4 modes d'utilisation allant de 0 à 3 que l'on activera en l'inscrivant entre
les parenthèses.
d)BUTTON Mode 0 ou par défaut
Le mode 0 de BUTTON() est le mode par défaut, ce qui veut dire qu'on n'est pas obligé d'écrire 0
entre les parenthèses de BUTTON().
Il signifie que BUTTON() prendra la valeur du bouton tant qu'il reste enfoncé.
- Code:
@BOUCLE
IF BUTTON()==1 THEN WAIT 5:?"Je suis enfoncé !" ELSE CLS
GOTO @BOUCLE
On emploie souvent ce mode pour les déplacements.
e)BUTTON Mode 1
Le mode 1 de BUTTON() est désactivé par défaut, il signifie que BUTTON(1) prendra la valeur du
bouton un certain nombre de fois tant qu'il est enfoncé. Cela peut être vu comme un mode turbo.
Pour que BUTTON(1) puisse être utilisé, il faut utilisé la commande BREPEAT.
BREPEAT sera suivi de trois nombres séparés par une virgule.
Le premier nombre sera l'identifiant du bouton :
Haut:0, Bas:1, Gauche:2, Droite:3, A:4, B:5, X:6, Y:7, L:8, R:9, Start:10
Le deuxième nombre sera le temps en 1/60ème de seconde à attendre avant que BUTTON prendra la valeur
du bouton pour la deuxième fois.
Le troisième nombre sera le temps d'intervalle en 1/60ème de seconde que BUTTON devra attendre
pour reprendre la valeur du bouton.
Pour désactiver BREPEAT, il suffira de l'utiliser qu'avec l'identifiant du bouton.
- Code:
BREPEAT 4,120,30 'activation du mode turbo pour le button A
@BOUCLE
IF BUTTON(1)==16 THEN ?"Turbo" ELSE ?"Attente..."
IF BUTTON()==1 THEN BREPEAT 4
IF BUTTON()==2 THEN BREPEAT 4,120,30
VSYNC 1 'Commande ralentissant la puissance pour pouvoir finir d'afficher sur l'écran une frame après l'autre.
GOTO @BOUCLE
deux secondes réapparaître à intervalle régulier d'une demi-seconde.
VSYNC est donc la synchronisation verticale, permettant d'afficher une frame après l'autre.
Cela règle certain problème d'affichage. VSYNC est suivi du temps en 1/60ème de seconde.
Il ne fait que ralentir la puissance de la console pour que les frames s'affichent mieux au lieu de se
chevaucher. (frame est équivalent à image)
f)BUTTON Mode 2
BUTTON(2) est pratiquement très peu utilisé car la commande BTRIG() fait exactement la même chose que lui.
Le mode 2 ou BTRIG() signifie que BUTTON(2) ou BTRIG() prendra la valeur du bouton au moment où on appuie
dessus.
- Code:
@BOUCLE
IF BTRIG()==1 THEN ?"Haut"
IF BUTTON(2)==2 THEN ?"Bas"
GOTO @BOUCLE
On emploie souvent ce mode pour l'animation.
g)BUTTON Mode 3
Le mode 3 de BUTTON() signifie que BUTTON(3) prendra la valeur du bouton qu'une fois celui-ci relâché.
- Code:
@BOUCLE
IF BUTTON(3)==2 THEN ?"Bas"
GOTO @BOUCLE
h)Intéraction tactile
Comme on le sait déjà, pour utiliser l'écran du bas il faut enlever le clavier et tout ce
qu'il y a autour avec PNLTYPE "OFF".
Pour que le programme sache qu'on touche l'écran, il faut utiliser la commande TCHST qui est une
variable système qui prend pour valeur 1 quand c'est touché et 0 quand on ne touche pas l'écran.
Avec elle, on a deux autres variables système TCHX et TCHY qui prendront pour valeur les
coordonnées X et Y en pixels (c'est à dire de 0 à 255 et de 0 à 191).
- Code:
PNLTYPE "OFF"
CLS
@BOUCLE
IF TCHST THEN ?"X:";TCHX,"Y:";TCHY 'J'ai pas mis de ==1 dans la condition, devinez pourquoi :p
IF TCHST AND TCHX>127 THEN WAIT 5:LOCATE TCHX/8,TCHY/8:?"X" 'J'ai mis divisé par 8, devinez pourquoi :p
IF TCHST AND TCHX<128 THEN WAIT 5:LOCATE TCHX/8,TCHY/8:?"O"
GOTO @BOUCLE
Dernière variable système pour l'écran tactile : TCHTIME.
Elle prend pour valeur le temps en 1/60ème de seconde que l'écran est touché.
- Code:
PNLTYPE "OFF"
CLS
@BOUCLE
IF TCHST AND TCHTIME>120 THEN LOCATE 0,0:?"Temps:";TCHTIME;" "
GOTO @BOUCLE
commencera donc à 120.
6)Interrogation 1 : Faire un premier programme simple des acquis
a)Apprenons d'abord à sauvegarder et à charger
On utilise pour sauvegarder un programme, la commande SAVE suivi du nom du programme entre guillemets.
Pour charger un programme, on utilise la commande LOAD suivi du nom du programme entre guillemets.
Le nom du programme ne doit pas dépasser 8 caractères.
- Code:
SAVE"MON_JEU"
SAVE"PRG:MON_JEU" 'Deuxième manière de l'écrire en rajoutant PRG: pour spécifier que c'est un programme
LOAD"MON_JEU"
LOAD"PRG:MON_JEU",0 'On peut rajouter ,0 ou ,FALSE à la fin pour éviter d'avoir le message de confirmation
b)Terminer un programme
Vous devez déjà savoir que pour arrêter un programme, il suffit d'appuyer sur la touche select.
Mais il y a aussi une commande qui peut le faire, il s'agit de END.
END terminera donc le programme dès qu'il l'aura lu.
c)L'énoncé de l'interro 1
Tout le monde assis! Sortez vos consoles et lancez Petit Computer !
Et personne copie sur son voisin, interrogation surprise, qui était prévue en fait.
Vous allez essayer de créer votre premier vrai programme, en utilisant le maximum de commandes apprises.
Pour cette première interro, 2 problèmes !
Problème 1:
vous allez faire un questionnaire vous demandant de vous décrire physiquement.
Suivant vos réponses, votre portrait s'affichera en caractères sur l'écran du bas.
Deux questions obligatoires vous demanderont votre nom et votre âge qui seront eux aussi affichés sur l'écran.
Le questionnaire pourra être à choix multiples, et devra comporter moins de 10 questions.
Problème 2:
Vous allez faire avancer avec les touches et avec l'écran tactile, un personnage en caractère(s) sur
l'écran du haut. Son but sera de ramasser 7 objets par terre (pomme, coeur ou lettres) pour changer
de couleur. Une fois les 7 objets ramassés, un arc en ciel appraîtra et finira le jeu.
Menu titre obligatoire (Titre par défaut: Les 7 objets du ciel).
Si vous réussissez à faire un des deux programmes sans bugs, vous pouvez passer à la suite du guide.
< PARTIE 3 - SOMMAIRE - PARTIE 5 >
Dernière édition par J8B le Ven 4 Sep - 3:36, édité 1 fois
Re: [Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
"IF TCHST THEN ?"X:";TCHX,"Y:";TCHY 'J'ai pas mis de ==1 dans la condition, devinez pourquoi :p"
Parce que "if tchst" la condition est rempli quand l'écran est touché donc la condition deviens automatiquement 1 ( true ) pendant que l'écran n'est pas touché la condition est automatiquement à 0 ( false ), puis une valeur est affecté pour les tchX et tchY suivant l'endroit touché mais cette valeur n'a rien avoir avec le 0 ou le 1 de la condition!
Tchst verifie la condition ( true ou false) puis les tchx et tchy reçoive une valeur...
Tu as divisé par 8 parce que c'est la taille d'un caractère ou de ton sprit ou pour suivre un découpage de zone sur ton écran, éventuellement pour interagir depuis l'écran inférieur vers l'écran supérieur.
Parce que "if tchst" la condition est rempli quand l'écran est touché donc la condition deviens automatiquement 1 ( true ) pendant que l'écran n'est pas touché la condition est automatiquement à 0 ( false ), puis une valeur est affecté pour les tchX et tchY suivant l'endroit touché mais cette valeur n'a rien avoir avec le 0 ou le 1 de la condition!
Tchst verifie la condition ( true ou false) puis les tchx et tchy reçoive une valeur...
Tu as divisé par 8 parce que c'est la taille d'un caractère ou de ton sprit ou pour suivre un découpage de zone sur ton écran, éventuellement pour interagir depuis l'écran inférieur vers l'écran supérieur.
CounterClockWize- Messages : 72
Date d'inscription : 23/08/2013
Re: [Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
Champion Counter !!
Divisé par 8 c'est pour passer de la taille pixel à une taille caractère.
Divisé par 8 c'est pour passer de la taille pixel à une taille caractère.
Re: [Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
La division par 8 ne pose aucun problème à cause des virgules
Re: [Tutoriel]Guide du débutant - Partie 4 Conditions et Interactions
Pour afficher un caractère, les virgules vont être ignorées donc afficher un caractère à 9.75 revient à l'afficher à 9. On s'en apperçoit en faisant des tests
Sujets similaires
» [Tutoriel]Guide du débutant - Partie 2 Variables
» [Tutoriel]Guide du débutant - Partie 3 Label et boucles
» [Tutoriel]Guide du débutant de Petit Computer - Partie 5 Sprite
» [Tutoriel]Guide du débutant de Petit Computer - Partie 6 Background
» [Tutoriel]Guide du débutant de Petit Computer - Partie 7 Graphique
» [Tutoriel]Guide du débutant - Partie 3 Label et boucles
» [Tutoriel]Guide du débutant de Petit Computer - Partie 5 Sprite
» [Tutoriel]Guide du débutant de Petit Computer - Partie 6 Background
» [Tutoriel]Guide du débutant de Petit Computer - Partie 7 Graphique
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum