Aux échecs, il est possible que le jeu se termine après 4 coups (2 chacun) avec un mat du fou .
Votre objectif est de trouver le Fool's Mate of Halma : le jeu à 2 joueurs de Halma qui minimise le nombre de tours joués.
Il y a plus de 10 56 états de carte, et j'ai vu le facteur de branchement dépasser 1000, donc il est probable que personne ne trouvera la solution optimale. Au lieu de cela, vous essayez de trouver la meilleure solution possible.
Vous devez soumettre une liste de mouvements et tout code que vous avez utilisé pour générer ces mouvements.
Explication du jeu
Halma est similaire aux Dames chinoises, mais a joué sur un plateau carré 16 * 16.
Au départ, le tableau ressemble à ceci:
Le but du jeu est de déplacer toutes vos pièces vers les positions de départ des pièces de votre adversaire.
Au tour d'un joueur, il / elle peut:
Passer le virage
Déplacez une de ses pièces dans un espace vide adjacent. Les espaces adjacents comprennent des diagonales.
Prenez l'une de ses pièces et procédez comme suit un nombre illimité de fois: faites sauter la pièce par-dessus une pièce adjacente, en la posant sur l'espace opposé à la pièce sautée.
Voici un exemple pour illustrer le 2ème type de mouvement.
Règles
Soumettez une liste des mouvements légaux qui entraînent la fin du jeu.
Soumettez tout code que vous avez utilisé pour générer la liste.
Si vous obtenez un meilleur résultat à partir du code de quelqu'un d'autre, publiez le résultat dans un commentaire ou modifiez sa publication avec les nouveaux résultats.
Chaque mouvement doit être soit None
pour passer le tour, soit (x1,y1,x2,y2)
pour déplacer une pièce, où (x1,y1)
sont les coordonnées de la pièce à déplacer et (x2,y2)
sont la destination de cette pièce (pour les mouvements de saut, ignorez les coordonnées intermédiaires). Les coordonnées commencent au (0,0)
coin supérieur gauche. les coordonnées x augmentent vers la droite, les coordonnées y augmentent vers le bas. Les mouvements doivent être séparés par des retours à la ligne.
Vous pouvez utiliser ce script python pour vérifier vos déplacements. Utilisez python halma_verify.py < file
pour vérifier les emménagements file
.
La liste la plus courte l'emporte.
la source
Réponses:
Le jeu le plus court de halma est de 49 coups
Solution de 49 déplacements
Preuve qu'il n'y a pas de solution en 48 mouvements
Code utilisé pour cette solution
Le code prend désormais en charge pass
Notez que la solution à 47 coups dans le document est pour le problème de transfert de l'armée, pas pour le jeu le plus court de halma
J'espère pouvoir faire une bonne rédaction ce week-end
la source