‹›Graphes et réseauxLe problème du cavalier
La version 11 ajoute la fonction FindHamiltonianPath, élargissant les capacités à trouver des chemins, des cycles et des tours. Trouvez un problème de cavalier dans lequel un cavalier ne se déplace qu'une seule fois dans chaque case d'un échiquier.
Afficher l'entrée complète de Wolfram Language
(* draw a checker board *)
checkerboard =
ArrayPlot[Table[Mod[j + i, 2], {i, 8}, {j, 8}],
ColorRules -> {1 -> RGBColor[0, .55, .77],
0 -> RGBColor[.67, .9, .99]}, Frame -> False,
DataRange -> {{1, 8}, {1, 8}}];
(* compute knight's tour *)
g = KnightTourGraph[8, 8];
tour = FindHamiltonianPath[g];
(* show the tour *)
Manipulate[
Show[{checkerboard,
HighlightGraph[g, PathGraph[tour[[;; i]]],
PlotTheme -> "Marketing",
GraphHighlightStyle -> "DehighlightHide",
EdgeStyle -> Thickness[.01]]}], {i, 1, Length[tour], 1},
SaveDefinitions -> True]