π
<-

[Axe] Tape

Assembleur, Axe, C/C++, ICE...

[Axe] Tape

Unread postby smixi » 03 Nov 2012, 17:53

Bonjour bonjour, je nouveau sur le forum et j'ai commencé l'axe il y'a pas longtemps.
Je commence avec un jeu simple : Tape
Le but du jeu : appuyer sur Haut/Bas/Droite/Gauche en fonction d'un cercle s'affichant en haut, en bas, à gauche ou à droite de l'écran. Aussi, j'ai rajouté un cercle au milieu, ca permet d'utiliser une autre main et donc "rajouter un peu de difficulté". Vous avez donc un certain temps pour appuyer sur un maximum de touche. Si l'on appuye sur 2 touches en même temps, la partie se termine.

Un petit apercu : Image


Ce qu'il y aura : - Plusieurs mode de jeu, "survie" ( ou le temps défile, si on appuie sur la mauvaise touche, la partie se termine, et si l'on appuie sur la bonne, le temps augmente.)
- Un top 3 des meilleurs scores.
- Un menu tout beau.
- Des flèches a la place des cercles
- Le menu Option ( pas encore intégré, mais disponible ... ) avec le choix de la touche pour le cercle du milieu, et le choix du mode de jeu.

Source :
Code: Select all
.ATAPE
:0→A→B
:500→G
:0→X
:.MENU
:ClrDrawDispGraph
:Repeat getKey(15)
:   Text(1,1,"1=JOUER)2=OPTION)3=CREDIT
:   .JOUER
:   If getKey(34)
:      MAX()
:End
:.OPTION
:If getKey(26)
:End
:If getKey(18)
:   ClrDrawDispGraph
:Text(25,32,"SMIXI"
:Pause 3200
:End
:
:End
:
:Lbl MAX
:Repeat getKey(15) or X=1
:   AL()
:   TOU()
:   B++
:End
:ClrDrawDispGraph
:Text(30,32,"SCORE:"
:Text(54,32,B►Dec
:Pause 1800
:Repeat getKey(9) or getKey(15)
:End
:0→X→A→B+500→G
:ClrDrawDispGraph
:Return
:
:.Touche
:Lbl TOU
:
:Repeat X=1 or getKey(A) or getKey(A+4) or getKey(15)
:   
:   G--
:   Text(44,30,G►Dec
:   Pause 18
:   If G=0
:      1→X
:End
:
:End
:
:If (getKey(1) xor getKey(2) xor getKey(3) xor getKey(4) xor getKey(9))=0
:   
:1→X
:
:End
:
:Return
:.Alea
:Lbl AL
:
:1+(rand^5)→A
:.affichage des fleches
:If A=5
:   CER(47,32)
:End
:If A=1
:   CER(47,65)
:End
:If A=2
:   CER(0,32)
:End
:If A=3
:   CER(95,32)
:End
:If A=4
:   CER(47,0)
:End
:Return
:Lbl CER
:ClrDraw
:For(P,1,15
:   Circle(r1,r2,P
:   DispGraph
:   Pause 4
:End
User avatar
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 7%
 
Posts: 7
Joined: 02 Nov 2012, 21:12
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 1e S

Re: [Axe] Tape

Unread postby Hayleia » 03 Nov 2012, 19:08

C'est ton premier jeu ?
Parce que si c'est le cas, félicitations il est très bien codé pour un premier jeu :)
Je ne dis pas qu'il est parfait, mais il est bien organisé et tout déjà :)

Du coup, je me dis que tu as déjà dû programmé en Basic avant de te lancer dans l'Axe, je me trompe ? :D
Ça se voit un peu par les habitudes qui étaient bonnes en Basic et qui ne le sont plus en Axe, comme ne pas fermer guillemets et parenthèses à la fin des instructions Text. En basic, ça économise des octets. En Axe, ça n'économise rien dans le programme une fois compilé et ça peut induire le compilateur en erreur (d'où bugs potentiels).
Autre chose, Axe (version 1.1.2) supporte les labels avec des noms jusqu'à 5 caractères, si tu veux des noms plus parlants ;)

Et côté optimisation, voilà ce que j'ai trouvé pour l'instant ^^
(en gros, ce que tu ne reconnais pas dans ton code, c'est moi qui l'ai fait :P)
Code: Select all
.ATAPE
0->A->B->X
500->G
.MENU
ClrDrawDispGraph
Repeat getKey(15)
   Text(1,1,"1=JOUER)2=OPTION)3=CREDIT")
   .JOUER
   If getKey(34)
      MAX()
   End
   .OPTION
   If getKey(26)
      .Pourquoi y'a rien là ?
   End
   If getKey(18)
      ClrDrawDispGraph
      Text(25,32,"SMIXI")
      Pause 3200
   End
End

Lbl MAX
Repeat X=1 or getKey(15)
   AL()
   TOU()
   B++
End
ClrDrawDispGraph
Text(30,32,"SCORE:",B>Dec)
Pause 1800
While 1
EndIf getKey(9) or getKey(15)
0->X->A->B
500->G
ClrDrawDispGraph
Return

.Touche
Lbl TOU

Repeat X=1 or getKey(A) or getKey(A+4) or getKey(15)
   Text(44,30,G-- >Dec)
   Pause 18
   !If G
      1->X
   End
End

!If getKey(1) xor getKey(2) xor getKey(3) xor getKey(4) xor getKey(9)
   1->X
End

Return
.Alea
Lbl AL

Data(47,0,95,47,47)->GDB1X
Data(65,32,32,0,32)->GDB1Y
rand^5+1->A
.affichage des fleches
CER({A+GDB1X-1},{A+GDB1Y-1})
Return
Lbl CER
ClrDraw
For(P,1,15)
   Circle(r1,r2,P)
   DispGraph
   Pause 4
End

Image
ImageImageImage
Pokemon Topaze (Axe) discussion and download links here
(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:

(2017.11.18 - 17:07:12) Fireworks: Hayleia !!!!!
(2017.11.18 - 17:07:19) TI-Bot: Fireworks has been logged out (Kicked).
(2017.11.18 - 17:07:22) TI-Bot: Ban of user Fireworks revoked.
(2017.11.18 - 17:07:25) TI-Bot: Fireworks logs into the Chat.
(2017.11.18 - 17:07:28) Fireworks: <3
(2017.11.18 - 17:07:31) Fireworks: 208
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [Axe] Tape

Unread postby nikitouzz » 03 Nov 2012, 19:12

moi j'ai trouvé ça c'est pas grand chose mais bon :

Code: Select all
:.ATAPE
0->A->B->X
500->G
.MENU
ClrDrawDispGraph
Repeat getKey(15)
   Text(1,1,"1=JOUER)2=OPTION)3=CREDIT")
   .JOUER
   If getKey(34)
      MAX()
   End
   .OPTION
   If getKey(18)
      ClrDrawDispGraph
      Text(25,32,"SMIXI")
      Pause 3200
   End
End

Lbl MAX
while 1
   AL()
   TOU()
   B++
EndIf X=1 or getKey(15)
ClrDrawDispGraph
Text(30,32,"SCORE:",B>Dec)
Pause 1800
While 1
EndIf getKey(9) or getKey(15)
0->X->A->B
500->G
ClrDrawDispGraph
Return

.Touche
Lbl TOU

Repeat X=1 or getKey(A) or getKey(A+4) or getKey(15)
   Text(44,30,G-- >Dec)
   Pause 18
   G??1->X
End
getKey<5 or getKey(9)??1->X
Return
.Alea
Lbl AL

Data(47,0,95,47,47)->GDB1X
Data(65,32,32,0,32)->GDB1Y
rand^5+1->A
.affichage des fleches
CER({A+GDB1X-1},{A+GDB1Y-1})
Return
Lbl CER
ClrDraw
For(P,1,15)
   Circle(r1,r2,P)
   DispGraph
   Pause 4
End
Last edited by nikitouzz on 03 Nov 2012, 20:37, edited 1 time in total.
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: [Axe] Tape

Unread postby smixi » 03 Nov 2012, 19:18

Merci Hayleia et Nikitouzz, effectivement je m'entrainais en basic. Merci d'avoir optimisé mon code, je copie ca dans ma calculette, en plus je viens de lire vite fait la doc du.rar de l'axe et j'ai lu : "If you have constants in your expression, try putting them at the end if at all possible", d'ou le rand^5+1->A ? sinon j'ai pas bien bien compris l'utilisation des Datas et de GDB, faudrais que tu m'explique :/ ( et que je revises les Datas, parce que j'ai pas du tout pratiqué ca :/)
A quoi correspond le "?" ?
Merci !
User avatar
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 7%
 
Posts: 7
Joined: 02 Nov 2012, 21:12
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 1e S

Re: [Axe] Tape

Unread postby nikitouzz » 03 Nov 2012, 19:23

enfaite le ? est une conditons, :

Code: Select all
:If X=3
:9->A
:End


peut etre remplacer par :

Code: Select all
:X=3?9->A


---------------------------------
Code: Select all
:!If X=3
:9->A
:End


peut etre remplacer par :

Code: Select all
:X=3??9->A
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: [Axe] Tape

Unread postby Hayleia » 03 Nov 2012, 19:42

smixi wrote:"If you have constants in your expression, try putting them at the end if at all possible", d'ou le rand^5+1->A ?

Non. Le fait de mettre le +1 après le rand^5 c'est pour éviter d'avoir à mettre des parenthèses.

Si je me mets dans la tête du processeur qui effectue les calculs de droite à gauche, voilà ce que ça donne pour calculer 1+(rand^5):
> 1
> sauvegarde en mémoire
> rand
> ^5
> ajoute le résultat précédent à la sauvegarde du 1

Si je me mets dans la tête du processeur qui effectue les calculs de droite à gauche, voilà ce que ça donne pour calculer rand^5+1:
> rand
> ^5
> +1

On économise donc deux calculs, donc de la vitesse et de la place ;)
__________

smixi wrote:sinon j'ai pas bien bien compris l'utilisation des Datas et de GDB, faudrais que tu m'explique :/ ( et que je revises les Datas, parce que j'ai pas du tout pratiqué ca :/)

J'ai mis ça:
Data(47,0,95,47,47)->GDB1X
Data(65,32,32,0,32)->GDB1Y

Du coup, {GDB1X}=47, {GDB1X+1}=0, {GDB1X+2}=95, etc
De même, {GDB1Y}=65, etc.

Ce que tu veux, c'est ça:
:If A=1
: CER(47,65)
:End
:If A=2
: CER(0,32)
:End
:If A=3
: CER(95,32)
:End
:If A=4
: CER(47,0)
:End
:If A=5
: CER(47,32)
:End


C'est à dire ça:
:If A-1=0
: CER(47,65)
:End
:If A-1=1
: CER(0,32)
:End
:If A-1=2
: CER(95,32)
:End
:If A-1=3
: CER(47,0)
:End
:If A-1=4
: CER(47,32)
:End

Tu veux donc des Data qui retournent (47,65) quand A-1=0; (0,32) quand A-1=1, etc.
D'où Data(47,0,95,47,47)->GDB1X ; Data(65,32,32,0,32)->GDB1Y et les {A-1+GDB1X} et {A-1+GDB1Y} ;)
User avatar
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Level up: 43.8%
 
Posts: 2509
Images: 2
Joined: 30 Aug 2011, 08:22
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Templar

Re: [Axe] Tape

Unread postby smixi » 03 Nov 2012, 20:30

C'bon j'ai compris pour les datas :D.
Par contre j'ai tester le code de nikitouzz, ca marche pas, je comprend pas pourquoi il fait "!If G?1->X" puisque comme il l'a expliqué cela revient a "G??1->X".
User avatar
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 7%
 
Posts: 7
Joined: 02 Nov 2012, 21:12
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 1e S

Re: [Axe] Tape

Unread postby nikitouzz » 03 Nov 2012, 20:36

ah oui je me suis tromper ^^ pardon

j'ai corriger mon post a deux endroit ;)
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Re: [Axe] Tape

Unread postby smixi » 03 Nov 2012, 23:16

Y'a un bug que je n'arrive pas à corriger, dans le menu, quand j'appuis sur 'Clr' dans le 'menu', ca lance une partie au lieu de quitter :/. Sinon je trouve pas de tutoriel au niveau des appVar. Merci d'avance.
User avatar
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 7%
 
Posts: 7
Joined: 02 Nov 2012, 21:12
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: 1e S

Re: [Axe] Tape

Unread postby nikitouzz » 03 Nov 2012, 23:52

Code: Select all
Repeat getKey(15)
   Text(1,1,"1=JOUER)2=OPTION)3=CREDIT")
   .JOUER
   If getKey(34)
      MAX()
   End
   .OPTION
   If getKey(18)
      ClrDrawDispGraph
      Text(25,32,"SMIXI")
      Pause 3200
   End
End


remplace sa par :

Code: Select all
while 1
   Text(1,1,"1=JOUER)2=OPTION)3=CREDIT")
   .JOUER
   If getKey(34)
      MAX()
   End
   .OPTION
   If getKey(18)
      ClrDrawDispGraph
      Text(25,32,"SMIXI")
      Pause 3200
   End
returnIf getKey(15)
End
Mes records personnels :
2x2x2 : 2.18 secondes / 2x2x2 une main : 21.15 secondes / 2x2x2 yeux bandés : 47.59
3x3x3 : 5.97 secondes / 3x3x3 une main : 49.86 secondes
4x4x4 : 1.49 minutes / 4x4x4 une main : 6.50 minutes
5x5x5 : 4.10 minutes / 5x5x5 une main : 18.02 minutes
6x6x6 : 8.10 minutes
7x7x7 : 16.03 minutes
9x9x9 : 58.26 minutes

megaminx : 5.59 minutes / pyraminx : 7.91 secondes / square-one : 1.07 minutes

Image
User avatar
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 42.7%
 
Posts: 1016
Images: 1
Joined: 16 Feb 2012, 18:39
Gender: Male
Calculator(s):
MyCalcs profile
Class: Fac de maths

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 7 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1879 utilisateurs:
>1847 invités
>21 membres
>11 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)