Отладка программы в Delphi



              

Листинг 15 3 Процедура NewGame



Листинг 15.3. Процедура NewGame


// новая игра — генерирует новое поле

procedure NewGame ();

row,col : integer; // координаты клетки (индексы массива)

n : integer; // количество поставленных мин

k : integer; // кол-во мин в соседних клетках

begin

// Очистим эл-ты массива, соответствующие клеткам

// игрового поля

for row :=1 to MR do

for col :=1 to MC do Pole[row,col] := 0;

// расставим мины

Randomize О; // инициализация ГСЧ

n := 0; // кол-во мин

repeat

row := Random(MR) + 1;

col := Random(MC) + 1;

if (Pole[row,col] <> 9) then begin

Pole[row,col] := 9; n := n+1;

end;

until (n = NM);

// для каждой клетки вычислим // кол-во мин в соседних клетках

for row := 1 to MR do

for col := 1 to MC do

if (Pole[row,col] <> 9) then

begin k :=0 ;

if Pole[row-l,col-l] = 9 then k = k + 1;

if Pole[row-1,col] =' 9 then k = k + 1;

if Pole[row-1,col+1] = 9 then k = k + 1;

if Pole[row,col-1] = 9 then k = k + 1;

if Pole[row,col+1] = 9 then k = k + 1;

if Pole[row+1,col-1] = 9 then k = k + 1;

if Pole[row+1,col] = 9 then k = k + 1;

if Pole[row+l,col+l] = 9 then k := k + 1;

Pole[row,col] := k;

end;

status := 0; // начало игры

nMin := 0; // нет обнаруженных мин

nFlag := 0; // нет поставленных флагов

end;

После того как процедура NewGame расставит мины, процедура showPoie (ее текст приведен в листинге 15.4) выводит изображение игрового поля.




Содержание  Назад  Вперед