Page 1 of 7

[AIDE]Programme(s) en Axe Parser

Unread postPosted: 24 Sep 2010, 20:51
by Kiligolo
Bonjour,

J'ai créé ce topic parce que j'avais besoin d'être aidé sur le langage de l'Axe Parser. Peut-être que d'autres en auront besoin, je ne sais pas mais en tout cas ils pourront le poster ici.

Je débute dans ce langage et j'aimerais demander de l'aide (notamment à kindermoumoute) sur un programme.

Voici le code:
Code: Select all
.AA
[0020129454555555]-Pic1
[102810385410286C]-Pic2
For(A,0,94)
For(B,30,64)
Pt-On(A,B,Pic1)
B+7-B
End
A+7-A
End
DispGraph
Repeat G=9
Repeat G
getKey-G
End
If G=1
A+1-A
End
Pt-On(A,B,Pic2)
DispGraph
End


Voila. critor2000, j'attends ton aide!

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 24 Sep 2010, 20:59
by kindermoumoute
Alors, pour une map, ça tombe bien vu que c'est ce que je n'arrive pas encore (je vais donc me lancer dans la recherche de comment ça marche les map ^^).
Pour le bonhomme, si j'ai bien compris, tu cherche à faire un mec qui se déplace sur une map?

dit moi si c'est le genre de code que tu cherche :
 
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
:[0020129454555555]-Pic1
:Repeat GetKey(9)
:If getKey(1) and (Y≠63
:   Y+1→Y
:End
:If getKey(2) and (X≠0
:   X-1→X
:End
:If getKey(3) and (X≠95
:   X+1→X
:End
:If getKey(4) and (Y≠0
:   Y-1→Y
:End
:Pt-On(X,Y,Pic1)
:DispGraph
:End


EDIT :
Dit moi ce que tu veut faire exactement, surtout en commentant ton code.


PS : au faite, je préfère que tu fasse les flèches = car je ne vois pas le caractère comme tu le met.

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 12:50
by Kiligolo
Désolé de te répondre si tard j'ai été retiré de mon ordinateur de force! :#gni#:

Bref... Oui c'est ça que je veux faire. On arrête pas de me dire que l'axe parser c'est fait pour les jeux donc pour un début je me suis dit:
  1. Je fais une map avec un peu d'herbe (ça c'est fait)
  2. Je rajoute un bonhomme (ça aussi)
  3. J'ajoute une fonction qui le fait bouger (= Crash :#love#: )
  4. Et peut être je vais ajouter une maison ou une barrière... Enfin développer la map quoi.
  5. Si j'y arrive: faire d'autres maps... (et le cycle continue)
Voila tu as raison kindermoumoute c'est ça le code.

Je crois que je me suis planté sur les Getkeys :8): (ça c'est fait)
Et on pourrais pas faire une sous-boucle genre:
Code: Select all
:[0020129454555555]-Pic1
:Repeat GetKey(9)
:Repeat G  |
:Getkey     |}Ceci
:End       |
:If getKey(1) and (Y≠63
:   Y+1→Y
:End
:If getKey(2) and (X≠0
:   X-1→X
:End
:If getKey(3) and (X≠95
:   X+1→X
:End
:If getKey(4) and (Y≠0
:   Y-1→Y
:End
:Pt-On(X,Y,Pic1)
:DispGraph
:End

Pour que le programme aille plus vite (éviter qu'il ai fini la grande boucle pour continuer) ?

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 13:12
by Kiligolo
J'ai testé le programme sur ma calculatrice et... ça marche! :):
Il faudrait juste mettre le bonhomme sur la map avant les déplacements (on le voit pas au début) et faire un truc pour pas qu'il ne laisse de traces...
Le code en gros (qui affiche le bonhomme au début):
Code: Select all
:.TILEMAP
:[0020129454555555]→Pic1
:[102810385410286C]→Pic2
:DiagnosticOff
:0→X:0→Y
:For(A,0,94)
:For(B,30,64)
:Pt-On(A,B,Pic1)
:B+7→B
:End
:A+7→A
:End
:Pt-On(0,0,Pic2)
:DispGraph
:Repeat getKey(9)
:If getKey(1) and (Y≠63
:Y+1→Y
:End
:If getKey(2) and (X≠0
:X-1→X
:End
:If getKey(3) and (X≠95
:X+1→X
:End
:If getKey(4) and (Y≠0
:Y-1→Y
:End
:Pt-On(X,Y,Pic2)
:DispGraph
:End

EDIT: C'est mille fois plus rapide que le basic! :o:

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 15:51
by Lionel Debroux
EDIT: C'est mille fois plus rapide que le basic!

En effet. Axe conserve, à  peu de choses près, la facilité de programmation du BASIC, mais offre une vitesse d'exécution beaucoup plus élevée :):

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 18:12
by kindermoumoute
Bon voici le code qui répond à tes attentes :
 
Show/Hide spoilerAfficher/Masquer le spoiler
Code: Select all
:.TILEMAP
:[0020129454555555]→Pic1
:[102810385410286C]→Pic2
:0→X→Y
:For(A,0,94)
:For(B,30,64)
:Pt-On(A,B,Pic1)
:B+7→B
:End
:A+7→A
:End
:StorePic
:Repeat getKey(15)
:ClrDraw
:Pt-On(X,Y,Pic2)
:DispGraphr
:If getKey
:ReturnIf getKey(15)
:sub(G
:End
:End
:
:Lbl G
:If getKey(1) and (Y≠63
:Y+2→Y
:End
:If getKey(2) and (X≠0
:X-2→X
:End
:If getKey(3) and (X≠95
:X+2→X
:End
:If getKey(4) and (Y≠0
:Y-2→Y
:End
:Return


Le petit r (2nd+app+3) qui se trouve après dispgraph permet de faire une troisième couleur sur la calculatrice (noir / gris / blanc), mais je trouve que c'est super lent quand on fait comme cela :/

Les fonctions existent et sont très utiles en Axe parser, la syntaxe est :
:Sub(S // j'appelle la fonction S
: // * ici
...
:Lbl S // n'importe ou dans le code voici ma fonction S
:code:
:Return // et on revient *

Si l'on met Return dans le programme principale (main on vas dire :p) on quitte alors le programme.

Des questions? :p

PS : joli sprites pour un début =)

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 19:01
by Kiligolo
kindermoumoute wrote:Le petit r (2nd+app+3) qui se trouve après dispgraph permet de faire une troisième couleur sur la calculatrice (noir / gris / blanc), mais je trouve que c'est super lent quand on fait comme cela :/

Et comment tu choisit la couleur?
kindermoumoute wrote:Les fonctions existent et sont très utiles en Axe parser, la syntaxe est :
:Sub(S // j'appelle la fonction S
: // * ici
...
:Lbl S // n'importe ou dans le code voici ma fonction S
:code:
:Return // et on revient *

Ouf c'est bon j'ai compris (j'avais pas vu le "et on revient ici...). C'est un peut comme en C. On peut envoyer des variables ou elles sont déjà là?
kindermoumoute wrote:Si l'on met Return dans le programme principale (main on vas dire :p) on quitte alors le programme.

Comme "stop".

kindermoumoute wrote:PS : joli sprites pour un début =)

J'utilise HEXPIC (qui est un peu lent d'ailleurs...). Il faudrait faire une version en axe parser! :#langue#:

EDIT: Merci pour le code et les explications! :):

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 19:59
by kindermoumoute
Kiligolo wrote:Et comment tu choisit la couleur?

Bonne question ^^.
La on va se compliqué les choses (ou les choses vont se compliquer?).
Tu a 3 écran en Axe parser, l'écran, le buffer (ou l'écran tampon) et le back-buffer (l'avant écran tampon :p).
La commande dispGraphr permet de faire apparaître alternativement et d'une manière extrêmement rapide (que seul l'Axe Parser explique), le Back-Buffer et le Buffer. Vu de l'oeil humain, on voit apparaître une 3ème couleur intermédiaire (il peut y en avoir 4 même).
Donc la commande va être pour faire apparaître un bonhomme en gris (mi noir mi blanc) :
:pt-on(X,Y,Pic1)r // on le fait apparaître en X, Y dans le back buffer.
:dispGraphr //on fait apparaître alternativement le buffer et le back-buffer.

La j'ai surement mal expliqué, je connais le truc depuis peu seulement. Essaye de regarder le source du programme exemple (dans le dossier de l'axe parser) AXERPG.8xp, il y a 4 niveau de gris (Blanc, Gris 25%, Gris 75%, Noir).


Kiligolo wrote:On peut envoyer des variables ou elles sont déjà là?


Tu utilisera les variable de la calculatrice normalement, comme si c'était un goto (mais c'est une fonction grâce au return).
Cependant, grâce à la variable Ans, tu peut facilement faire des fonctions booléennes :
:If sub(F) // si la fonction F est vrai, si X = 0 la fonction est fausse, si X=0 la fonction est vrai
:code:
:End
...
:Lbl F
:code:
:Return X // X sera la variable booléenne

Mais il y a encore mieux dans ces fonction, on peut faire :
:If sub(A)
:code:
:End
:If sub(B)
:code:
:End
:If sub(B) And sub(A)
:code:
:End
:
:Lbl A
:A
:Return
:
:Lbl B
:B
:Return

Et dans le même genre (je croit que ça marche) :
:If Ysub(A) xor (Xsub(A)) xor (Zsub(A)
:code:
:End
:
:Lbl A
:=A
:Return








Kiligolo wrote: Il faudrait faire une version en axe parser! :#langue#:


Je croit qu'il y en a une.. mais je l'ai perdu.

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 20:37
by Kiligolo
kindermoumoute wrote::pt-on(X,Y,Pic1)r // on le fait apparaître en X, Y dans le back buffer.

Et ça va apparaitre en gris, c'est ça?

Re: [AIDE]Programme(s) en Axe Parser

Unread postPosted: 25 Sep 2010, 20:51
by kindermoumoute
Par exemple voici un screen du code que je t'ai montré :
Image

L'herbe est mise dans le back-buffer (via la commande storePic) et apparaît en gris.

Et ici un exemple de niveau de couleur :
 
Show/Hide spoilerAfficher/Masquer le spoiler
Image


Ici il y a 4 niveaux de couleurs bien visible.