Re: 連鎖染色
※ 引述《fantasywater (狂想)》之銘言:
: 如果白色的0碰到黃色的0 白色的0會變成黃色
: 0 0
: 00000000 → 00000000 → 00000000
:
: 這樣只要判斷一個話很好用程式表達
: 0000 0000 0000 0000 0000
: 00 0 00 0 00 0 00 0 00 0
: → 0 → 0 → 0 → 0
: 00000000 00000000 00000000 00000000 00000000
:
: 如果是這種情況,那我在將第一個變色之後,要怎麼用程式表達連鎖的情形,
: 如果不用遞迴也不用到資料結構,只單純的用條件式和迴圈描述,那條件應該
: 要怎麼寫才能夠才能夠表達這種關係,想了很久,但是分枝一多之後就想不下
: 去了
:
應該只要給你演算就好了吧....
Do
ExitFlag=True
For i = 1 to 所有色點的總數
if 色點(i)=黃色 then
if 上方有白點 then 白點變黃 :ExitFlag=False
if 右上方有白點 then 白點變黃 :ExitFlag=False
if 右方有白點 then 白點變黃 :ExitFlag=False
if 右下方有白點 then 白點變黃 :ExitFlag=False
if 下方有白點 then 白點變黃 :ExitFlag=False
if 左下方有白點 then 白點變黃 :ExitFlag=False
if 左方有白點 then 白點變黃 :ExitFlag=False
if 左上方有白點 then 白點變黃 :ExitFlag=False
if ExitFlag=False then Exit For
end if
next i
Loop until ExitFlag=True
這個方法可以不用到遞迴 不過相對的 會做很多不必要的處理判斷
如果可以的話還是往遞迴的方面寫會比較好....
--
題外話:第一次看到時直覺上就覺得這是拿來寫踩地雷用的 Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.81.88.26
推
05/22 09:57, , 1F
05/22 09:57, 1F
推
05/22 21:55, , 2F
05/22 21:55, 2F
討論串 (同標題文章)