OVH Cloud OVH Cloud

[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.

8 réponses

1 2
Avatar
Nicolas B.
Salut lSteph,

soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


Oùlala, on se calme :-)))
Ces deux mouvements sont beaucoup trop compliqués à représenter. En
effet, le repère que j'ai utilisé est fixé sur les facettes centrales,
et il ne faut donc pas les changer de place.
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes
les facettes du cube et changer les macros affectées à chaque flèche.

Mais ce n'est pas très contraignant : le premier mouvement peut être
remplacé par la succession de deux autres : par exemple, en reprenant
les noms des macros, le mouvement xMilieuPlus (qui n'existe pas) est
équivalent à la succession de xGaucheMoins et de xDroiteMoins.

Le problème de ne pas pouvoir pivoter le cube, est qu'on ne sait pas
vraiment sur quelle flèche cliquer si l'on veut déplacer telles ou
telles facettes de la vue de droite du cube. Mais on peut s'en sortir en
plaçant des flèches-boutons sur le cube de droite, comme l'a fait Modeste.


A+
Nicolas B.

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.







Avatar
Modeste
Bonsour®
LSteph wrote:
Pourrais-tu le doter:
soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.
en effet c'est une des premières évidences qui apparait pour quelqu'un qui a

manipulé physiquement "avec dextérité" ;o)))
le kube à l'époque de sa grande vogue...
mais je me rappelle également avoir vu des "virtuoses" qui le manipulaient
sans que la croix centrale ne bouge dans l'espace !!!
car en y regardant bien, faire tourner une rangée centrale revient à faire
tourner en sens inverse les deux rangées laterales puis à changer le
référentiel spatial ...
d'ailleurs toutes les solutions et développements litéraires sur la "théorie
des groupes" mise en oeuvre dans le Kube de Rubik considèrent également ce
référentiel central fixe.

la solution de Nicolas utilise la fixité {xyz} de ce référentiel spatial, et
c'est en cela quelle est simple et élégante !!!
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip
@+
--
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
LSteph
Re,
;o)))
Rassures-toi , j'avais bien repèré que les axes centraux étaient fixes et
que cela
faisait un peu moins de mouvements et surtout d'images à gèrer, et pour
avoir un
peu mis le nez dans ton code , je vois bien qu'il n'est pas si simple
d'ajouter ces
deux options ..sans quoi ;-) elles y seraient déjà, tu n'aurais pas
attendu..
En tout cas, tu as fait du beau travail et voilà encore un joli joujou
que je garde non seulement précieusement mais aussi pour m'amuser aussi bien
avec le code qu'avec le cube d'ailleurs....

Encore bravo!

lSteph

"Nicolas B." a écrit dans le message
de news: eP3167%
Salut lSteph,

soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


Oùlala, on se calme :-)))
Ces deux mouvements sont beaucoup trop compliqués à représenter. En effet,
le repère que j'ai utilisé est fixé sur les facettes centrales, et il ne
faut donc pas les changer de place.
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes les
facettes du cube et changer les macros affectées à chaque flèche.

Mais ce n'est pas très contraignant : le premier mouvement peut être
remplacé par la succession de deux autres : par exemple, en reprenant les
noms des macros, le mouvement xMilieuPlus (qui n'existe pas) est
équivalent à la succession de xGaucheMoins et de xDroiteMoins.

Le problème de ne pas pouvoir pivoter le cube, est qu'on ne sait pas
vraiment sur quelle flèche cliquer si l'on veut déplacer telles ou telles
facettes de la vue de droite du cube. Mais on peut s'en sortir en plaçant
des flèches-boutons sur le cube de droite, comme l'a fait Modeste.


A+
Nicolas B.

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.








Avatar
LSteph
Bonsoir,

...donc tu as aussi été plus qu'un adepte, il semble!
;o))

"Modeste" a écrit dans le message de news:
%231UNGH$
Bonsour®
LSteph wrote:
Pourrais-tu le doter:
soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.
en effet c'est une des premières évidences qui apparait pour quelqu'un qui

a manipulé physiquement "avec dextérité" ;o)))
le kube à l'époque de sa grande vogue...
mais je me rappelle également avoir vu des "virtuoses" qui le manipulaient
sans que la croix centrale ne bouge dans l'espace !!!
car en y regardant bien, faire tourner une rangée centrale revient à faire
tourner en sens inverse les deux rangées laterales puis à changer le
référentiel spatial ...
d'ailleurs toutes les solutions et développements litéraires sur la
"théorie des groupes" mise en oeuvre dans le Kube de Rubik considèrent
également ce référentiel central fixe.

la solution de Nicolas utilise la fixité {xyz} de ce référentiel spatial,
et c'est en cela quelle est simple et élégante !!!
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip
@+
--
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.
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes
les facettes du cube et changer les macros affectées à chaque flèche.


Après réflexion intense, pas du tout besoin de renommer les facettes, ni
de changer les flèches (sauf la couleur avec les modifications de Modeste).
Mais pour effectuer ce mouvement il faut écrire une nouvelle procédure
telle que celle-ci (pour satisfaire les adeptes des mouvements du
milieu :-) :

Sub ChangementFaceMilieu(m As Integer, N As Integer)

Dim Mem(3, 2) As Integer
Dim i As Integer
Dim k As Integer

If (m + N) Mod 2 = 0 And (m <> 0 Or N <> 2) Then k = 2

For i = 0 To 2
Mem(0, i) = Facette(Mod3(m - k + 1), Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor
Mem(1, i) = Facette(m, Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor
Mem(2, i) = Facette(Mod3(m + k - 1), N, 1, _
i).Fill.ForeColor.SchemeColor
Mem(3, i) = Facette(Mod3(m + k - 1), Mod3(N + k - 1), 1, _
i).Fill.ForeColor.SchemeColor
Next
For i = 0 To 2
Facette(Mod3(m - k + 1), Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor = Mem(3, i)
Facette(m, Mod3(N - k + 1), i, 1).Fill.ForeColor.SchemeColor = _
Mem(0, i)
Facette(Mod3(m + k - 1), N, 1, i).Fill.ForeColor.SchemeColor = _
Mem(1, i)
Facette(Mod3(m + k - 1), Mod3(N + k - 1), 1, _
i).Fill.ForeColor.SchemeColor = Mem(2, i)
Next

End Sub

La rotation est celle ayant un axe orthogonal à la face (m, n) spécifiée
en arguments. Pour un axe choisi, il y deux faces possibles : chacune
effectue la rotation dans un sens différent.

Pour voir la numérotation des faces, déprotéger la feuille et cliquer
sur une des facettes. Les coordonnées (m, n) de la face sont les deux
premiers chiffres du nom de la facette.


Nicolas B.

Salut lSteph,

soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


Oùlala, on se calme :-)))
Ces deux mouvements sont beaucoup trop compliqués à représenter. En
effet, le repère que j'ai utilisé est fixé sur les facettes centrales,
et il ne faut donc pas les changer de place.
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes
les facettes du cube et changer les macros affectées à chaque flèche.

Mais ce n'est pas très contraignant : le premier mouvement peut être
remplacé par la succession de deux autres : par exemple, en reprenant
les noms des macros, le mouvement xMilieuPlus (qui n'existe pas) est
équivalent à la succession de xGaucheMoins et de xDroiteMoins.

Le problème de ne pas pouvoir pivoter le cube, est qu'on ne sait pas
vraiment sur quelle flèche cliquer si l'on veut déplacer telles ou
telles facettes de la vue de droite du cube. Mais on peut s'en sortir en
plaçant des flèches-boutons sur le cube de droite, comme l'a fait Modeste.


A+
Nicolas B.


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.










Avatar
Nicolas B.
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip


L'algorithme pour trouver une solution (même s'il n'est pas tout à fait
au point) est très impressionnant. Il est déjà si difficile de résoudre
le vrai cube, alors pour arriver à le programmer, c'est encore beaucoup
plus délicat, et je n'oserais pas me lancer dans une telle aventure...

Mais en ce qui concerne la programmation des mouvements, l'auteur du
fichier n'a pas été très astucieux puisqu'il n'a pas cherché à regrouper
plusieurs mouvements dans une procédure et a préféré écrire une
procédure pour chaque mouvement.


A+
Nicolas B.

Bonsour®
LSteph wrote:

Pourrais-tu le doter:
soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


en effet c'est une des premières évidences qui apparait pour quelqu'un qui a
manipulé physiquement "avec dextérité" ;o)))
le kube à l'époque de sa grande vogue...
mais je me rappelle également avoir vu des "virtuoses" qui le manipulaient
sans que la croix centrale ne bouge dans l'espace !!!
car en y regardant bien, faire tourner une rangée centrale revient à faire
tourner en sens inverse les deux rangées laterales puis à changer le
référentiel spatial ...
d'ailleurs toutes les solutions et développements litéraires sur la "théorie
des groupes" mise en oeuvre dans le Kube de Rubik considèrent également ce
référentiel central fixe.

la solution de Nicolas utilise la fixité {xyz} de ce référentiel spatial, et
c'est en cela quelle est simple et élégante !!!
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip
@+



Avatar
LSteph
Super!
J'ai donc ajouté ta sub dans mouvements et
ceci dans flèches et cela fonctionne!

Merci Nicolas
'lSteph
'***
Sub gauchdroit()
ChangementFaceMilieu 1, 1
End Sub
Sub hautgauche()
ChangementFaceMilieu 0, 0
End Sub
Sub droitgauche()
ChangementFaceMilieu 0, 2
End Sub
Sub droithaut()
ChangementFaceMilieu 2, 2
End Sub
Sub gauchehaut()
ChangementFaceMilieu 2, 1
End Sub
Sub hautdroit()
ChangementFaceMilieu 1, 0
End Sub
'***


"Nicolas B." a écrit dans le message
de news: %
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes
les facettes du cube et changer les macros affectées à chaque flèche.


Après réflexion intense, pas du tout besoin de renommer les facettes, ni
de changer les flèches (sauf la couleur avec les modifications de
Modeste).
Mais pour effectuer ce mouvement il faut écrire une nouvelle procédure
telle que celle-ci (pour satisfaire les adeptes des mouvements du
milieu :-) :

Sub ChangementFaceMilieu(m As Integer, N As Integer)

Dim Mem(3, 2) As Integer
Dim i As Integer
Dim k As Integer

If (m + N) Mod 2 = 0 And (m <> 0 Or N <> 2) Then k = 2

For i = 0 To 2
Mem(0, i) = Facette(Mod3(m - k + 1), Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor
Mem(1, i) = Facette(m, Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor
Mem(2, i) = Facette(Mod3(m + k - 1), N, 1, _
i).Fill.ForeColor.SchemeColor
Mem(3, i) = Facette(Mod3(m + k - 1), Mod3(N + k - 1), 1, _
i).Fill.ForeColor.SchemeColor
Next
For i = 0 To 2
Facette(Mod3(m - k + 1), Mod3(N - k + 1), i, _
1).Fill.ForeColor.SchemeColor = Mem(3, i)
Facette(m, Mod3(N - k + 1), i, 1).Fill.ForeColor.SchemeColor = _
Mem(0, i)
Facette(Mod3(m + k - 1), N, 1, i).Fill.ForeColor.SchemeColor = _
Mem(1, i)
Facette(Mod3(m + k - 1), Mod3(N + k - 1), 1, _
i).Fill.ForeColor.SchemeColor = Mem(2, i)
Next

End Sub

La rotation est celle ayant un axe orthogonal à la face (m, n) spécifiée
en arguments. Pour un axe choisi, il y deux faces possibles : chacune
effectue la rotation dans un sens différent.

Pour voir la numérotation des faces, déprotéger la feuille et cliquer sur
une des facettes. Les coordonnées (m, n) de la face sont les deux premiers
chiffres du nom de la facette.


Nicolas B.

Salut lSteph,

soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


Oùlala, on se calme :-)))
Ces deux mouvements sont beaucoup trop compliqués à représenter. En
effet, le repère que j'ai utilisé est fixé sur les facettes centrales, et
il ne faut donc pas les changer de place.
En fait ce serait possible à programmer, mais à chaque fois qu'on
effecturait un tel mouvement sur le cube, il faudrait renommer toutes les
facettes du cube et changer les macros affectées à chaque flèche.

Mais ce n'est pas très contraignant : le premier mouvement peut être
remplacé par la succession de deux autres : par exemple, en reprenant les
noms des macros, le mouvement xMilieuPlus (qui n'existe pas) est
équivalent à la succession de xGaucheMoins et de xDroiteMoins.

Le problème de ne pas pouvoir pivoter le cube, est qu'on ne sait pas
vraiment sur quelle flèche cliquer si l'on veut déplacer telles ou telles
facettes de la vue de droite du cube. Mais on peut s'en sortir en plaçant
des flèches-boutons sur le cube de droite, comme l'a fait Modeste.


A+
Nicolas B.


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.












Avatar
LSteph
C'est très bien comme cela,
il est souvent plus aisé de relire plusieurs petites sub simples
qu'une grosse compliquée.

A+
lSteph

"Nicolas B." a écrit dans le message
de news:
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip


L'algorithme pour trouver une solution (même s'il n'est pas tout à fait au
point) est très impressionnant. Il est déjà si difficile de résoudre le
vrai cube, alors pour arriver à le programmer, c'est encore beaucoup plus
délicat, et je n'oserais pas me lancer dans une telle aventure...

Mais en ce qui concerne la programmation des mouvements, l'auteur du
fichier n'a pas été très astucieux puisqu'il n'a pas cherché à regrouper
plusieurs mouvements dans une procédure et a préféré écrire une procédure
pour chaque mouvement.


A+
Nicolas B.

Bonsour®
LSteph wrote:

Pourrais-tu le doter:
soit d'une rotation des rangées centrales,
soit de pouvoir pivoter le cube entier.


en effet c'est une des premières évidences qui apparait pour quelqu'un
qui a manipulé physiquement "avec dextérité" ;o)))
le kube à l'époque de sa grande vogue...
mais je me rappelle également avoir vu des "virtuoses" qui le
manipulaient sans que la croix centrale ne bouge dans l'espace !!!
car en y regardant bien, faire tourner une rangée centrale revient à
faire tourner en sens inverse les deux rangées laterales puis à changer
le référentiel spatial ...
d'ailleurs toutes les solutions et développements litéraires sur la
"théorie des groupes" mise en oeuvre dans le Kube de Rubik considèrent
également ce référentiel central fixe.

la solution de Nicolas utilise la fixité {xyz} de ce référentiel spatial,
et c'est en cela quelle est simple et élégante !!!
à comparer avec celui-ci :
http://www.xl-logic.com/xl_files/games/cube.zip
@+





1 2