Реферат: Помощь в обучении программированию

Если фигура близнец есть (TwinConstructor<>nil)

то создаем фигуру близнец на основе своих параметров TwinConstructor.CreateTwin

проверяем не залазит ли созданная фигура на клетки занятые другими фигурами Twin.CheckEach

Если не залазит то

Очистить все клетки занятые текущей фигурой (ClearCurrent)

Нарисовать во все клетки фигуры близнеца (Twin.MakeCurrent)

Возвратить как результат выполнения функции созданного близнеца (Rotate:=Twin)

Освободить ресурсы занятые текущей фигурой (Free)

Иначе если залазит то удалить созданного близнеца (Twin.Free)

Возвратить как результат выполнения функции себя, так поворот не удался и фигура падает в прежнем виде (Rotate:=self)

CanDown

Проверить не выходит ли нижняя граница фигуры за пределы поля (Ybase>DownLimit) и проверить не попадают ли в случае перемещения вниз клетки данной фигуры на клетки другой фигуры CheckEach(IsEmptyCell,Xbase,Ybase-1)

Down

Очистить все клетки занятые фигурой (ClearCurrent)

Уменьшить координату по Y базовой точки

Нарисовать во все клетки фигуры (MakeCurrent)

Move

Если движение фигуры налево

Проверить не выходит ли левая граница фигуры за пределы поля (Xbase>LeftLimit) и проверить не попадают ли в случае перемещения клетки данной фигуры на клетки другой фигуры CheckEach(IsEmptyCell,Xbase-1,Ybase)

Если не попадает то

Очистить все клетки занятые фигурой (ClearCurrent)

Уменьшить координату по X базовой точки

Нарисовать во все клетки фигуры (MakeCurrent)

Если движение фигуры направо

Проверить не выходит ли правая граница фигуры за пределы поля (Xbase<AField.FieldCountX-RightLimit-1) и проверить не попадают ли в случае перемещения клетки данной фигуры на клетки другой фигуры CheckEach(IsEmptyCell,Xbase+1,Ybase)

Если не попадает то

Очистить все клетки занятые фигурой (ClearCurrent)

Увеличить координату по X базовой точки

Нарисовать во все клетки фигуры (MakeCurrent)

К-во Просмотров: 442
Бесплатно скачать Реферат: Помощь в обучении программированию