(* ===================================================== *)
(*      Apprentissage de la programmation avec OCaml     *)
(*      Catherine Dubois & Valérie Ménissier-Morain      *)
(*                Éditions Hermès Sciences               *)
(*                        Mars 2004                      *)
(* ===================================================== *)
(* Fichier MLSRC/CC/CC_niveaux/lancement.ml              *)
(* ===================================================== *)

open Graphics;;
open Representation;;
open Affichage_jeu;;
open Action;;

let niveau_maximum = 6;;

let jeu () =
  Random.self_init ();
  état.sélection <- None;
  état.niveau <- 0;
  état.sélection <- None;
  état.niveau <- 0;
  open_graph "";
  set_window_title "Court circuit";
  while état.niveau <= niveau_maximum do
    état.niveau <- état.niveau+1;
    nouvelle_zone_de_jeu ();
    clear_graph ();
    dessiner_zone_de_jeu ();
    dessiner_cartouche ();
    while not (zone_de_jeu_vide ()) do
      let s = wait_next_event [ Key_pressed; Button_down] in
      if s.button then
        begin
        let
 (c,l) = position_zone_de_jeu (s.mouse_x,s.mouse_y) in
        if position_pièce_zone_de_jeu_valide (c, l)
        then
          match
 état.sélection with
          | None -> sélectionner (c,l)
          | Some (c',l') ->
              if (c',l') = (c,l)
              then désélectionner (c,l)
              else éliminer (c,l) (c',l')
        end
      else if s.keypressed && s.key = 'q' then exit 0
    done;
  done;
  exit 0;;

jeu();;

Ce document a été traduit de LATEX par HEVEA.