(* ===================================================== *)
(* Apprentissage de la programmation avec OCaml *)
(* Catherine Dubois & Valérie Ménissier-Morain *)
(* Éditions Hermès Sciences *)
(* Mars 2004 *)
(* ===================================================== *)
(* Fichier MLSRC/CC/CC_temps/suggestion.ml *)
(* ===================================================== *)
open Outils;;
open Representation;;
open Circuits;;
open Affichage_base;;
open Affichage_jeu;;
exception Circuit of (int*int)*(int*int);;
let détection_circuits_valides zone_de_jeu =
try
for c = état.zone_de_jeu.débutc to état.zone_de_jeu.finc do
for l = état.zone_de_jeu.débutl to état.zone_de_jeu.finl do
for c' = état.zone_de_jeu.débutc to état.zone_de_jeu.finc do
for l' = état.zone_de_jeu.débutl to état.zone_de_jeu.finl do
if (c,l) <> (c',l') &&
circuit_valide (c, l) (c', l') <> []
then raise (Circuit ((c,l),(c',l')))
done;
done;
done;
done; raise Not_found
with Circuit ((c,l),(c',l')) -> ((c,l),(c',l'));;
let suggestion () =
try
let ((c,l),(c',l')) =
détection_circuits_valides () in
let (x,y)=coordonnées_pièce (c,l)
and (x',y')=coordonnées_pièce (c',l') in
dessiner_sélection (x,y); dessiner_sélection (x',y');
sleep 0.1;
dessiner_désélection (x,y); dessiner_désélection (x',y');
sleep 0.1;
dessiner_sélection (x,y); dessiner_sélection (x',y');
sleep 0.1;
dessiner_désélection (x,y); dessiner_désélection (x',y')
with Not_found -> écrire_pas_de_circuit ();;
Ce document a été traduit de LATEX par
HEVEA.