|
#1
|
|||
|
|||
Помогите...
Помогите пожалуйста.
Вот я написал так. Но так написанный код принимает как барьер 10 строку и 15 столбец "StringGridа" целиком... Код:
For i := 1 to n do // Заполняем ячейки, согласно правилам игры For j := 1 to n do begin if j=15 then StringGrid1.Cells[j-1,i+30] := '/'; if i=10 then StringGrid1.Cells[j+30,i-1] := '/'; If (StrToInt( mass_2[i,j] ) >= 1)and (StrToInt( mass_2[i,j] ) <=3) and ((j<>15) and (i<>10)) then StringGrid1.Cells[j-1,i-1] := '*'; If (StrToInt( mass_2[i,j] ) > 3 ) then StringGrid1.Cells[j-1,i-1] := '' end; |
#2
|
|||
|
|||
Пояснение...
Поясняю код как работает, рассматривается клетка. если вокруг этой клетки есть от 1 до 3 занятых * клеток то в рассматриваемой клетке ставится *. если есть звездочка в рассматриваемой клетке и в окружении больше 3 занятых * клеток то звёздочка с рассматриваемой клетки уничтожается.
If (StrToInt( mass_2[i,j] ) >= 1)and (StrToInt( mass_2[i,j] ) <=3) then StringGrid1.Cells[j-1,i-1] := '*'; If (StrToInt( mass_2[i,j] ) > 3 ) then StringGrid1.Cells[j-1,i-1] := '' задание моё. поставить барьеры. чтобы при размножении клетка не могла перейти за барьер или должна обойти его. Я поставил барьер в 10 строке и в 15 столбце. но барьер идет на весь столбец и строку. а мне это не нужно. мне нужно чтобы барьер был лишь там где я отметил чтоб были / if j=15 then StringGrid1.Cells[j-1,i+30] := '/'; if i=10 then StringGrid1.Cells[j+30,i-1] := '/'; ... ((j<>15) and (i<>10)) |