Poster un nouveau sujet Poster une réponse
Menu Jeux :D
Auteur Message
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Lun 03 Déc 2012, 20:04   Citer 

Bonsoir a tous les amis! godgrace.gif

commençant a avoir trop de programme de ma calculatrice, je me demandais comment faire pour créer un programme comportant un menu du style:
Jeux: -Snake
-Pong
-... etc

de sorte a se qu'il y est 3/4 programme dans un!

Merci bigmouth.gif
p.s. je suis tout nouveau en terme de programmation eyeonly.gif

EDIT:Ajout "Mario" + Le Juste Prix

Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"MARIO",U,"PONG",Z,"SNAKE",Y,"LE JUSTE PRIX",J,"QUITTER",QQ
:Lbl A
:Repeat Rép-105
:Disp entAléat(1,6)
:Repeat Rép
:codeTouche
:End
:End
:Goto M
:
:Lbl C
:Repeat Rép-105
:entAléat(0,1)
:If Rép=0
:Disp "FACE"
:If Rép=1
:Disp "PILE"
:Repeat Rép
:codeTouche
:End
:End
:Goto M
:
:Lbl Z
:Repeat Rép-105
:EffEcr
:0->W
:0->S
:7->A
:8->C
:7->D
:-1->E
:1->F
:Lbl 0
:If D=8:Goto 1
:EffEcr
:Output(8,A,"----
:Output(D,C,"O
:CodeTouche->K
:If K=24 et A-1>0
:A-1->A
:If K=26 et A+3<16:A+1->A
:If K=105:Pause
:C+F->C
:D+E->D
:If D=1:1->E
:If D=7 et C=A ou D=7 et C=A+1 ou D=7 et C=A+2 ou D=7 et C=A+3
:Goto P2
:If C=1:1->F
:If C=16:-1->F
:Goto 0
:Lbl P2
:-1->E
:S+1->S
:Goto 0
:Lbl 1
:Output(8,1,"SCORE:"
:Output(8,7,S
:Pause
:EffEcr
:Output(1,1,""
:End
:Goto M
:
:Lbl Y
:EffDessin
:0=>Xmin
:94=>Xmax
:(-)62=>Ymin
:0=>Ymax
:AxesNAff
:FonctOff
:6=>A:8=>B:44=>C:77=>D:1=>E:2=>N:0=>O
:1=>dim(Liste6
:If .7349=partDéc(Liste6(1:Liste6(1=>O
:EffListe Liste4
:EffListe Liste5
:99=>dim(Liste4
:99=>dim(Liste5
:For(ø,1,6,1.4
:Ligne(88,(-)ent(ø),6,(-)ent(ø)
:End
:Ligne(6,(-)57,88,(-)57
:Ligne(88,(-)56,88,(-)6
:Ligne(6,(-)6,6,(-)56
:Texte(0,13," SCORE:    " [4 ESPACES]
:Texte(0,53," HIGH : ",ent(O
:Lbl 5
:(-)8-5ent(NbrAléat10=>I
:8+5ent(NbrAléat16=>J
:If pxl-Test((-)I,J:Goto 5
:Ligne(J,I,J+2,I-2
:Ligne(J,I-2,J+2,I
:Goto 3
:Lbl 2
:6+50partDéc((A+C)/50=>A
:8+80partDéc((B+D)/80=>B
:If pxl-Test(A+2,B:Goto 4
:Texte(A,B,"º
:Lbl 3
:arrondi(1+NpartDéc(E/N),0=>E
:Texte(Liste4(E),Liste5(E),"[4 espaces]
:A=>Liste4(E:B=>Liste5(E
:codeTouch->K
:If K=0:Goto 2
:If K=105:Pause
:If D=72:Then
:If K=24:67=>D
:If K=26:77=>D
:If 1=abs(K-25:44=>C
:Goto 2:End
:If C&#8800;44:Goto 2
:If K=25:39=>C
:If K=34:49=>C
:If K=25 ou K=34:72=>D
:Goto 2
:Lbl 4
:Texte(A,B,"º
:Ligne(B+1,(-)A-3,B+2,(-)A-2
:If (-)I&#8800;A+2 ou J&#8800;B ou N=99:Goto Q
:N+1=>N
:Texte(0,38,N+1
:Goto 5
:Lbl Q
:If N+1>O:N+1.7349=>Liste6(1
:Pause
:EffDessin
:-10->Xmin
:10->Xmax
:-10->Ymin
:10->Ymax
:Pause
:Texte(20,30,"GAME OVER")
:Texte(30,20,"YOU'RE A LOOSER!")
:Pause
:AxesAff
:FonctOn
:EffEcr
:EffDessin
:End
:End
:Goto M
:
:Lbl B
:EffDessin
:1->Z
:0->A
:{8,16}->dim([A])
:60->N
:0->M
:8->X
:For(W,1,7
:Disp ""
:End
:Lbl 0
:If Z/50=partEnt(Z/50)
:N-10->N
:If M<15 et Z/30=partEnt(Z/30
:M+1->M
:Disp ""
:For(W,0,M
:1+partEnt(16NbrAléat->S
:Output(8,S,"X
:1->[A](8,S)
:End
:For(W,1,7
:permutLigne([A],W,W+1)->[A]
:End
:Output(1,X,"W
:For(W,0,N
:End
:For(W,1,16
:0->[A](8,W)
:End
:codeTouche->K
:X+(K=26 et X&#8800;16)-(K=24 et X&#8800;1)->X
:Z+1->Z
:If [A](1,X)=0
:Goto 0
:Pause
:EffEcr
:
:Lbl U
:EffEcr
:0-> thetha
:1->A
:7->Y
:14->X
:Lbl 2M
:Output(4,6,"PAUSE
:Pause
:Lbl 1M
:A+1->A
:If A=17
:1->A
:If X=2
:3->X
:EffEcr
:codeTouche->K
:If (K=25 et Y=7)
:Y-3->Y
:if Y<7
:Y+1->Y
:X+(K=26)-(K=24)->x
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"H
:Output(8,1,"----------------
:If A=16
:entAleat(2,3->E
:theta+1->theta
:If E=2
:Output(8,A," "
:If E=3
:Outuput(7,A,"=
:If(E=2 et Y=7 et(A=X ou A=X-1))
:Then
:EffEcr
:Output(4,5,"PERDU
:Output(5,4,"SCORE
:Output(5,10,theta
:Output(Y,X,"0
:Output(8,1,"----------------
:Output(8,A," "
:Output(Y+1,X-1,"-I-
:Stop
:end
:If(E=3 et Y=7 et A=X)
:Then
:EffEcr
:Output(4,5,"PERDU
:Output(5,7,theta
:Output(Y-2,X,"0
:Output(Y-1,X-1,"-I-
:Output(Y,X,"=
:Output(8,1,"----------------
:Stop
:End
:If K=105
:Goto 2M
:Goto 1M
:
:Lbl 9J
:Menu("LE JUSTE PRIX","JOUER",W0,"DIFFICULTE",W1,"QUITTER",W3
:Lbl W1
:Menu("DIFFICULTE :","EASY",WA,"NORMAL",WB,"HARD",WC
:Lbl WA
:entAleat(1,100->X:Goto 9J
:Lbl WB
:entAleat(1,500->X:Goto 9J
:Lbl WC
:entAleat(1,1000->X:Goto 9J
:Lbl W0
:EffEcr
:Repeat Y=X
:Input "DEVINEZ LE PRIX:",Y
:If Y>X
:Disp "MOINS
:If Y<X
:Disp "PLUS
:End
:Pause "BRAVO!
:EffEcr
:Lbl W3
:EffEcr:Goto M
:
:Lbl QQ
:EffEcr


Place dans la mémoire: 2142



 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 03 Déc 2012, 20:12   Citer 

Commande Menu() du menu prgm+C et label Lbl de prgm+9 et goto de prgm+0
Dans cet exemple j'ai pris les labels A,B,Q et M mais ils sont biensûr personnalisables.
Les labels sont toujours 1 ou 2 caractère(s) alphanumérique(s).

Code
Lbl M
Menu("TITRE","NOM1",A,"NOM2",B,"QUITTER",Q
Lbl A
// code du programme 1
Goto M
Lbl B
// code du programme 2
Goto M
Lbl Q

Faire ce regroupement est déconseillé voire impossible si les programmes inclus ont des lables identiques entre eux ou avec le programme de menu.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Samos



Autorisation : Membre
Nb de messages : 295
Inscrit le : Lun 14 Mai 2012, 18:51
Posté le : Lun 03 Déc 2012, 20:13   Citer 

Tu peux copier le contenu d'un programme dans un autre en allant dans l'éditeur puis:
rappel + prgm + < + NOMPROGRAMME

EDIT: Salut godgrace.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 03 Déc 2012, 20:19   Citer 

Oui, bonne idée l'explication du Rappel prgm.
https://tout82.pages-perso.free.fr/forum/sujet.php?sujet=2614

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Lun 03 Déc 2012, 21:17   Citer 

Alors... j'ai essayé


Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",D,"SNAKE",E,"QUITTER",Q
:Lbl A
:entAléat(1,6)
:Goto M
:Lbl C
:entAléat(0,1)
:If Rép=0
:Disp "FACE"
:If Rép=1
:Disp "PILE"
:Goto M



Alors petit bémol ... le programme Pile ou face marche par accout je suis obligé de revenir au menu principal pour continuer le pile et face tandis que le dee de 6 quand a lui ne fonnctionne pas :S pas cool ...

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Lun 03 Déc 2012, 23:36   Citer 

Si le programme DEEDE6 causait un affichage parce que l'aléatoire était à la fin du programme, il faut maintenant ajoûter une fonction pour cet affichage.
Par exemple "Pause entAléat(1,6"

Place une Pause à la fin de PILEOUFACE pour pouvoir lire les résultats.
Tu peux créer une boucle autour du programme pour rester dans celui-ci aussi longtemps que désiré. (et plus besoin de pause)


Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",D,"SNAKE",E,"QUITTER",Q
:Lbl A
:Pause entAléat(1,6
:Goto M
:Lbl C
:Repeat Rép-105   // quitte si touche pressée autre que Entrer
:entAléat(0,1
:If Rép=0
:Disp "FACE"
:If Rép
:Disp "PILE"
:Repeat Rép  // attend une pression de touche
:codeTouche
:End
:End
:Goto M

EDIT : Le premier Rép du programme était un K avant une correction.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Mar 04 Déc 2012, 22:00   Citer 

J'ai essayé:


Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",D,"SNAKE",E,"QUITTER",Q
:Lbl A
:Pause entAléat(1,6)
:Goto A
:Goto M
:End
:Lbl C
:Repeat K-105
:Pause entAléat(0,1)
:If Rép=0
:Disp "FACE"
:If Rép=1
:Disp "PILE"
:Goto C
:Goto M



sa a l'air de fonctionner me reste plus qu'a entrer les autres code programme.
Le seul hic notable c'est que je ne retourne pas au menu principal du programme... mais bon, ce n'es qu'un détail pour le moment. Je vous recontacte des que j'ai fini ma programation (que c'est long sans le cable ^^')

bigmouth.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 04 Déc 2012, 23:10   Citer 

Ce que tu as écris est faux car
-tu ne referme pas la boucle Repeat.
-tu places un End innutile après DEUX Gotos dont le second aussi innutile

Même si cela semble correct, cela fera n'importe quoi quand tu ajoûteras des choses.

Quant à moi j'ai cafouillé entre K et Rép pour la détection des touches pressées. Remplaces K par Rép.

Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",D,"SNAKE",E,"QUITTER",Q
:Lbl A
:Repeat Rép-105
:Disp entAléat(1,6
  :Repeat Rép
  :codeTouche
  :End
:End
:Goto M
:Lbl C
:Repeat Rép-105
:entAléat(0,1
:If Rép=0
:Disp "FACE"
:If Rép
:Disp "PILE"
  :Repeat Rép
  :codeTouche
  :End
:End
:Goto M



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Mer 05 Déc 2012, 21:47   Citer 

Bonsoir!
Bon voila dernier ajout le pong et le snake. J'ai modifier comme tu me la indiquer Linkakro


Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",Z,"SNAKE",Y,"QUITTER",Q
:Lbl A
:Repeat Rép-105
:Disp entAléat(1,6)
:Repeat Rép
:codeTouche
:End
:End
:Goto M
:
:Lbl C
:Repeat Rép-105
:entAléat(0,1)
:If Rép=0
:Disp "FACE"
:If Rép=1
:Disp "PILE"
:Repeat Rép
:codeTouche
:End
:End
:Goto M

:Lbl Z
:Repeat Rép-105
:EffEcr
:0->W
:0->S
:7->A
:8->C
:7->D
:-1->E
:1->F
:Lbl 0
:If D=8:Goto 1
:EffEcr
:Output(8,A,"----


:Output(D,C,"O

Code
:CodeTouche->K
:If K=24 et A-1>0
:A-1->A
:If K=26 et A+3<16:A+1->A
:If K=105:Pause
:C+F->C
:D+E->D
:If D=1:1->E
:If D=7 et C=A ou D=7 et C=A+1 ou D=7 et C=A+2 ou D=7 et C=A+3
:Goto 2
:If C=1:1->F
:If C=16:-1->F
:Goto 0
:Lbl 2
:-1->E
:S+1->S
:Goto 0
:Lbl 1
:Output(8,1,"SCORE:"
:Output(8,7,S
:Pause
:EffEcr
:Output(1,1,""
:Goto M
:
:Lbl Y
:EffDessin
:0=>Xmin
:94=>Xmax
:(-)62=>Ymin
:0=>Ymax
:AxesNAff
:FonctNAff
:6=>A:8=>B:44=>C:77=>D:1=>E:2=>N:0=>O
:1=>dim(Liste6
:If .7349=partDéc(Liste6(1:Liste6(1=>O
:EffListe Liste4
:EffListe Liste5
:99=>dim(Liste4
:99=>dim(Liste5
:For(ø,1,6,1.4
:Ligne(88,(-)ent(ø),6,(-)ent(ø)
:End
:Ligne(6,(-)57,88,(-)57
:Ligne(88,(-)56,88,(-)6
:Ligne(6,(-)6,6,(-)56
:Texte(0,13," SCORE : 3
:Texte(0,53," HIGH : ",ent(O
:Lbl 5
:(-)8-5ent(NbrAléat10=>I
:8+5ent(NbrAléat16=>J
:If pxl-Test((-)I,J:Goto 5
:Ligne(J,I,J+2,I-2
:Ligne(J,I-2,J+2,I
:Goto 3
:Lbl 2
:6+50partDéc((A+C)/50=>A
:8+80partDéc((B+D)/80=>B
:If pxl-Test(A+2,B:Goto 4
:Texte(A,B,"º
:Lbl 3
:arrondi(1+NpartDéc(E/N),0=>E
:Texte(Liste4(E),Liste5(E),"[4 espaces]
:A=>Liste4(E:B=>Liste5(E
:codeTouch(=>K
:If K=0:Goto 2
:If D=72:Then
:If K=24:67=>D
:If K=26:77=>D
:If 1=abs(K-25:44=>C
:Goto 2:End
:If C&#8800;44:Goto 2
:If K=25:39=>C
:If K=34:49=>C
:If K=25 ou K=34:72=>D
:Goto 2
:Lbl 4
:Texte(A,B,"º
:Ligne(B+1,(-)A-3,B+2,(-)A-2
:If (-)I&#8800;A+2 ou J&#8800;B ou N=99:Goto Q
:N+1=>N
:Texte(0,38,N+1
:Goto 5
:Lbl Q
:If N+1>O:N+1.7349=>Liste6(1
:Pause
:EffDessin
:-10->Xmin
:10->Xmax
:-10->Ymin
:10->Ymax
:Texte(20,30,"GAME OVER")
:Texte(30,20,"YOU'RE A LOOSER!")
:Pause
:AxesAff
:FonctOn
:EffEcr
:EffDessin
:End
:End
:Goto M



J'ai une erreur domaine la ou j'ai indiquer quand je lance le snake, se qui est etrzange c'est qu'il sagit de la partie du pong cry.gif. Tu peux encore m'aider? Le Codage est bon? Corrige moi linkakro si il le faut (sans sous entendu winkle.gif )

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 05 Déc 2012, 22:17   Citer 

C'est parce qu'il y a conflit entre les labels des deux programmes originaux. Quand tu mets leurs codes dans un même programme, un seul Lbl est reconnu pour tous les goto portant son étiquette.
Tu dois changer des Goto et Lbl pour éviter le conflit.

C'est pour ça que j'ai dit plus tôt que c'est déconseillé de les rassembler.

rappel : les étiquettes sont deux caractères chiffre ou lettre

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Mer 05 Déc 2012, 22:23   Citer 

Oui mais se qui est etrange c'est que c'est le programme pong qui embete joyeusement le programme snake...

Il n'y a pas un moyen pour bloquer ces etiquette pour chaque programme lors de leurs utilisation?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 06 Déc 2012, 20:27   Citer 

Non. Il faut changer les étiquettes.

L'étiquette reconnue parmi plusieurs identiques est toujours la première du programme dans le sens normal de lecture.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Ven 07 Déc 2012, 23:02   Citer 

Excuse moi ... minied.gif

Mais comment fait on pour changer les étiquettes? pour que mon programme puisse enfin fonctionner correctement? sil te plait happy.gif

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Sam 08 Déc 2012, 10:43   Citer 

Par exemple dans la partie du PONG, remplace "Lbl 2" par "Lbl P2" et "Goto 2" par "Goto P2"
Ici j'ai remplacé l'étiquette "2" par "P2", dans la partie PONG bien sûr.
Ainsi il n'y a plus confusion entre "Lbl 2" du snake et "Lbl P2" du pong.

Il faut que chaque goto corresponde à un unique label (Lbl) , quelle que soit l'étiquette choisie. Il peut y avoir plusieurs gotos identiques mais il faut un seul Lbl par étiquette.

Pour info, "label" signifie "étiquette" en anglais.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Sam 08 Déc 2012, 21:53   Citer 


Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"PONG",Z,"SNAKE",Y,"QUITTER",QQ
:Lbl A
:Repeat Rép-105
:Disp entAléat(1,6)
:Repeat Rép
:codeTouche
:End
:End
:Goto M
:
:Lbl C
:Repeat Rép-105
:entAléat(0,1)
:If Rép=0
:Disp "FACE"
:If Rép=1
:Disp "PILE"
:Repeat Rép
:codeTouche
:End
:End
:Goto M
:
:Lbl Z
:Repeat Rép-105
:EffEcr
:0->W
:0->S
:7->A
:8->C
:7->D
:-1->E
:1->F
:Lbl 0
:If D=8:Goto 1
:EffEcr
:Output(8,A,"----
:Output(D,C,"O
:CodeTouche->K
:If K=24 et A-1>0
:A-1->A
:If K=26 et A+3<16:A+1->A
:If K=105:Pause
:C+F->C
:D+E->D
:If D=1:1->E
:If D=7 et C=A ou D=7 et C=A+1 ou D=7 et C=A+2 ou D=7 et C=A+3
:Goto P2
:If C=1:1->F
:If C=16:-1->F
:Goto 0
:Lbl P2
:-1->E
:S+1->S
:Goto 0
:Lbl 1
:Output(8,1,"SCORE:"
:Output(8,7,S
:Pause
:EffEcr
:Output(1,1,""
:End
:Goto M
:
:Lbl Y
:EffDessin
:0=>Xmin
:94=>Xmax
:(-)62=>Ymin
:0=>Ymax
:AxesNAff
:FonctOff
:6=>A:8=>B:44=>C:77=>D:1=>E:2=>N:0=>O
:1=>dim(Liste6
:If .7349=partDéc(Liste6(1:Liste6(1=>O
:EffListe Liste4
:EffListe Liste5
:99=>dim(Liste4
:99=>dim(Liste5
:For(ø,1,6,1.4
:Ligne(88,(-)ent(ø),6,(-)ent(ø)
:End
:Ligne(6,(-)57,88,(-)57
:Ligne(88,(-)56,88,(-)6
:Ligne(6,(-)6,6,(-)56
:Texte(0,13," SCORE:    " [4 ESPACES]
:Texte(0,53," HIGH : ",ent(O
:Lbl 5
:(-)8-5ent(NbrAléat10=>I
:8+5ent(NbrAléat16=>J
:If pxl-Test((-)I,J:Goto 5
:Ligne(J,I,J+2,I-2
:Ligne(J,I-2,J+2,I
:Goto 3
:Lbl 2
:6+50partDéc((A+C)/50=>A
:8+80partDéc((B+D)/80=>B
:If pxl-Test(A+2,B:Goto 4
:Texte(A,B,"º
:Lbl 3
:arrondi(1+NpartDéc(E/N),0=>E
:Texte(Liste4(E),Liste5(E),"[4 espaces]
:A=>Liste4(E:B=>Liste5(E
:codeTouch->K
:If K=0:Goto 2
:If K=105:Pause
:If D=72:Then
:If K=24:67=>D
:If K=26:77=>D
:If 1=abs(K-25:44=>C
:Goto 2:End
:If C&#8800;44:Goto 2
:If K=25:39=>C
:If K=34:49=>C
:If K=25 ou K=34:72=>D
:Goto 2
:Lbl 4
:Texte(A,B,"º
:Ligne(B+1,(-)A-3,B+2,(-)A-2
:If (-)I&#8800;A+2 ou J&#8800;B ou N=99:Goto Q
:N+1=>N
:Texte(0,38,N+1
:Goto 5
:Lbl Q
:If N+1>O:N+1.7349=>Liste6(1
:Pause
:EffDessin
:-10->Xmin
:10->Xmax
:-10->Ymin
:10->Ymax
:Pause
:Texte(20,30,"GAME OVER")
:Texte(30,20,"YOU'RE A LOOSER!")
:Pause
:AxesAff
:FonctOn
:EffEcr
:EffDessin
:End
:End
:Goto M
:
:Lbl B
:EffDessin
:1->Z
:0->A
:{8,16}->dim([A])
:60->N
:0->M
:8->X
:For(W,1,7
:Disp ""
:End
:Lbl 0
:If Z/50=partEnt(Z/50)
:N-10->N
:If M<15 et Z/30=partEnt(Z/30
:M+1->M
:Disp ""
:For(W,0,M
:1+partEnt(16NbrAléat->S
:Output(8,S,"X
:1->[A](8,S)
:End
:For(W,1,7
:permutLigne([A],W,W+1)->[A]
:End
:Output(1,X,"W
:For(W,0,N
:End
:For(W,1,16
:0->[A](8,W)
:End
:codeTouche->K
:X+(K=26 et X&#8800;16)-(K=24 et X&#8800;1)->X
:Z+1->Z
:If [A](1,X)=0
:Goto 0
:Pause
:EffEcr
:
:Lbl QQ
:EffEcr



Et voila, ma toute première contribution enfin achever bigmouth.gif
Merci a moi glasses.gif et surtout a Linkakro pour m'avoir conseillé dans cette programmation

Bon Usage a tous minied.gif

 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Dim 09 Déc 2012, 20:13   Citer 

Hello bigmouth.gif

Edit, d'un mario et d'un juste prix ... sauf que j'ai une erreur argument qui s'est invitée sans y etre convier juste ici:

Code
:Lbl M
:Menu("JEUX:","DEE DE 6",A,"ESQUIVE",B,"PILE OU FACE",C,"MARIO",U,"PONG",Z,"SNAKE",Y,"LE JUSTE PRIX",J,"QUITTER",QQ



quelqu'un peut m'aider?

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 09 Déc 2012, 21:02   Citer 

Si tu compiles des programmes classiques de ce forum (ou d'ailleurs), pas besoin de tous les poster.
C'est utile si tu écris toi-même les programmes.

Tu t'es trompé parmi les virgules ou les guillemets.
EDIT: maintenant on sait que c'est le nombre d'arguments suppérieur à 7.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Mer 12 Déc 2012, 18:37   Citer 


Citer
Tu t'es trompé parmi les virgules ou les guillemets.


Je ne pense pas, non

pour essayer, j'ai supprimer "QUITTER", QQ et l'erreur a disparu, je pense que le programme n'accepte que 7 choix de possibilité dans un menu.

j'ai une erreur aussi sur le snake, le high score ne s'affiche pas... décidement ^^'

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 12 Déc 2012, 18:50   Citer 

Exact ! J'ai oublié de compter le nombre de sorties !
En effet la fonction Menu ne supporte que 7 choix.
C'est ce que je reproche le plus au Basic d'ailleurs.

Je viens de remarquer que ton code Esquive est mon programme Cubefield. (aussi nommé Fly dans ses débuts)

Ton problème de record vient peut-être de "ent(O)" et d'une confusion entre la lettre O et le nombre 0.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Mer 12 Déc 2012, 19:56   Citer 

effectivement l'erreur venait bien de là. Merci!

Oui le programme vient peut etre de toi, je les ai pris sur ce site. je remercie par la meme occasion les createur des programme que j'ai "emprunté"

 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Dim 16 Déc 2012, 18:34   Citer 

Reuh a tous happy.gif

Nouveau petit problème dans la programmation d'un bowling, j'ai une erreur juste apres mon !

:-1 -> [L des liste]BOL(1
:If -1=max([L des liste]BOL
:-1 -> [L des liste]BOL(2
:{0 -> Liste2
:Menu("NIVEAU","TRES FACILE",1,"FACILE",2,"MOYEN",3,"DIFFICILE",4,"TRES DIFFICILE",5,"QUITTER",Q
:Lbl 1
:25 -> Y
:Goto 6
:Lbl 2
:20 -> Y
:Goto 6
:Lbl 3
:15 -> Y
:Goto 6
:Lbl 4
:10 -> Y
:Goto 6
:Lbl 5
:5 -> Y
:Lbl 6
:For(W,2,11
:EffVar X
:EffVar Z
:EffVar A
:10 -> dim(Liste1
:Remplir(0,Liste1
:EffEcr
:Output(1,5,"O O O O
:Output(2,6,"O O O
:Output(3,7,"O O"
:Output(4,8,"O
:For(B,1,8
:Output(B,13,"!
:Output(B,3,"!
:End
:-1 -> C
:4 -> D
:While A=!=2 ici
:CodeTouche -> G
:If G=105
:Goto 8
:Output(8,4,"
:Output(8,D,"O
:If D=4 or D=12
:-C -> C
bigmouth.gif+C -> D
:For(S,1,Y/5
:End
:End
:End
:Lbl 8
bigmouth.gif-C -> D
:If Z=0 and D=8
:Then
:15 -> dim(Liste1
:Remplir(1,Liste1
:1 -> A
:End
:If non(Z
bigmouth.gif -> Z
:abs(D-8 -> L
bigmouth.gif -> M
bigmouth.gif -> N
:For(H,8,1,-1
:If H=!=1 et donc ici aussi
:Output(H-1,D,"O
:If L+H<4
:Then
:M-1 -> M
:N+1 -> N
:End
:For(J,M,N
:Output(H,J,"
:End
:If D=5
:1 -> Liste1(1
:If D=6
:Then
:1 -> Liste1(1
:1 -> Liste1(2
:End
:If D=7
:Then
:1 -> Liste1(1
:1 -> Liste1(2
:1 -> Liste1(3
:1 -> Liste1(5
:1 -> Liste1(6
:1 -> Liste1(8
:End
:If D=8
:Fill(1,Liste1
:If D=9
:Then
:1 -> Liste1(2
:1 -> Liste1(3
:1 -> Liste1(4
:1 -> Liste1(6
:1 -> Liste1(7
:1 -> Liste1(9
:End
:If D=10
:Then
:1 -> Liste1(3
:1 -> Liste1(4
:1 -> Liste1(7
:End
:If D=11
:1 -> Liste1(4
:End
:A+1 -> A
:For(Z,1,10
:End
:-1 -> C
:4 -> D
:End
:sum(Liste1 -> X
:X -> Liste2(W
:ClrHome
:Disp "TON SCORE ACTUEL",sum(Liste2),"!01!02!03!04!05!","! ! ! ! ! !","+--+--+--+--+--+","!06!07!08!09!10!","! ! ! ! ! !
:For(V,2,W
:If V[inférieur ou égal]6
:Output(4,3V-4,Liste2(V
:If V[supérieur ou égal]7
:Output(7,3V-19,Liste2(V
:End
:Pause
:End
:ClrHome
:Output(2,3,"VOTRE SCORE:
:Output(3,7,sum(Liste2
:Output(5,3,"EN NIVEAU:
:Output(5,14,6-Y/5
:Pause
:sum(Liste2 -> T
:If T[racine(]6-Y/5)>[l des listes]BOL(2
:Then
:ClrHome
:Output(2,4,"TU AS BATTU
:Output(3,2,"L'ANCIEN RECORD
:Output(4,2,"AVEC POINTS
:Output(4,7,T
:Output(5,4,"EN NIVEAU
:Output(5,14,6-Y/5
:Output(6,2,"AVEC POINTS
:Output(7,1,"RECORD (PTS[petit r du menu var/stats/equ]=PTS
:Output(8,4,"*[raccine(] NIVEAU) )
:Output(6,7,iPart(T[racine(]6-X/5
:End
:Lbl Q

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Dim 16 Déc 2012, 18:46   Citer 

"=!=" est un des codes utilisés pour écrire le égal barré qu'on ne peut pas écrire dans ce forum.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Sam 29 Déc 2012, 16:52   Citer 

Hello tous!

Voila je profite des vacances pour faire un tri dans ma ti (j'ai un peu lâché le programme JEUX je le réserve a quand j'aurais du temps libre en cours minied.gif )

Donc mon pb cette fois ci c'est dans un programme imbriqué de 2 programme veille:


Code
:Lbl M
:0->Xmin
:94->Xmax
:0->Ymin
:62->Ymax
:AxesNaff
:Menu("VEILLE:","BOREALE",Z,"FLECHE",V
:Lbl Z
:EffDessin
:Lbl Z1
:For(A,1,94,2
:Ligne(94,0,A,62
:Ligne(0,62,94-A,0
:End
:For(A,0,95,2
:Ligne(94,0,A,62,0
:Ligne(0,62,94-A,0,0
:End
:Goto Z1
:EffDessin
:Goto M

:Lbl V
:Effdessin
:0->X
:1->Y
:Lbl V1
:If X=1:1->Y
:If X=31:(-)1->Y
:X+Y->X
:For(A,47,94,X
:Ligne(A,0,A,62
:Ligne(94-A,0,94-A,62
:End
:For(A,31,62,X
:Ligne(0,A,94,A,0
:Ligne(0,62-A,94,62-A,0
:End
:Goto V1
:EffDessin



Ce que je voudrais faire... c'est pouvoir arrêter le programme quand j'appuie sur entrer
Quelqu'un pour m'aider? moodforlove.gif

 Adresse email Haut de page Bas de page 
 
blg_flg



Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Sam 29 Déc 2012, 17:23   Citer 

Ajoute simplement une condition qui fait quitter le programme lorsque CodeTouche=105. winkle.gif

Insère où tu veux ceci:

Code
CodeTouche->K
If K=105:Stop



 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Sam 29 Déc 2012, 17:45   Citer 

Je viens d'ajouter la condition et ... sa ne marche pas cry.gif

 Adresse email Haut de page Bas de page 
 
blg_flg



Autorisation : Membre
Nb de messages : 646
Inscrit le : Mer 23 Mai 2012, 17:28
Posté le : Sam 29 Déc 2012, 21:22   Citer 

Où l'as tu mis aussi?

 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Lun 07 Jan 2013, 19:48   Citer 


Code
:Lbl M
:0->Xmin
:94->Xmax
:0->Ymin
:62->Ymax
:AxesNaff
:Menu("VEILLE:","BOREALE",Z,"FLECHE",V,"QUITTER",Q)
:Lbl Z
:codeTouche->K
:If K:105:Goto Q
:EffDessin
:Lbl Z1
:For(A,1,94,2
:Ligne(94,0,A,62
:Ligne(0,62,94-A,0
:End
:For(A,0,95,2
:Ligne(94,0,A,62,0
:Ligne(0,62,94-A,0,0
:End
:Goto Z1
:EffDessin
:Goto M

:Lbl V
:codeTouche->K
:If K:105:Goto Q
:Effdessin
:0->X
:1->Y
:Lbl V1
:If X=1:1->Y
:If X=31:(-)1->Y
:X+Y->X
:For(A,47,94,X
:Ligne(A,0,A,62
:Ligne(94-A,0,94-A,62
:End
:For(A,31,62,X
:Ligne(0,A,94,A,0
:Ligne(0,62-A,94,62-A,0
:End
:Goto V1
:EffDessin

:Lbl Q
:EffDessin
:EffEcr
:-10->Xmin
:10->Xmax
:-10->Ymin
:10->Ymax
:AxesAff
:Output(1,1,"")



Voila comment j'ai entrer le programme et la condition

 Adresse email Haut de page Bas de page 
 
Erdnuss



Autorisation : Membre
Nb de messages : 30
Inscrit le : Mer 14 Déc 2011, 20:42
Posté le : Sam 12 Jan 2013, 23:31   Citer 

C est normal, ça le programme ne passe qu une fois par le test :
tu le fait boucler autour du V1 et Z1, o les 2 tests sont en V et Z (j espère que tu comprend ce que je dis)

Voilà qui marche (selon moi) :


Code
:Lbl M
:EffvarXmin94->Xmax     // ça peut sembler bizarre, mais ça marche et économise 2 octets
:EffvarYmin62->Ymax     // ça peut sembler bizarre, mais ça marche et économise 2 octets
:AxesNaff
:Effdessin
:Menu("VEILLE:","BOREALE",Z,"FLECHE",V,"QUITTER",Q)
:Lbl Z
:Lbl Z1
:If codetouch=105:Stop   //ici
:For(A,1,94,2
:Ligne(94,0,A,62
:Ligne(0,62,94-A,0
:End
:For(A,0,95,2
:Ligne(94,0,A,62,0
:Ligne(0,62,94-A,0,0
:End
:Goto Z1

:Lbl V
:Effdessin
:EffvarX1->Y  // ça peut sembler bizarre, mais ça marche et économise 2 octets
:Lbl V1
:If codetouch=105:Stop  //ici
:If X=1:1->Y
:If X=31:(-)1->Y
:X+Y->X
:For(A,47,94,X
:Ligne(A,0,A,62
:Ligne(94-A,0,94-A,62
:End
:For(A,31,62,X
:Ligne(0,A,94,A,0
:Ligne(0,62-A,94,62-A,0
:End
:Goto V1

:Lbl Q
:EffDessin
:EffEcr
:10->Xmax
:-Xmax->Xmin
:Xmin->Ymin
:Xmax->Ymax
:AxesAff
:Output(1,1,"")   // a remplacer par Disp



Théoriquement, la dernière ligne servant à revenir dans l écran normal, tu peut la remplacer par Disp (ou même par ", mais je suis pas sur)

----------------------
Il y a 11 sortes de personnes. Ceux qui connaissent le unaire et ceux qui ne le connaissent pas.
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Dim 13 Jan 2013, 14:11   Citer 

Erdnuss sa marche minied.gif

Maintenant je me consacre a mon programme jeux... qui bug de partout




P.S. j'ai échanger "stop" par "Goto Q" parce que sinon, l'ecran se figeait et sa ne quittais pas le programme comme je voulais.

 Adresse email Haut de page Bas de page 
 
Erdnuss



Autorisation : Membre
Nb de messages : 30
Inscrit le : Mer 14 Déc 2011, 20:42
Posté le : Dim 13 Jan 2013, 16:10   Citer 

Ah oui, c'était Goto Q crazy.gif

----------------------
Il y a 11 sortes de personnes. Ceux qui connaissent le unaire et ceux qui ne le connaissent pas.
 Adresse email Haut de page Bas de page 
 
dragmazik



Autorisation : Membre
Nb de messages : 25
Inscrit le : Lun 03 Déc 2012, 20:00
Posté le : Dim 13 Jan 2013, 16:46   Citer 


Citer
Ah oui, c'était Goto Q



C'est pas grave, tu m'as bien aidé quand meme bigmouth.gif merci encore

 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Page générée en 6 requêtes