π
<-

[Axe] Tape

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

[Axe] Tape

Messagede 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: Tout sélectionner
.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
Avatar de l’utilisateur
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 7%
 
Messages: 7
Inscription: 02 Nov 2012, 21:12
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1e S

Re: [Axe] Tape

Messagede 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: Tout sélectionner
.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
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [Axe] Tape

Messagede nikitouzz » 03 Nov 2012, 19:12

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

Code: Tout sélectionner
:.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
Dernière édition par nikitouzz le 03 Nov 2012, 20:37, édité 1 fois.
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
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [Axe] Tape

Messagede 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 !
Avatar de l’utilisateur
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 7%
 
Messages: 7
Inscription: 02 Nov 2012, 21:12
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1e S

Re: [Axe] Tape

Messagede nikitouzz » 03 Nov 2012, 19:23

enfaite le ? est une conditons, :

Code: Tout sélectionner
:If X=3
:9->A
:End


peut etre remplacer par :

Code: Tout sélectionner
:X=3?9->A


---------------------------------
Code: Tout sélectionner
:!If X=3
:9->A
:End


peut etre remplacer par :

Code: Tout sélectionner
: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
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [Axe] Tape

Messagede Hayleia » 03 Nov 2012, 19:42

smixi a écrit:"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 a écrit: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} ;)
Avatar de l’utilisateur
HayleiaGénéreux
Niveau 17: GM (Grand Maître des calculatrices)
Niveau 17: GM (Grand Maître des calculatrices)
Prochain niv.: 43.8%
 
Messages: 2509
Images: 2
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: Templar

Re: [Axe] Tape

Messagede 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".
Avatar de l’utilisateur
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 7%
 
Messages: 7
Inscription: 02 Nov 2012, 21:12
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1e S

Re: [Axe] Tape

Messagede 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
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Re: [Axe] Tape

Messagede 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.
Avatar de l’utilisateur
smixi
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 7%
 
Messages: 7
Inscription: 02 Nov 2012, 21:12
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: 1e S

Re: [Axe] Tape

Messagede nikitouzz » 03 Nov 2012, 23:52

Code: Tout sélectionner
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: Tout sélectionner
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
Avatar de l’utilisateur
nikitouzzModo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 42.7%
 
Messages: 1016
Images: 1
Inscription: 16 Fév 2012, 18:39
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: Fac de maths

Suivante

Retourner vers Langages alternatifs

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
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
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2913 utilisateurs:
>2899 invités
>8 membres
>6 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)