let argument_suivant ~printP ~liste_piece ~plateau ~icourant ~jcourant ~piece_choisie =
myprint myverb ("\t<<<<<<<<<<<<<<<<");
myprint myverb ("Appel a 'argument_suivant' avec Indices : icourant="^(string_of_int icourant)^" et jcourant="^(string_of_int jcourant)^" ! et la piece choisie est :");
if (myverb = Verbeux_textuel) then print_piece piece_choisie;
let liste_piece_suivant = (suppri_liste piece_choisie liste_piece) in
let (i_suivant, j_suivant) = (indices_suivants ~i:icourant ~j:jcourant ~n:plateau.n ~m:plateau.m) in
myprint myverb "\t<<\n\tLe plateau argument dans 'argument_suivant' est, avant modification, :";
if (myverb = Verbeux_textuel) then printP plateau;
let plateau_suivant = {
c = plateau.c;
n = plateau.n;
m = plateau.m;
p = Array.map Array.copy (plateau.p);
v = true;
} in
myprint myverb "\t<<\n\tDans 'argument_suivant', on viend de construire le nouveau plateau. Testons :";
myprint myverb ("\t<<\n\t Egalité pour les valeurs :"^(string_of_bool (plateau = plateau_suivant))^" Egalité machine :"^(string_of_bool (plateau == plateau_suivant))^". Alors ?");
myprint myverb "\t<<\n\tLe plateau suivant dans 'argument_suivant' est, avant modification, :";
if (myverb = Verbeux_textuel) then printP plateau_suivant;
plateau_suivant.p.(icourant).(jcourant) <- Some piece_choisie;
myprint myverb "\t<<\n\tLe plateau suivant dans 'argument_suivant' est, après modification, :";
if (myverb = Verbeux_textuel) then printP plateau_suivant;
myprint myverb "\t<<\n\tLe plateau argument dans 'argument_suivant' est, après modification, :";
if (myverb = Verbeux_textuel) then printP plateau;
( liste_piece_suivant, plateau_suivant, i_suivant, j_suivant)