|
#1
|
|||
|
|||
Игра Перевертыши
Необходимо создать поле 4х4. И в каждой клетке кружок.
(Это я сделала - 16 кругов Shape и поле тоже) Но теперь надо так, чтобы при нажатии на один кружок менялся его цвет и ближних по горизонтали и вертикали на противоположный. Только два цвета: белый и черный. Дело в том, что у меня не получается при самом начале определить цвет. Я уже пробовала массив этих shape сделать. var shape : array [1..16] of TShape; . . . for i:=1 to 16 do \\тут выбор цвета происходит итп итд и затем: shape[i].pen.color:= .... ; Не знаю, где то в интернете подсмотрела. Подскажите, как хотя бы просто вот начальное распределение цветов сделать. Не каждому же shape отдельно задавать. |
#2
|
||||
|
||||
Игра-триггер.
Определяешь массив a: array[0..2, 0..2] of boolean, при нажатии на каждый элемент меняешь значения через not, все, что останется - завязаться на значения элементов массива и менять цвет шэйпов, или чего ты там используешь. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
mufasa (24.01.2013)
|
#3
|
|||
|
|||
только наверно лучше не
Код:
var shape : array [1..16] of TShape; Код:
var shape : array [1..4,1..4] of TShape; и затем Код:
// изменение цвета procedure TForm1.SetCellColor(I,J:Integer;B:Boolean); var C:TColor; begin if B then C:=clRed else C:=clBlue; with shape[i,j] do begin Pen.Color:=C; Brush.Color:=C; end; end; procedure TForm1.InvertCellColor(I,J:Integer); var C:TColor; begin with shape[i,j] do begin if Brush.Color = clBlue then C:=clRed else C:=clBlue; Pen.Color:=C; Brush.Color:=C; end; end; Код:
procedure TForm1.InitColors; var i,j,R:integer; begin for i:=1 to 4 do for j := 1 to 4 do begin R:=Random(2);(* не забыть где нибудь в FormCreate вызвать Randomize *) SetCellColor(I,J , R < 1 ); end; end; |