un case tête : le jeu des pyramides

Salut à tous.

Je suis confronté à un problème. Un ami m'a proposé un case tête que j'essaye de résoudre grâce à un programme en C. Voici les règles.
- Il y a une carte en 2D similaire à un échiquier sur lequel se trouve des obstacles (immobiles), 3 pions (mobiles) et 1 case arrivée.
- l'utilisateur (ici, l'ordinateur) déplace les pions qu'il souhaite dans les 4 directions principales.
- Lorsqu'un pion se déplace, il doit continuer son mouvement jusqu'à rencontrer un obstacle ou une autre pyramide.
Le but du jeu est de trouver la solution optimale pour placer les 3 pions sur l'arrivée (seule case où les pions peuvent se chevaucher).

J'ai essayé de faire une boucle en choisissant au hasard le pion et la direction. Mais ce n'est pas du tout adapté au problème. Je pense qu'il faut faire un parcours en largeur mais je n'y comprend rien et le fait d'avoir 3 pions me parait être encore plus difficile.

Une âme charitable pourrait-elle m'aider ?

Réponses

  • Bonjour,


    Y a-t-il une solution optimale a ce jeu ? Si oui pouvez-vous m'expliquer le principe merci.

    29294
  • Numérotation : (a b c d e) x (1 2 3 4 5 6)

    On s'aperçoit assez vite que si on envoie les pyramides l'une après l'autre, la dernière n'atteindra jamais l'arrivée. Ce sera donc un travail de groupe :

    Première étape : amener la pyramide b6 en e2 (3 coups)
    Deuxième étape : la pyramide e6 rejoint c3 (2 coups)
    Quatrième étape : la pyramide b4 se rend en d3 (3 coups)
    Cinquième étape : les pyramides c3 et d3 descendent sur la seconde rangée.
    Sixième étape : les trois pyramides atteignent l'arrivée.

    Durée totale des opérations : 13 coups.

    Aldo
  • Merci mais en fait j crois qu'on peut le faire en douze coups (à taton). Mais ce que je recherche c'est plus la manière de traiter mathématiquement le problème: sa modélisation (ici j'ai une carte particulière mais j'aurais pu en donner une autre) pour optimiser par la suite sa programmation .
  • En onze coups alors :

    1.e6-e1
    2.b6-e6
    3.e6-e2
    4.b4-e4
    5.e4-e3
    6.e2-a2 (arrivé)
    7.e1-e2
    8.e2-a2 (arrivé)
    9.e3-c3
    10.c3-c2
    11.c2-a2 (arrivé)

    Mais aucune idée répondant à ta question.
Connectez-vous ou Inscrivez-vous pour répondre.