Prova con una cosa del genere:
codice:
program dispos;
{ "Decommenta" la riga seguente se usi Delphi
{$APPTYPE CONSOLE}}
type
TMatrice = array [1..7, 1..7] of Char;
var
i, j, pedine: Integer;
matrice: TMatrice;
begin
{ Inizializza il seme (una sola volta) }
Randomize;
{ Accetta l'input e verifica se è entro i limiti (cosa accade se l'utente inserisce un carattere o una stringa?) }
Write('Numero di pedine (compreso tra 1 e 49) = ');
Readln(pedine);
if (pedine < 1) or (pedine > 49) then
Exit;
repeat
i := Random(7) + 1;
j := Random(7) + 1;
{ Evita doppioni }
if matrice[i, j] <> 'O' then
begin
matrice[i, j] := 'O';
Dec(pedine);
end;
until pedine = 0;
{ Stampa la matrice in modo molto "grezzo" }
for i := 1 to 7 do
begin
for j := 1 to 7 do
begin
Write(matrice[i, j], ' ');
end;
Writeln;
end;
end.
Questo è l'output per pedine = 13:
codice:
Numero di pedine (compreso tra 1 e 49) = 13
O O
O
O
O O O
O O
O O O
O