| |
Delphi - делаем компьютерные игры
if RadioGroup1.ItemIndex=1 then begin
Gde.Brush.Color:=clWhite; {меняем цвет этой фигуры на белый}
end;
RadioGroup1.ItemIndex:=1-RadioGroup1.ItemIndex;
end;
end;
Итак, программа "Крестики-нолики" работает. Правда, это не совсем компьютерная игра: в нее играют два человека, а не человек против компьютера. Пока автоматически даже не определяется, что один из игроков победил (выстроил три своих клетки в ряд). Мы могли бы объяснить и дальнейшие шаги разработки этой игры (определение победы, автоматическое совершение шагов за второго игрока, сохранение игровой ситуации и т. д.), но это уже несколько сложнее, да и игра "Крестики-нолики" не настолько интересна, чтобы ее полностью программировать. В следующем номере разберем пример более интересной игры, где одной стороной противостояния будет компьютер.
Домашнее задание
Доработайте программу "Крестики-нолики" так, чтобы в нее могли играть трое. Для этого надо добавить еще одну строчку в RadioGroup1.Items, еще один IF (с номером 2 в условии) в процедуру обработки щелчка мышью (названия цветов можно посмотреть, используя инспектор объектов, как мы делали в эксперименте на втором шаге этого примера). Сложность только в формуле чередования игроков. Она такова: RadioGroup1.ItemIndex:= (RadioGroup1.ItemIndex+1) mod 3.
Операция mod есть взятие остатка от деления. Как известно, остаток от деления любого числа на 3 может принимать значения только 0, 1 или 2. Так, 0 mod 3 = 0, 1 mod 3 = 1, 2 mod 3 = 2, 3 mod 3 = 0 и т. д. Операция mod очень удобна именно когда числа 0, 1, ... , N надо повторять циклически.
|