Программка, которую я рассматриваю в этой статье, получила большую популярность и встречается часто в компьютерных играх. Для реализации проекта запускаем Delphi и создаем новый проект. Для конструкции программы понадобится компонент CheckBox в количестве пяти штук. Так что устанавливаем CheckBox на форме, в поле Caption запишем значение «Победа», которое будет выводиться в конце игры и размножим до пяти штук посредством копирования и вставки (Ctrl+с и Ctrl+v ). Так как «Победа» выводится в конце, то пропишем имена от 1 до 5. Если Вы работаете на планшете, очень полезно иметь интернет всегда «под рукой». Вы можете купить внешний универсальный 3g модем еще и с функцией WIFI для планшета по оптимальной и доступной цене.
Суть будет в том, что событие Click флажка будет реагировать на действия игрока, но так как процесс может продолжаться очень долго, то применим глобальную переменную логического типа (назову ее Flag) и запишем ее в Var:
Flag: Boolean;
В Инспекторе объектов формы выберем процедуру OnCreate и добавим
Flag: False;
Теперь обработаем щелчки на флажках: для этого щелкнем на первом флажке и в созданной процедуре (OnClick) запишем
If Flag then Exit;
Flag:=True;
Далее устанавливаем контроль над массивом 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;
. Головоломка делфи делфи головоломка2 Головоломка делфи головоломка палатки реализация делфи «Головоломка № 1» delphi