Головоломка на Delphi

Программка, которую я рассматриваю в этой статье, получила большую популярность и встречается часто в компьютерных играх. Для реализации проекта запускаем Delphi и создаем новый проект. Для конструкции программы понадобится компонент CheckBox в количестве пяти штук. Так что устанавливаем CheckBox на форме, в поле Caption запишем значение «Победа», которое будет выводиться в конце игры и размножим до пяти штук посредством копирования и вставки (Ctrl+с и Ctrl+v ). Так как «Победа» выводится в конце, то пропишем имена от 1 до 5.  

Суть будет в том, что событие Click флажка будет реагировать на действия игрока, но так как процесс может продолжаться очень долго, то применим глобальную переменную логического типа (назову ее Flag) и запишем ее в Var:

Flag: Boolean;

В Инспекторе объектов формы выберем процедуру OnCreate и добавим

Flag: False;

Теперь обработаем щелчки на флажках: для этого щелкнем на первом флажке и в созданной процедуре (OnClick) запишем

If Flag then Exit;

Flag:=True;

gol

Далее устанавливаем контроль над массивом i (у нас получается пять флажков – значит массив 0 до 4):

Controls[i] as TCheckBox;

Выясняем, какой флажок был переключен

for Index :=0 to 4 do

if Sender = Controls[Index] then break;

проверяем, установлен флажок или сброшен

if not (Controls[Index] as TCheckBox).Checked

then

если условие выполнено, если флажок сейчас сброшен, то есть до щелчка он был установлен

(Controls[Index] as TCheckBox).Checked := True

далее

else

begin

переключаем два следующих флажка. Узнаем их номера

num:= Index +1;

чтобы не выйти за пределы массива, изменяем состояние нулевого флажка

if Index = 4 then num :=0;

меняем состояние флажка на противоположный

Controls[num] as TCheckBox).Checked := not (Controls[num] as TCheckBox).Checked;

num:=num+1;

также изменяем второй флажок

if Index = 3 then num :=0;

(Controls[num] as TCheckBox).Checked := not (Controls[num] as TCheckBox).Checked;

изменение состояния флажков окончено.

End;

Проверяем решение:

e := True;

for i:= 0 to 4 do

e:=e and (Controls[i] as TCheckBox).Checked;

если головоломка решена

if e then

вывод информации о победе

for i:=0 to 4 do

begin

(Controls[i] as TCheckBox).Caption:=’Ïîáåäà';

(Controls[i] as TCheckBox).Enabled:=False;

end;

и глобальная переменная равна

Flag := False;

. создание игры головаломка на Delphi 7
. головоломка палатки реализация делфи
Комментирование и размещение ссылок запрещено.