Poster un nouveau sujet Poster une réponse
Casse tete
Auteur Message
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Lun 04 Juil 2011, 17:04   Citer 

Salut a tous, je poste ici un programme de casse tete, je ne pense pas qu'il en existe d'equivalent, le seul probleme, c'est qu'il faut avant concevoir les niveaux.... Il est livré avec le premier niveau que jai fait ^^

Les regles du jeu sont simples: Le 1 doir rejoindre le 1 , le 2 le 2 et le 3 le 3.
Mais leur trajectoire ne doivent pas se croiser (evidemment tongue.gif)

Donc, LE CODE happy.gif


Code

Lbl 12
Effecran
{8,15->Dim([C]
Remplir(0,[C]
4->A
1->B
4->C
15->D
1->E
8>F        // ce sont ces variables qui determinent le niveau.
"1->Chaine1
"2->Chaine2
"3->Chaine3 // Pas vraiment utile, juste pour eviter un clignotement
While 1
1->[C](A,B)
2->[C](C,D)
3->[C](E,F)
If A=4 et B=10:"[theta]->chaine1  // Sinon mettre Output(A,B,"[theta]
If C=4 et D=6:"[theta]->chaine2  // Bref
If E=8 et F=8:"[theta]->chaine3  //Rebref ^^
If A=4 et B=10 et C=4 et D=6 et E=8 et F=8: Goto[theta]
Output(A,B,1
Output(C,D,2
Output(E,F,3
Output(4,10,chaine1  // Mettre 1 sinon
Output(4,6,chaine2   //..2
Output(8,8,chaine3   // Et pis 3 xD
Output(1,16,M
Output(8,16,M   // un des deux n'est pas necessaire
codetouche->K
If K=92:1->M
If K=93:2->M
If K=94:3->M 
If K=24:Then
If M=1:B-1->B
If M=2:D-1->D
If M=3:F-1->F  // meme question
End
If K=26:Then
If M=1:B+1->B
If M=2:D+1->D
If M=3:F+1->F
End
If K=25:Then
If M=1:A-1->A
If M=2:C-1->C
If M=3:E-1->E
End
If K=34:Then
If M=1:A+1->A
If M=2:C+1->C
If M=3:E+1->E
End
If[C](A,B)=2 ou [C](A,B)=3 ou [C](C,D)=1 ou [C](C,D)=3 ou [C](E,F)=1 ou [C](E,F)=2:Goto 12
End           // Ici le End etait a la fin....
Lbl [Theta]
Disp "bien joué





Il se joue avec les touches flechées et 1,2,3 pour choisir quel nombre bouger
Vous deplacez le 1 a gauche, le 2 a droite et le 3 en haut... laugh.gif

Comment please tongue.gif

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Lun 04 Juil 2011, 17:14   Citer 


Code

If K=92:1->M
If K=93:2->M
If K=94:3->M

devient

3(K=94)+2(K=93)+(K=92)->M



Le reste je sais pas si on peut simplifier

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 Adresse email Haut de page Bas de page 
 
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Lun 04 Juil 2011, 17:18   Citer 

Merci pour la modif, jai edité mon message happy.gif

 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Lun 04 Juil 2011, 17:20   Citer 

De rien godgrace.gif godgrace.gif godgrace.gif mais c'est vraiment pas grand chose.

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 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 04 Juil 2011, 20:24   Citer 

La description me rappelle un jeu papier dont j'ai oublié le nom.
Mais je ne peux pas en être sûr car le programme ne marche pas chez moi.

Edit : sur internet il a été baptisé Dédalo
Mais impossible de me souvenir de l'ancien nom.

----------------------
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 
 
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Lun 04 Juil 2011, 21:47   Citer 

Euh!? Il marche pas ou?

 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 04 Juil 2011, 22:46   Citer 

Mon problème est que le programme revient systématiquement au début : ça clignote et je ne peux pas agir.

Plusieurs raisons :

Il y a des fautes de frappe dans les sto (E-1->C et E+1->C sont faux)

Je crois qu'il y a une erreur dans la longue ligne de tests :
Dans l'ordre des égalités 1,2,1,3,1,2 ce qui semble être incohérent. (EDIT c'est avéré dans le prochain message critique)

La ligne indiquée par calcugeek est fausse car M est remis à 0 quand on appuie sur aucune touche ou sur les flêches. (dommage car c'était bien tenté)
solutions :
-supprimmer la ligne de calcugeek (remettre les If)
-modifier la ligne de calcugeek afin qu'elle conserve M quand on appuie ailleurs que sur les chiffres. (un peu compliqué)


Pourtant j'ai encore des problèmes.

----

Dès que j'aurai testé une version fonctionnelle je plancherai sur une amélioration avec liste.

PS: je ne comprends pas l'intérêt des chaînes.

----------------------
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 
 
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Mar 05 Juil 2011, 8:30   Citer 

Les Chaines permettent d'eviter un clignotement (Deux Output a la suite et aux memes positions) Jai reverifié le code Le end a la fin etait mal placé mais a part sa je vois pas...

 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
linkakro



Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 05 Juil 2011, 12:15   Citer 

Cela ne sert à rien d'utiliser des chaînes plutôt que des nombres. A moins que ce ne soit à cause du thêta. Autant le remplacer par 0.
EDIT : j'ai eu du mal à comprendre mais maintenant j'ai compris que thêta sert à faire clignoter les cases d'arrivée quand le trajet est complet.

Corrige la longue ligne de If :
If [C](A,B)=2 ou [C](A,B)=3 ...

Maintenant je peux jouer mais le jeu ne détecte pas la victoire.

----------------------
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 
 
tilo1996



Autorisation : Membre
Nb de messages : 122
Inscrit le : Sam 23 Avr 2011, 10:47
Posté le : Mar 05 Juil 2011, 12:26   Citer 

la correction est faite Mais c'est vraiment bizarre evil.gif Il marche parfaitement chez moi sad.gif maxiangry.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 : Jeu 07 Juil 2011, 1:22   Citer 

J'ai bidouillé ça : (V4)
Code
Normal:Float   // pas nécessaire mais paramètre les nombres
Lbl 1
ClrHome
{8,15->dim([C]
Fill(0,[C]
{4,1,4,15,1,8->L1
1->M
{1,1,1->L2
1->[C](4,1
2->[C](4,15
3->[C](1,8
Output(4,1,1
Output(4,15,2
Output(1,8,3
1->[C](4,10
2->[C](4,6
3->[C](8,8
Output(4,10,1
Output(4,6,2
Output(8,8,3
While sum(L2
Output(1,16,M
Repeat K
getKey->K
End
If K=45
Goto 1
If K=94:3->M
If K=93:2->M
If K=92:1->M
L1->L3
If K=24
L1(2M)-L2(M->L1(2M
If K=26
L1(2M)+L2(M->L1(2M
If K=25
L1(2M-1)-L2(M->L1(2M-1
If K=34
L1(2M-1)+L2(M->L1(2M-1
[C](L1(2M-1),L1(2M
If Ans and M-Ans
L3->L1
L1(2M-1->A
L1(2M->B
M->[C](A,B
Output(A,B,M
If A=4 and B=10:0->L2(1
If A=4 and B=6:0->L2(2
If A=8 and B=8:0->L2(3
End
ClrHome
"GAGNE

Il y a du code en plus par-ci et plein de code en moins par-là.
On peut revenir sur ses pas mais cela n'efface pas son chemin.
On recommence au début avec Annul.

Il y a quelques petites choses posibles, mais la complexité sera trop grande comparé au gain de mémoire ou de vitesse.

----------------------
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 
 
sandro



Autorisation : Membre
Nb de messages : 1366
Inscrit le : Ven 25 Mar 2011, 22:58
Posté le : Jeu 07 Juil 2011, 9:33   Citer 

Je crois que tu peut optimiser un petit peu:
-le "normal" et le "float" ne servent je crois à rien ici.
- et là (vers la fin), on peut simpliffier à chaque ligne (parrenthèse juste avant le "->"

Code
If K=24:L1(2M)-L2(M->L1(2M
If K=26:L1(2M)+L2(M->L1(2M
If K=25:L1(2M-1)-L2(M->L1(2M-1
If K=34:L1(2M-1)+L2(M->L1(2M-1



Sandro

PS1 : c'est moi ou ton avatar ne s'affiche plus (il y a une peutite croix à la place aec "avatar" écrit à coté , le tout dans un cadre gris clair)

PS2 : où sont passé tous les membres? on tourne à moins de 5messages par jours tous enssemble cry.gif

----------------------
mort à l'inutile, place à la mémoire libre et aux programmes
 Adresse email Haut de page Bas de page 
 
calcugeek



Autorisation : Membre
Nb de messages : 72
Inscrit le : Jeu 26 Mai 2011, 16:41
Posté le : Jeu 07 Juil 2011, 10:52   Citer 

En vacances ^^

----------------------
En école d'ingénieurs depuis cette année.
Continue de programmer sur ma ti malgré les 3 tonnes quotidiennes de devoirs ^^
Fan de metallica et de tous autres groupes sachant jouer du vrai métal. (yeah!!!)
 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 07 Juil 2011, 15:02   Citer 

Si, le Normal et le Float servent à ce que les nombres soient toujours sous format "1" et pas "1.000" par exemple. Sinon il faut employer des chaînes à la place des nombres dans les output et remplacer une des formules par des If.

La parenthèse n'est pas le plus important. Quand je nettoie ces choses là, je le fait à la fin au cas où je réécrirais la ligne durant le développement.
Cela ne mange pas de pain : je les enlève du message concerné par ta remarque.

---

J'ai modifié la V3 pour faire la V4.
Cela allonge l'initialisation mais supprimme une boucle et un goto. (plus rapide)
J'édite l'ancien message. (les parties que tu as cité n'ont pas changé)

---

PS: moi je serai ailleurs pendant deux semaines au moins. Puis j'aurai du boulot. (conduite et bouquins)

----------------------
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 
 
Poster un nouveau sujet Poster une réponse





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