Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[HS] Rubik's cube

18 réponses
Avatar
Nicolas B.
Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les
pièces et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5 mouvements.


Bonne soirée
Nicolas B.

10 réponses

1 2
Avatar
Modeste
Bonsour®
outils > macro > Nettoyer
exécuter
;o)))
non ???
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
Avatar
Frédo P
Bonjour Nicolas
C'est pas mal ,mais il y a encore un petit problème que j'en suis persuadé
tu vas pouvoir résoudre, après avoir commencé par quelques actions, je suis
sur une position où j'ai 10 carrés de la même couleur sur un seul cube.
à+

--
Fred
Pour répondre, ôtez "nsp"

"Nicolas B." a écrit dans le message
de news:
Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les
pièces et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5
mouvements.



Bonne soirée
Nicolas B.


Avatar
Nicolas B.
Bonjour Frédo,

Ben là je vois pas comment tu arrives à une telle position :
Il y a une macro Melanger dans le fichier qui permet de mélanger le cube
en effectuant les mêmes mouvements que si l'on cliquait sur les flèches
au hasard. Même en effectuant plusieurs centaines de mouvements, je n'ai
toujours que 9 facettes de la même couleur.
J'ai aussi testé avec le vrai rubik (non virtuel) : les mêmes mouvements
sur les deux cubes donnent bien les mêmes configurations des facettes.


Saurais-tu retrouver les mouvements qu'il a fallu pour faire apparaitre
une nouvelle facette ?


A+
Nicolas B.

Bonjour Nicolas
C'est pas mal ,mais il y a encore un petit problème que j'en suis persuadé
tu vas pouvoir résoudre, après avoir commencé par quelques actions, je suis
sur une position où j'ai 10 carrés de la même couleur sur un seul cube.
à+

--
Fred
Pour répondre, ôtez "nsp"

"Nicolas B." a écrit dans le message
de news:

Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les
pièces et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5


mouvements.


Bonne soirée
Nicolas B.







Avatar
JièL Goubert
Bonjoir(c) Nicolas B.

Joli, merci pour le virtuel ;-)

--
JièL / Jean-Louis GOUBERT
La FAQ Outlook est la : http://faq.outlook.free.fr/

Le 26/08/2005 23:05 vous avez écrit ceci :
Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les
pièces et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5 mouvements.


Bonne soirée
Nicolas B.


Avatar
MPi
Salut,
Intéressant ton programme...

Pour être en mesure de reculer, tu dois créer un tableau des mouvements
effectués (ou une collection...)
Pour savoir où on est rendu dans le recul, ça prend aussi un "Index" de
recul qui retrace la position dans ce tableau

En bref, chaque fois que tu cliques une flèche, tu envoies 3 paramètres à la
fonction Mouvement(). Ce sont ces paramètres que tu dois sauvegarder dans le
tableau. Et pour reculer, il suffit de mettre le 3e paramètre * -1 qui
équivaut au mouvement inverse

Un petit exemple de départ:
Il faut au départ redimensionner le tableau.
ReDim tabloMouvement(0)
Ici, j'ai placé ce code dans les fonctions Nettoyer et Mélanger.
Il faut donc passer par ces fonctions pour que ça marche.
On pourrait rajouter cette ligne ailleurs au besoin.

En entête du module:
Public tabloMouvement() As Integer
Public IndexRecul As Integer
Public EnRecul As Boolean

'Nouvelle macro
Sub Recul()
Dim MouvementInverse As Integer

EnRecul = True

MouvementInverse = tabloMouvement(IndexRecul - 1) * -1

Mouvement tabloMouvement(IndexRecul - 3), tabloMouvement(IndexRecul -
2), MouvementInverse
IndexRecul = IndexRecul - 3

End Sub

Ajout à la fonction existante:
Sub Mouvement(m As Integer, n As Integer, Sens As Integer)
If Not EnRecul Then
IndexRecul = IndexRecul + 3
ReDim Preserve tabloMouvement(IndexRecul)
tabloMouvement(IndexRecul - 3) = m
tabloMouvement(IndexRecul - 2) = n
tabloMouvement(IndexRecul - 1) = Sens
End If

EnRecul = False

RotationFace m, n, Sens
ChangementFace m, n, Sens
TestGagne

End Sub

Michel

"Nicolas B." a écrit dans le message
de news:%
Bonjour Frédo,

Ben là je vois pas comment tu arrives à une telle position :
Il y a une macro Melanger dans le fichier qui permet de mélanger le cube
en effectuant les mêmes mouvements que si l'on cliquait sur les flèches
au hasard. Même en effectuant plusieurs centaines de mouvements, je n'ai
toujours que 9 facettes de la même couleur.
J'ai aussi testé avec le vrai rubik (non virtuel) : les mêmes mouvements
sur les deux cubes donnent bien les mêmes configurations des facettes.


Saurais-tu retrouver les mouvements qu'il a fallu pour faire apparaitre
une nouvelle facette ?


A+
Nicolas B.

Bonjour Nicolas
C'est pas mal ,mais il y a encore un petit problème que j'en suis
persuadé


tu vas pouvoir résoudre, après avoir commencé par quelques actions, je
suis


sur une position où j'ai 10 carrés de la même couleur sur un seul cube.
à+

--
Fred
Pour répondre, ôtez "nsp"

"Nicolas B." a écrit dans le
message


de news:

Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les
pièces et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5


mouvements.


Bonne soirée
Nicolas B.









Avatar
Nicolas B.
Merci Michel, mais ce n'était en fait qu'une devinette...
Mais (pour se consoler) on peut, en se servant de ta procédure et en
modifiant un peu la macro TestGagne, programmer une procédure qui trouve
la solution du problème en essayant toutes les combinaisons de 5
mouvements possibles (test de 5 mouvements choisis, puis retour en
arrière si ce n'était pas bon , etc.).
Je n'ai pas essayé mais je pense que le plus simple reste de chercher la
solution "à la main" car 5 mouvements, ça fait presque 250 000 cas à
traiter... et puis la solution n'est pas si compliquée à trouver ;-)


A+
Nicolas B.

Salut,
Intéressant ton programme...

Pour être en mesure de reculer, tu dois créer un tableau des mouvements
effectués (ou une collection...)
Pour savoir où on est rendu dans le recul, ça prend aussi un "Index" de
recul qui retrace la position dans ce tableau

En bref, chaque fois que tu cliques une flèche, tu envoies 3 paramètres à la
fonction Mouvement(). Ce sont ces paramètres que tu dois sauvegarder dans le
tableau. Et pour reculer, il suffit de mettre le 3e paramètre * -1 qui
équivaut au mouvement inverse

Un petit exemple de départ:
Il faut au départ redimensionner le tableau.
ReDim tabloMouvement(0)
Ici, j'ai placé ce code dans les fonctions Nettoyer et Mélanger.
Il faut donc passer par ces fonctions pour que ça marche.
On pourrait rajouter cette ligne ailleurs au besoin.

En entête du module:
Public tabloMouvement() As Integer
Public IndexRecul As Integer
Public EnRecul As Boolean

'Nouvelle macro
Sub Recul()
Dim MouvementInverse As Integer

EnRecul = True

MouvementInverse = tabloMouvement(IndexRecul - 1) * -1

Mouvement tabloMouvement(IndexRecul - 3), tabloMouvement(IndexRecul -
2), MouvementInverse
IndexRecul = IndexRecul - 3

End Sub

Ajout à la fonction existante:
Sub Mouvement(m As Integer, n As Integer, Sens As Integer)
If Not EnRecul Then
IndexRecul = IndexRecul + 3
ReDim Preserve tabloMouvement(IndexRecul)
tabloMouvement(IndexRecul - 3) = m
tabloMouvement(IndexRecul - 2) = n
tabloMouvement(IndexRecul - 1) = Sens
End If

EnRecul = False

RotationFace m, n, Sens
ChangementFace m, n, Sens
TestGagne

End Sub

Michel


Avatar
Frédo P
--
Fred
Pour répondre, ôtez "nsp"

"Nicolas B." a écrit dans le message
de news: #
Bonjour Frédo,

Ben là je vois pas comment tu arrives à une telle position :
Entschuldigung, ce sont ou mes yeux qui déconnent ou la définition de

l'orange et du rouge qui sont très proche l'un de l'autre.

Avatar
Modeste
Bonsour®Nicolas B.
il marche trés bien ton Kube !!!!
Félicitations, belle mise en oeuvre...
ta représentation et interactivité est la plus satisfaisante de tout les
rubikubes EXCEL que j'ai déja essayé...

pour mieux differencier le rouge et le orange, le foreColor.schemecolor
Orange pourrai prendre la valeur 52.
Ta representation à droite est cependant quelque peu perturbante puisque
renversée par rapport à la représentation de gauche
ceci dit, ce n'est qu'une habitude de visualisation spaciale,
à mon sens, il aurait ete préférable de laisser les centres des faces rouge
toujours en haut, orange toujours en bas , puisque de toute façon tes procs
ne font pas bouger la croix centrale ...
mes modifications : http://cjoint.com/?iCb5OGVcGI

quand à la possibilité de memorisation des mouvements aussi bien que
l'automatisation de quelques figures
ainsi que la reconstruction pas à pas, tu pourra t'inspirer des Anneaux
Hongrois sur excelabo.net

il suffit d'associer 1 lettre à chacun des différents mouvements(12) qu'il
faudra alors concatener à la chaine de mémorisation.
une relecture automatique inverse de cette chaine permet alors de deduire
les mouvement inverses.
@+

--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
Avatar
Nicolas B.
Bonjour Modeste,

Ta representation à droite est cependant quelque peu perturbante
puisque renversée par rapport à la représentation de gauche
ceci dit, ce n'est qu'une habitude de visualisation spaciale,
à mon sens, il aurait ete préférable de laisser les centres des faces
rouge toujours en haut, orange toujours en bas , puisque de toute
façon tes procs ne font pas bouger la croix centrale ...
mes modifications : http://cjoint.com/?iCb5OGVcGI


En effet, le cube non renversé est peut-être plus compréhensible.
En tout cas, tes flèches sont très bien faites. J'avais essayé d'en
tracer en relief, mais sans succès. En plus mettre les flèches des 12
mouvements possibles sur les deux vues du cube rend la représentation
plus claire.

Merci pour tous ces conseils.


A+
Nicolas B.

Bonsour®Nicolas B.
il marche trés bien ton Kube !!!!
Félicitations, belle mise en oeuvre...
ta représentation et interactivité est la plus satisfaisante de tout les
rubikubes EXCEL que j'ai déja essayé...

pour mieux differencier le rouge et le orange, le foreColor.schemecolor
Orange pourrai prendre la valeur 52.
Ta representation à droite est cependant quelque peu perturbante puisque
renversée par rapport à la représentation de gauche
ceci dit, ce n'est qu'une habitude de visualisation spaciale,
à mon sens, il aurait ete préférable de laisser les centres des faces rouge
toujours en haut, orange toujours en bas , puisque de toute façon tes procs
ne font pas bouger la croix centrale ...
mes modifications : http://cjoint.com/?iCb5OGVcGI

quand à la possibilité de memorisation des mouvements aussi bien que
l'automatisation de quelques figures
ainsi que la reconstruction pas à pas, tu pourra t'inspirer des Anneaux
Hongrois sur excelabo.net

il suffit d'associer 1 lettre à chacun des différents mouvements(12) qu'il
faudra alors concatener à la chaine de mémorisation.
une relecture automatique inverse de cette chaine permet alors de deduire
les mouvement inverses.
@+



Avatar
LSteph
Bonjour Nicolas,

Histoire d'ajouter un plus aux compliments mais aussi au Rubik's
Pourrais-tu le doter:
soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.

Encore Bravo quoiqu'il en soit et merci pour cette réalisation!

lSteph

"Nicolas B." a écrit dans le message
de news:
Hello,

Là j'ai un gros problème avec le fichier suivant : j'ai mélangé les pièces
et je n'arrive plus à les remettre en ordre :-(

http://perso.wanadoo.fr/nbr/56/rubik.xls

Je me souviens juste d'une chose : c'est que je n'ai fait que 5
mouvements.


Bonne soirée
Nicolas B.


1 2