Объект Свойство Значение Label1 Caption Моя первая программа


Procedure NewGame(); forward



бет15/23
Дата25.09.2023
өлшемі1.52 Mb.
#478523
түріПрограмма
1   ...   11   12   13   14   15   16   17   18   ...   23
Лабораторные

Procedure NewGame(); forward; // генерирует новое поле
Procedure ShowPole(Canvas : TCanvas; status : integer); forward;// Показывает поле
Procedure Kletka(Canvas : TCanvas; row, col, status : integer); forward; // выводит содержимое клетки
Procedure Open( row, col : integer); forward;// открывает текущую и все соседние клетки, в которых нет мин
Procedure Mina(Canvas : TCanvas; x, y : integer); forward; // Рисует мину
Procedure Flag( Canvas : TCanvas; x, y : integer); forward;// Рисует флаг

  1. Первое событие, которое происходит, это создание формы. Запрограммируем код на это событие

procedure TForm1.FormCreate(Sender: TObject);
var row,col : integer;
begin
сюда запишите код заполнения всего массива значениями -3
NewGame(); // разбрасываем мины
Form1.ClientHeight := H*MR + 1; Form1.ClientWidth := W*MC + 1;
end;













  1. В этой процедуре используется функция NewGame(), генерирующая минное поле. Её код приведён ниже

// новая игра — генерирует новое поле
procedure NewGame ();
var 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; // кол-во мин


Достарыңызбен бөлісу:
1   ...   11   12   13   14   15   16   17   18   ...   23




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет