Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Mar 03 Déc 2013, 21:27
J'ai allégé ce programme en perm.Il est (toujours) pas graphique et il devine (toujours) pas quand on a gagné. Le programme fait 380 octet, mais il doit pouvoir être (encore) optimisé. (EDIT : en fait non, lire en bas)
Code
ClrHome
"+--+--+--+→Str1
"! ! ! !→Str2
For(I,1,7,2
Output(I,1,Str1
End
For(I,2,6,2
Output(I,1,Str2
End
Output(1,11,"MORPIO
Output(3,13,"J-X
Output(5,13,"J-O
Output(3,12,">
1→J
2→X:2→Y
2→A:2→B
{3,3→dim([A]
Fill(0,[A]
0→θ
Repeat θ=9
θ+1→θ
3-J→J
Repeat K=105
Output(A,B,"
Output(Y,X,"+
Y→A:X→B
getKey→K
X-3(K=24)+3(K=26→X
Y-2(K=25)+2(K=34→Y
If X>8:2→X
If X<2:8→X
If Y>6:2→Y
If Y<2:6→Y
End
J→[A](A/2,(B+1)/3
Output(7-2J,12,"
Output(1+2J,12,">
Output(A,B,"
Output(A,B+1,sub("OX",J,1
Matr>list([A],(B+1)/3,L₁
prod(L₁
Matr>list([A]^t,A/2,L₁
max(J^3={Ans,prod(L₁→D
{1,1
For(C,1,3
Ans{[A](C,C),[A](C,4-C
End
max(D,max(J^3=Ans
End
If Ans
Then
Output(8,5,sub("OX",J,1
Output(8,7,"GAGNE !
Else
Output(8,4,"MATCH NUL !
End
-> flèche sto
> plus grand que
< plus petit que
Bonne chance !
EDIT : Oubliez ce qui est dit au début ! Après les améliorations effectuées par Linkakro, m@thieu41 et moi-même sur ce sujet : http://www.tout82.org/t232-probleme-calcul-avec-listes, le programme vérifie la victoire. (aller sur le sujet pour le bon code)
Autorisation : Membre
Nb de messages : 3738
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 03 Déc 2013, 22:29
Citer
J'ai allégé ce programme en perm.Il est (toujours) pas graphique et il devine (toujours) pas quand on a gagné. Le programme fait 400 octet, mais il doit pouvoir être (encore) optimisé.
J'aimerais bien que tu indiques où tu as trouvé l'original, si j'ai bien compris le sous-entendu.
Je trouve ça. sujet1
Code
: If K=45
: Then
: Goto A
: End
Ceci est une très mauvaise idée. Et tous les Gotos dans des boucles/alternatives.
Je suis surpris de voir 3-J->J, c'est ma marque de fabrique dans pratiquement tous mes jeux. Tant mieux si je ne suis pas tout seul à en profiter.
---------------------- 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)
Autorisation : Membre
Nb de messages : 504
Inscrit le : Ven 07 Déc 2012, 20:09
Posté le : Mer 04 Déc 2013, 13:29
Tu as bien vu le sujet que tu as mis en lien. J'ai publié ce programme il y a un an et tu l'avais déjà amélioré, donc en fait c'est ta correction. Je l'ai revu hier et ai réglé tous les problèmes. Pour les Goto j'essaie de les retirer de la boucle. Je corrige donc le premier message ! Merci.
Autorisation : Membre
Nb de messages : 848
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Mer 04 Déc 2013, 14:17
L'astuce du 3-J->J est pas mal, mais je trouve mieux de faire non(J->J. Comme ça J vaut soit 0 soit 1, c'est plus pratique pour les différents tests (If J/If non(J)), et aussi pour éviter certains tests en utilisant les booléens.