IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Jeu d'échecs] Problème du cavalier


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut [Jeu d'échecs] Problème du cavalier
    Bonjour,

    Je cherche à résoudre un problème voisin du problème connu du cavalier (parcours de toutes les cases):

    Trouver pour un cavalier le chemin le plus court pour aller d'une case départ à une case arrivée.

    Il me parait naturel de qualifier de chemin le plus court celui qui demande le moins de coups (avec en question annexe, y-en-a-t-il plusieurs et dans ce cas les trouver tous).

    Par contre, dans la stratégie d'approche, faut-il privilégier la recherche de tous les chemins qui aboutissent à la case arrivée, et ne conserver que le(s) plus courts, ou bien imaginer un critère de proximité-rapprochement au plus près de la case arrivée. Le critère serait alors la "distance" de la case départ (ou de la (des) suivante(s)) à la case d'arrivée. Comment alors qualifier la distance ? nombre de cases à parcourir ? distance géométrique de centre à centre ? ...

    A vos neurones.

    Merci

  2. #2
    Membre régulier
    Homme Profil pro
    Amateur
    Inscrit en
    Juin 2015
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Amateur
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2015
    Messages : 52
    Points : 94
    Points
    94
    Par défaut
    Tu pourrais utiliser l'algorithme de Dijkstra.

    Pour l'exemple, en partant de la position (0, 0) l'algorithme te donnera le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     0  3  2  3  2  3  4  5 
     3  4  1  2  3  4  3  4 
     2  1  4  3  2  3  4  5 
     3  2  3  2  3  4  3  4 
     2  3  2  3  4  3  4  5 
     3  4  3  4  3  4  5  4 
     4  3  4  3  4  5  4  5 
     5  4  5  4  5  4  5  6

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Septembre 2013
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Si j'ai bien compris, le critère retenu est le nombre de coups.
    Chaque case, à partir de la case origine, est marquée avec la longueur du chemin pour y arriver, et ainsi de suite.
    Pour une case déjà marquée, si le marquage trouvé (la longueur du chemin) est supérieur au marquage effectué, on passe au marquage suivant.
    Jusqu'à avoir marqué toutes les cases.
    Tous les chemins sont mémorisés, et il suffit alors d'extraire ceux qui aboutissent à la case destination.

    Je m'y colle bientôt (j'avais oublié l'algorithme de Dijkstra que j'ai étudié il y a trente ans environ) avec du code Python, et je publie le résultat.

    Merci

Discussions similaires

  1. problème de typage pour un jeu d'échec
    Par chlab dans le forum Caml
    Réponses: 2
    Dernier message: 02/08/2009, 10h11
  2. Réponses: 2
    Dernier message: 29/05/2008, 10h53
  3. Réponses: 12
    Dernier message: 11/05/2008, 22h05
  4. Problème du brahmane et du jeu d'échecs
    Par biba13 dans le forum Pascal
    Réponses: 3
    Dernier message: 11/02/2008, 15h10
  5. Jeu d'échec borland soap
    Par rpoulin dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/10/2005, 05h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo