[TUTORIEL] Comprendre le GOSUB.
4 participants
Page 1 sur 1
[TUTORIEL] Comprendre le GOSUB.
Bijour!
Alors c'est mon premier tutoriel sur le Basic, et je ne suis même pas capable de faire un jeu (dafuq?)
Donc, ce tutoriel va plus être de la théorie que de la pratique.
Alors, nous allons parler de "GOSUB", car dans le tutorielou je n'ai rien compris de RayTro, le GOSUB est mal expliqué. (Enfin je trouve, te vexe pas RayTro! >.<)
Voici ce qu'il dit:
Je cite:
Donc, explications claires et précises:
Je vais utiliser GOSUB surtout dans des exemples, par exemple, là je vais parler d'un jeu de combat.
GOSUB, servirait à ce que vous n'ayez pas besoin de retaper tout le code d'une action répétitive.
Ex: Le coup de poing.
On mettrai un label, puis nos codes, et un RETURN (Ou un END, je ne me souviens plus ^^'). Ainsi lorsqu'on fera par exemple:
Donc, le programme va commencer, lire le programme, et lorsque l'on appuiera sur le bouton "A", il ira à la ligne indiqué par le GOSUB puis retournera ou il en était!
Voilà! ++
PS: "If BTRIG()==16"
Ca veut dire lorsqu'on appuie sur le bouton "A" ^^
Merci à RayTro pour tes tutos! (Ca rime! )
Alors c'est mon premier tutoriel sur le Basic, et je ne suis même pas capable de faire un jeu (dafuq?)
Donc, ce tutoriel va plus être de la théorie que de la pratique.
Alors, nous allons parler de "GOSUB", car dans le tutoriel
Voici ce qu'il dit:
Je cite:
Par rapport au code:RayTro a écrit:GOSUB a à peu près la même fonction que GOTO, mais avec une différence : Quand le programme arrive à la ligne du GOSUB, ici, c'est la ligne 2, il enregistre cette ligne et va au label indiqué, ici, c'est à la ligne 5 que le programme va se rendre. Dès que celui-ci aura lu le RETURN, il retournera à la ligne enregistrée, ici, la ligne 2, et continue son chemin.
- Code:
@START
GOSUB @EFFACER
@BOUCLE
GOTO @BOUCLE
@ECRIRE
PRINT "Salut !"
RETURN
Donc, explications claires et précises:
Je vais utiliser GOSUB surtout dans des exemples, par exemple, là je vais parler d'un jeu de combat.
GOSUB, servirait à ce que vous n'ayez pas besoin de retaper tout le code d'une action répétitive.
Ex: Le coup de poing.
On mettrai un label, puis nos codes, et un RETURN (Ou un END, je ne me souviens plus ^^'). Ainsi lorsqu'on fera par exemple:
- Code:
@START
...
...
...
@POING
...
...
...
RETURN
...
...
...
IF BTRIG()==16 THEN GOSUB @POING
...
...
...
@FIN
Donc, le programme va commencer, lire le programme, et lorsque l'on appuiera sur le bouton "A", il ira à la ligne indiqué par le GOSUB puis retournera ou il en était!
Voilà! ++
PS: "If BTRIG()==16"
Ca veut dire lorsqu'on appuie sur le bouton "A" ^^
Merci à RayTro pour tes tutos! (Ca rime! )
Re: [TUTORIEL] Comprendre le GOSUB.
quand j'écrivais ce tuto, je trouvais pas comment expliquer correctrment les GOSUB.
en gros le GOSUB met le programme en "pause" par rapport où il en était pour aller lire dans le label indiqué. dès qu'il lit un RETURN il reprend là où il s'était arrêté.
sur Casio GOSUB n'existe pas. à la place, on peux avoir accès aux autres programmes, des "sous programmes", après s'en être servi, il reviens au programme en cours à la ligne où il s'est arrêté. Mais l'avantage de la casio, c'est qu'on peux appeler des sous programmes dans des sous programmes... un nombre limité de fois quand même mais c'est peu utile d'en faire autant, et c'est surtout très rare d'en avoir autant besoin !
en gros le GOSUB met le programme en "pause" par rapport où il en était pour aller lire dans le label indiqué. dès qu'il lit un RETURN il reprend là où il s'était arrêté.
sur Casio GOSUB n'existe pas. à la place, on peux avoir accès aux autres programmes, des "sous programmes", après s'en être servi, il reviens au programme en cours à la ligne où il s'est arrêté. Mais l'avantage de la casio, c'est qu'on peux appeler des sous programmes dans des sous programmes... un nombre limité de fois quand même mais c'est peu utile d'en faire autant, et c'est surtout très rare d'en avoir autant besoin !
Re: [TUTORIEL] Comprendre le GOSUB.
Merci ! Je vais essayer dans mon programme car les wait ne fonctionnent pas...
EDIT: en fait le goto a suffi
EDIT: en fait le goto a suffi
Woni- Messages : 13
Date d'inscription : 11/11/2014
Re: [TUTORIEL] Comprendre le GOSUB.
En fait c'est simple à comprendre. Comme le dit RayTro, le gosub est compris comme un sous programme par la machine. Cela contrarie la lecture du programme qui est normalement de haut en bas, la lecture saute du point indiqué " gosub" jusqu'a un label ou une ligne spécifié/e puis dès que la lecture arrive à "return" elle reprends après le gosub.
Le return permets donc de faire une boucle unique et retourne les valeurs comprises entre le label (début du ss prg) et le return (fin du ss prg)
C'est en fait une boucle unique.
C'est pratique (par exemple) pour réserver des morceaux de codes non lu par la machine, si le label appelé par le gosub est hors d'une boucle sans fin (bien sur il y aura un if... gosub dans cette boucle sans fin).
Il faut bien faire attention à l'architecture du code en entier, faire attention à ce qui est autour du gosub et comment on l'utilise. Ne jamais oublier le sens de lecture d'un programme ( de haut en bas) et bien placer le return
On peut vite ce retrouver avec un message d'erreur ( return without gosub), ou carrément occulté non volontairement une partie de code importante, de devoir revoir l'architecture d'une bonne partie du programme...
Si la fonction du gosub est facile à comprendre en revanche son utilisation peut être moins facile!
Le return permets donc de faire une boucle unique et retourne les valeurs comprises entre le label (début du ss prg) et le return (fin du ss prg)
C'est en fait une boucle unique.
C'est pratique (par exemple) pour réserver des morceaux de codes non lu par la machine, si le label appelé par le gosub est hors d'une boucle sans fin (bien sur il y aura un if... gosub dans cette boucle sans fin).
Il faut bien faire attention à l'architecture du code en entier, faire attention à ce qui est autour du gosub et comment on l'utilise. Ne jamais oublier le sens de lecture d'un programme ( de haut en bas) et bien placer le return
On peut vite ce retrouver avec un message d'erreur ( return without gosub), ou carrément occulté non volontairement une partie de code importante, de devoir revoir l'architecture d'une bonne partie du programme...
Si la fonction du gosub est facile à comprendre en revanche son utilisation peut être moins facile!
CounterClockWize- Messages : 72
Date d'inscription : 23/08/2013
Sujets similaires
» [Tutoriel] Sprites
» [Tutoriel]Les conditions + FOR
» [Tutoriel] La fonction RND().
» [Tutoriel]DATA
» [Tutoriel]Les bases du Basic
» [Tutoriel]Les conditions + FOR
» [Tutoriel] La fonction RND().
» [Tutoriel]DATA
» [Tutoriel]Les bases du Basic
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum