CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++] demande conseil pour rubic's cube

dnob700
dnob700
Niveau 10
07 janvier 2005 à 20:38:04

C++ ? rubic´s cube ?

bon, je suis en train de " coder" un programme pour résoudre le problème du rubic´s cube.

Mais ce qui m´ennuie et je réfléchis la dessus depuis quelques temps, c´est la structures de stockage à employé.

ça m´a semblé évident qu´il faudrait faire de la prog objet pour faire propre, mais même comme ça, je ne vois pas du tout comment stocker les information nécessaire d´une manière pratique.

si quelqu´un à une idée sur la manière de le faire, je suis ouvert à toutes suggestions.

mercui d´avance.

Altonfrere
Altonfrere
Niveau 10
07 janvier 2005 à 20:53:28

comme ca sur une première idée je verrai bien un tableau 2D représenté par le cube " déplié" . .. dans les 2 directions les plus longues les rotations semblent faciles, après c´est un peu plus délicat sur chaque face...

Chaque face à découper en 3 en hauteur/largeur pour obtenir chaque cube :
. ...___
. __|___|__
|__|___|__|
. ..|___|
. ..|___|

tu verras que dans sur la hauteur de la croix ( le I quoi) les rotations reviennent à décaler vers le haut/bas les cases que des faces centrales avec un retour dans le coin opposé des cases qui sortent etc... Idem pour la rotation horizontale au niveau du - de la croix . ..
Après tu as des connexions sur les bords des faces entre elles.

En plus ca peut te servir de texture pour visualiser le résultat :)

dnob700
dnob700
Niveau 10
07 janvier 2005 à 22:00:32

parce que j´avais pensé à faire une liste de 8 coins et 12 pièce ( les pas coin) qui auraient juste 2 propriétés : un numéro arbitraire ( de 1 à 8 ou de 1 à 12) qui suffit donc à déterminer quel couleurs est ce que la pièce porte. Et un autre numéro qui serait celui de la pièce dont elle occupe la position.

mais le problème avec ce système, c´est que je ne sais pas comment représenter l´orientation des pièces ( pour savoir quel couleurs est en face de quelle face).

Blawk
Blawk
Niveau 10
08 janvier 2005 à 19:37:53

La représentation de Altonfrere me parait... très mauvaise ; -).

En effet, le joueur de cube le sait bien, il n´y a pas de coins blanc-jaune-orange, par exemple. Or la représentation de Altonfrere permet une telle configuration.

Donc au lieu de devoir tout vérifier tout le temps, autant opter pour une représentation qui ne PEUT PAS repésenter les configurations impossibles.

La proposition de dnob700 me parait mieux. Pour l´orientation, il suffit d´un nombre...

Altonfrere
Altonfrere
Niveau 10
08 janvier 2005 à 21:28:27

je suis pas le seul à penser au cube déplié . ..

http://sourceforge.net/projects/cubex/

http://cubex.sourceforge.net/screen.png

c´était juste une idée mais le dessin ci dessus représente mieux à quoi je pensais . ..

et je vois pas en quoi ca permet des configurations impossibles vu que ca représente le cube d´une manière déplié donc n´importequelle configuration réelle à un moment donné. Le tout c´est de faire les rotations des faces comme il faut.

jejej
jejej
Niveau 9
08 janvier 2005 à 22:21:23

Juste pour savoir , tu utilises un algorythme spécial , ou une manière humaine , plus ou moins au coup par coup ?

Nan parceque j´aimerais bien savoir , j´ai un petit probleme pour faire la seconde courronne :p)

En tout cas bonne chance , mais c tout ce que je peux faire parceque j´ai aucune idee ^^
Comme ca a l´isntinct , j´aurais codé les couleurs de 1 à 6 .

MathieuN7
MathieuN7
Niveau 10
08 janvier 2005 à 22:37:25

ne maitrisant aucune lib graphique, j´ai tendance à penser surtout à l´algo. Et pourquoi ne ferais-tu pas des structures correspondant aux faces du cube, structure contenant par exemple neuf int correspondant aux couleurs?

dnob700
dnob700
Niveau 10
08 janvier 2005 à 23:47:25

Blawk:dans tout les cas l´idée est de sois partir d´une structure ordonée et de la mélanger soit de demander à l´utilisateur d´entré une position valide. le problème des position impossible ne se pose pas si les algo sont bon après ça.

jejej:pour l´instant j´en suis qu´au problème de la représentation des donnée.
Après pour la résolution ça fait partie d´un projet plus gros. j´ai un pote qui veut écrire un algo évolutionniste en LISP pour résoudre ça. s´il le fait j´essayerais de l´implémenter, sinon j´utiliserais des algo existant ( ce que tu appelle d´une manière humaine).

MathieuN7: je pense que la représentation d´altonfrère était absolument coupé de tout problème graphique, je n´ai pas l´intention pour l´instant d´afficher quoi que ce soit d´autre à l´écran que des suite de caractère. disont que ce n´est pas le vraie problème.

pour les couleurs, j´utilise évidemment des int de 0 à 5 ( et pas 1 à 6, mais c´est pour les tableau).
pour l´orientation des pièces utilisé un numéro qui serait une rotation par rapport à la position normale est interessant, mais on retombe toujours sur le problème de par rapport à quoi : quand la pièce est à l´opposé sur le cobde de sa position normalle, comment savoir quel est sa rotation ( et plus précisemment, il n´y en a pas, ça dépend du coté par lequel on regarde).

codé chaque face séparement est ce sur quoi je me rabatrais à la fin, mais je voulais l´éviter car il n´y a plus d´algo pour traiter facilement le déplacement des pièce et il faut coder presque toute les possibilité différente ( surtout que chaque pièce va se retrouver dans 2 ou 3 tableau et pour rechercher une pièce à déplacer ça va pas être très joli).

je continu à chercher.
merci pour votre aide,

MathieuN7
MathieuN7
Niveau 10
09 janvier 2005 à 00:19:33

Ou alors tu peux faire un tableau 3D ne contenant que les petits cubes externes, sous forme de structures contenant les différents attributs, les coordonnées x;y du petit cube sur la face z

Tu peux ainsi faire facilement des fonctions qui vont se servir de x;y et z pour vérifier la compatibilité de déplacement...

JeanYvesYves
JeanYvesYves
Niveau 10
10 janvier 2005 à 08:27:29

allez, hop, ma petite contribution :
si vous voulez, je vous fais une fonction :

void affiche3d(...)
( faudra réfléchir aux parametres ; -p)

dnob700
dnob700
Niveau 10
10 janvier 2005 à 17:49:26

merci jyy, c´est sympa...

Mathieu, ton idée est " évidemment" la bonne, j´aicommencé à coder ça comme ça, et ça marche assez bien pour l´instant comme méthode.

en fait j´ai juste un gros cube fait de 27 petits cubes identiques ( ils ont tous 6 couleurs, même si certaine face ne sont pas visible, mais ça n´a pas d´importance) et comme ça, quand on pivote, ont envoie au cube l´ordre de pivoté, lui ergarde quel petit cube sont concerné, et demande à chaque petit cube de tourré.

vive la POO !

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment