else Kletka(Form1.Canvas, row, col, status); end; end;
При открывании клетки, в которой нет чисел и мин, должны открываться все такие же соседние клетки. Такое поведение обеспечивает процедура Open. Во время работы процедура вызывает сама себя до тех пор, пока выполняется некоторое условие (есть ещё неоткрытые пустые клетки, примыкающие к данной). Такая функция называется рекурсивной.
// рекурсивная функция открывает текущую и все соседние клетки, в которых нет мин
Procedure Open( row, col : integer);
begin
if Pole[row,col] = 0 then
begin
Pole[row,col] := 100;
Kletka(Form1.Canvas, row,col, 1);
Open(row,col-1); Open(row-1,col); Open(row,col+1); Open(row+1,col);
//примыкающие диагонально
Open(row-1,col-1); Open(row-1,col+1); Open(row+1,col-1); Open(row+1,col+1);
End else
if (Pole[row,col] < 100) and ( Pole[row,col] <> -3 ) then
begin
Pole[row,col] := Pole[row,col] + 100; Kletka(Form1.Canvas, row, col, 1);
end; end;
Самостоятельно запишите процедуру, которая выполняется по нажатию на пункт меню Новая игра
ЛИТЕРАТУРА
Delphi 5: учебный курс, С. Бобровский, Питер 2002 г.
Аладьев В.З., Хунт Ю.Я., Шишаков М.Л., Основы информатики. Учебное пособие, М., Филин, 1998, 496с.
Информатика. Учебник под ред. Проф. Н.В. Макаровой, Финансы и статистика, 2001, 768с.
Балафанов Е.К., Бурибаев Б., Даулеткулов А.. 30 уроков по информатике, Алматы, Джагамбек, 1999г, 442с (на русском и казахском языках)
Фигурнов В.З. IBM PC для пользователя, 7 изд., Москва, ИНФРА, 1998, 328с.
Каймин В.А., Питеркин В.М., Уртминцев А.Г. Информатика. Учебное пособие, 1998, 208с.
Кенин А.М., Печенкин Н. Окно в мир компьютеров, Екатеринбург, Деловая книга, 1996
Лабораторная работа № 14
Фракталы Курликю
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы – освоение студентами основных понятий программирования, интерфейса среды программирования методов управления свойствами компонент.
СОЗДАНИЕ SCREENSAVER (ХРАНИТЕЛЯ ЭКРАНА)
О ткройте среду программирования Delphi
Создадим простейший хранитель экрана, используя в качестве рабочего алгоритма создание фракталов Курликю
Алгоритм предельно прост. Рисуется отрезок некоторой длины (угол ). Затем по рекурсивной формуле определяется угловой коэффициент по формуле
где
к концу этой линии подрисовывается отрезок такой же длины, но повёрнутый на угол
относительно предыдущей. Так продолжается далее. В результате получается некоторая ломаная линия. Примеры фракталов Курликю при некоторых иррациональных s показаны ниже.
Для начала запрограммируем алгоритм рисования такой линии
Настройте свойства формы таким образом, чтобы она разворачивалась на весь экран и уберите у не границы
Для рисования фрактала пишем следующую функцию (функция любезно предоставлена студентом КИУ-22 ©Голубевым А.)
Достарыңызбен бөлісу: |