let nest_pas_faux (mon_plateau:plateau) =
let (c, n, m, p) = (mon_plateau.c, mon_plateau.n, mon_plateau.m, mon_plateau.p) in
(** Nous supposons que tous les 'array array' manipulés seront bien rectangles, et que de plus tout les plateaux auront des paramètres n et m correspondant effectivement à leurs dimensions. *) |
(** Ainsi, n = nombreColonne p, et m = nombreLigne p. *) |
(** On vérifie d'abord horizontalement, *) |
let result_h = ref true in
for i = 0 to (m-2) do
for j = 0 to (n-1) do
match (p.(i).(j), p.(i+1).(j)) with
| Some x, Some y ->
result_h := !result_h && (compatible_h ~pieceG:x ~pieceD:y );
| _ -> ()
done;
done;
(** Puis verticalement. *) |
let result_v = ref true in
for i = 0 to (m-1) do
for j = 0 to (n-2) do
match (p.(i).(j), p.(i).(j+1)) with
| Some x, Some y ->
result_v := !result_v && (compatible_v ~pieceB:x ~pieceH:y );
| _ -> ()
done;
done;
(!result_h && !result_v)