Force brute : le programme cherche toutes les solutions possibles. Il considère les positions successives du trou (la case qui n'a pas de bille). En effet, une partie est entièrement déterminée par la liste des positions du trou.
Une fonction récursive teste les mouvements du trou vers les différentes cases atteignables. Si un mouvement est autorisé par les règles, il est effectué. L'état du plateu est alors affiché, ainsi que la liste des mouvements du trou et le score (le nombre de billes qui sont du bon côté).
Lorsque le programme trouve une solution (score = 16), la suite des positions du trou est écrite dans
un fichier nommé solutions
.
Les cases sont numérotées de la manière suivante :
02 10 01 05 09 13 00 04 08 12 16 03 07 11 15 06 14
8-9-7-6-8-11-12-9-7-4-3-6-8-11-13-12-9-7-4-1-0-3-6-8-10-9-7-8-
5-11-14-15-16-13-12-15-9-8-2-1-7-4-5-11-8-14-11-12-9-7-8-2-5-11-8
Le script playSol.pl
, écrit en perl, permet de visualiser les solutions contenues
dans le fichier solutions
.
Les parties sont jouées à l'écran à raison d'un coup par seconde.
Analyse des 10'000 premières solutions.