[TI83] Taquin
2 participants
Page 1 sur 1
jovasco- Argent 4
- Age : 68
Messages : 80
Date d'inscription : 01/12/2012
Points Forum : 6
Points Concours : 0
Langages :- - TI-Basic Z80
- - TI-80
- - TI-82 Stats.fr
- - TI-86
- - TI-89
Re: [TI83] Taquin
C'est intéressant ça...
Je suis charmé par le numéro d'identification de grille basé sur l'initialisation de l'aléatoire.
Le mélange avec SortA et L1 aléatoire est original.
Mais rien ne semble assurer la solubilité de la grille. (il arrive que des grilles soient insolubles, et elles se différencient toutes des grilles solubles par les cases 14 et 15 une fois qu'on a résolu le reste)
L'aléatoire peut se répéter donc c'est maladroit mais puisqu'on fait un tri après ce n'est pas grave. D'ailleurs un bug permute circulairement les termes de même ordre.
Le conseil souvent appliqué pour résoudre ce problème est de mélanger par des actions élémentaires une grille déjà soluble, voire même la solution finale, pour créer la grille à résoudre par l'utilisateur.
Tu devrais utiliser les formules de passage de liste à matrice et réciproquement ou utiliser un seul des formats, et utiliser des variables en conséquence.
Pour Z la position de 1 à 16 et X,Y coordonnées de 1 à 4
Y=int((Z+3)/4)
X=Z-4Y+4
Cela éviterais la boucle For qui recherche la case 16.
Tu devrais mettre à jour les coordonnées immédiatement, quitte à stocker les anciennes, afin d'utiliser ces coordonnées dans un unique code d'affichage plutôt que de traiter chaque déplacement en un cas différent.
Je suis charmé par le numéro d'identification de grille basé sur l'initialisation de l'aléatoire.
Le mélange avec SortA et L1 aléatoire est original.
Mais rien ne semble assurer la solubilité de la grille. (il arrive que des grilles soient insolubles, et elles se différencient toutes des grilles solubles par les cases 14 et 15 une fois qu'on a résolu le reste)
L'aléatoire peut se répéter donc c'est maladroit mais puisqu'on fait un tri après ce n'est pas grave. D'ailleurs un bug permute circulairement les termes de même ordre.
Le conseil souvent appliqué pour résoudre ce problème est de mélanger par des actions élémentaires une grille déjà soluble, voire même la solution finale, pour créer la grille à résoudre par l'utilisateur.
Tu devrais utiliser les formules de passage de liste à matrice et réciproquement ou utiliser un seul des formats, et utiliser des variables en conséquence.
Pour Z la position de 1 à 16 et X,Y coordonnées de 1 à 4
Y=int((Z+3)/4)
X=Z-4Y+4
Cela éviterais la boucle For qui recherche la case 16.
Tu devrais mettre à jour les coordonnées immédiatement, quitte à stocker les anciennes, afin d'utiliser ces coordonnées dans un unique code d'affichage plutôt que de traiter chaque déplacement en un cas différent.
linkakro- Or 4
- Sexe :
Age : 30
Messages : 768
Date d'inscription : 01/07/2010
Etudes : dut geii (elec/info)
Points Forum : 51
Points Concours : 8
Langages :- - TI-Basic Z80
- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - TI-82 Stats.fr
- - TI-84 Pocket.fr
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|