[TUTORIEL] Comprendre le GOSUB.

Voir le sujet précédent Voir le sujet suivant Aller en bas

[TUTORIEL] Comprendre le GOSUB.

Message par Korasoa le Mer 18 Sep - 22:41

Bijour! Smile

Alors c'est mon premier tutoriel sur le Basic, et je ne suis même pas capable de faire un jeu cheers (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 ou 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:
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.
Par rapport au code:
Code:
@START
GOSUB @EFFACER
@BOUCLE
GOTO @BOUCLE
@ECRIRE
PRINT "Salut !"
RETURN
Donc, quand j'ai lu le tuto, je n'étais qu'un total débutant (je suis toujours débutant!), donc je n'ai rien compris à GOSUB.

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
C'est un code un peu brouillon certes, mais je ne cherchais pas un faire un truc en particulier ^^
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! Smile )

_________________
Un jour Dieu créa Internet, et à ce moment là, ce n'était plus le dimanche le jour de repos.. Mais tout les jours!
avatar
Korasoa

Messages : 78
Date d'inscription : 09/09/2013
Age : 21
Localisation : Région Parisienne

Voir le profil de l'utilisateur http://jcray.tk/

Revenir en haut Aller en bas

Re: [TUTORIEL] Comprendre le GOSUB.

Message par RayTro le Mer 18 Sep - 23:58

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 !
avatar
RayTro
Admin

Messages : 333
Date d'inscription : 09/08/2013
Age : 21

Voir le profil de l'utilisateur http://petitcomputer-france.forumactif.org

Revenir en haut Aller en bas

Re: [TUTORIEL] Comprendre le GOSUB.

Message par Korasoa le Jeu 19 Sep - 11:35

A part pour un jeu de combat! x)

_________________
Un jour Dieu créa Internet, et à ce moment là, ce n'était plus le dimanche le jour de repos.. Mais tout les jours!
avatar
Korasoa

Messages : 78
Date d'inscription : 09/09/2013
Age : 21
Localisation : Région Parisienne

Voir le profil de l'utilisateur http://jcray.tk/

Revenir en haut Aller en bas

Re: [TUTORIEL] Comprendre le GOSUB.

Message par Woni le Mar 11 Nov - 21:57

Merci ! Je vais essayer dans mon programme car les wait ne fonctionnent pas...
EDIT: en fait le goto a suffi
avatar
Woni

Messages : 13
Date d'inscription : 11/11/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTORIEL] Comprendre le GOSUB.

Message par CounterClockWize le Jeu 13 Nov - 10:34

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!


_________________
If dindon =troue and marron =farce then ?"Chaud les marrons!" clown
avatar
CounterClockWize

Messages : 69
Date d'inscription : 23/08/2013

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: [TUTORIEL] Comprendre le GOSUB.

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum