procedure TForm1.LT(X,Y:integer);
begin
with bm.Canvas do
begin
Pen.Color:=clBlue;
MoveTo(X,Y);
LineTo(X,Y+120);
LineTo(X+120,Y);
LineTo(X,Y);
Brush.Color:=clBlue;
FloodFill(X+1,Y+1,clBlue,fsBorder);
end;
end;
Пишем код, выполняемый на каждое событие таймера
procedure TForm1.Timer1Timer(Sender: TObject);
var
I,J:Integer;
begin
bm.canvas.Brush.Color:=clBlack;
bm.Canvas.FillRect(Rect);
for I:=0 to 3 do
for J:=0 to 3 do
begin
Application.ProcessMessages;
case random(4) of
0:LT(I*120,J*120);
1:RT(I*120,J*120);
2:LB(I*120,J*120);
3:RB(I*120,J*120);
end;
end;
Canvas.StretchDraw(Rect, Bm);
end;
Запустите программу и проверьте её в работе.
Выполните контрольные задания
КОНТРОЛЬНЫЕ ЗАДАНИЯ
Добавьте к программе ещё один режим работы. В этом режиме при щелчке на каждом из 16 составляющих квадратиков будет происходить циклическая смена состояния этого квадратика
«Научите» программу собирать симметричные относительно 4-х осей симметрии комбинации
«Научите» программу собирать симметричные относительно центра симметрии комбинации
ЛИТЕРАТУРА
Delphi 5: учебный курс, С. Бобровский, Питер 2002 г.
Аладьев В.З., Хунт Ю.Я., Шишаков М.Л., Основы информатики. Учебное пособие, М., Филин, 1998, 496с.
Информатика. Учебник под ред. Проф. Н.В. Макаровой, Финансы и статистика, 2001, 768с.
Балафанов Е.К., Бурибаев Б., Даулеткулов А.. 30 уроков по информатике, Алматы, Джагамбек, 1999г, 442с (на русском и казахском языках)
Фигурнов В.З. IBM PC для пользователя, 7 изд., Москва, ИНФРА, 1998, 328с.
Каймин В.А., Питеркин В.М., Уртминцев А.Г. Информатика. Учебное пособие, 1998, 208с.
Кенин А.М., Печенкин Н. Окно в мир компьютеров, Екатеринбург, Деловая книга, 1996
Лабораторная работа № 12
Игра сапёр
ЦЕЛЬ РАБОТЫ
Цель лабораторной работы – освоение студентами основных понятий программирования, интерфейса среды программирования методов управления свойствами компонент.
САПЁР
Откройте среду программирования Delphi
В программе игровое поле представлено массивом N+2 на M+2, где N xM — размер игрового поля. Элементы массива с номерами строк от 1 до N и номерами столбцов от 1 до М соответствуют клеткам игрового поля, первые и последние столбцы и строки соответствуют границе игрового поля
В начале игры каждый элемент массива, соответствующий клеткам игрового поля, может содержать число от 0 до 9. Ноль соответствует пустой клетке, рядом с которой нет мин. Клеткам, в которых нет мин, но рядом с которыми мины есть, соответствуют числа от 1 до 8. Элементы массива, соответствующие клеткам, в которых находятся мины, имеют значение 9
Элементы массива, соответствующие границе поля, содержат -3.
В процессе игры состояние игрового поля меняется (игрок открывает клетки и ставит флажки) и, соответственно, меняются значения элементов массива. Если игрок поставил в клетку флажок, то значение соответствующего элемента массива увеличивается на 100. Например, если флажок поставлен правильно в клетку, в которой есть мина, то значение соответствующего элемента массива станет 109. Если флажок поставлен ошибочно, например, в пустую клетку, элемент массива будет содержать число 100. Если игрок открыл клетку, то значение элемента массива увеличивается на 200. Такой способ кодирования позволяет сохранить информацию об исходном состоянии клетки.
Г лавная (стартовая) форма игры Сапер 2002 приведена на рис.
Подключите к программе два модуля StdCtrls и OleCtrls
В части реализации декларируем константы и переменные
const
MR = 10; // кол-во клеток по вертикали
MC = 10; // кол-во клеток по горизонтали
NM = 10; // кол-во мин
W = 40; // ширина клетки поля
H = 40; // высота клетки поля
var
Pole: array[0..MR+1, 0.. MC+1] of integer; // минное поле
nMin : integer; // кол-во найденных мин
nFlag : integer; // кол-во поставленных флагов
status : integer; // 0 - начало игры; 1- игра; 2 -результат
Теперь декларируем процедуры и функции с ключевым словом Forward означающим, что описание функции находится далее
Достарыңызбен бөлісу: |