Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 21 Jan 2010, 20:47
Voici POUSPOUS. C'est le jeu du taquin (ou pousse-pousse) 682 octets
Vous devez ordonner les cases à savoir :
-depuis en haut à gauche jusqu'en bas à droite où doit se trouver la case vide à la fin (ligne par ligne)
-De 1 à 9 puis A à Z (pas plus car c'est ingérable pour un humain normalement cortiqué ou bien ça pose quelques problèmes d'affichage).
On peut choisir ses dimensions mais sachez que le classic est 4*4. Et puis le maximum est 36 cases sans dépasser les bords.
Une petite ambiguité pour les déplacements :
A vous de voir dans le code si vous concevez le déplacement du vide ou le choix de la case autour. Avec les flèches.
Code
0->Z
1->¤
EffEcr
Lbl0
input "LIGNES ",T
input "COLONNES ",S
If T>8 ou S>16 ou T*S>36 ou S=1 ou T=1
Then
Disp "INVALIDE"
goto0
End
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"->Chaîne1
EffListe L1
T*S-1->dim(L1)
EffVar [A]
{T,S}->dim([A])
T*S-1->A
T->Y
S->X
EffEcr
For(W,1,T
For(V,1,S
LblA
entAléat(1,A)->B
If somme(L1)=A
gotoB
If L1(B)=1
gotoA
1->L1(B)
B->[A](W,V)
End
End
LblB
For(W,1,T
For(V,1,S
Lbl2
[A](W,V)->B
If B<10
output(W,V,B
If B=0
output(W,V," "
If B>9
output(W,V,sous-Chaîne(Chaîne1,B-9,1
If ¤=2
goto9
If W*V=A+1
gotoC
End
End
LblC
Y->O
X->N
0->K
Repeat K[différent]0
codeTouche->K
If K=24 ou K=25 ou K=26 ou K=34
Then
If K=24 et X[différent]1 // X[dif]S
X-1->X // X+1->X
If K=25 et Y[différent]1 // Y[dif]T
Y-1->Y // Y+1->Y
If K=26 et X[différent]S // X[dif]1
X+1->X // X-1->X
If K=34 et Y[différent]T // Y[dif]1
Y+1->Y // Y-1->Y
Else
0->K
End
End
Z+1->Z
[A](Y,X)->[A](O,N)
0->[A](Y,X)
2->¤
O->W
N->V
goto2
Lbl9
output(Y,X," "
1->Q
If [A](T,S)=0
Then
0->Q
0->R
EffListe L1
For(W,1,T
For(V,1,S
R+1->R[A](W,V)->L1(R)
End
End
For(R,2,A-1
If L1(R)<L1(R-1)
1->Q
End
End
If Q=1
gotoC
EffEcr
Disp "TERMINE","COUPS="
output(2,8,Z
---------------------- 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)
---------------------- 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)