作者stu87616 (以光為名)
看板C_Sharp
標題[問題] 檢查前後陣列 邊緣時的狀況例外寫法請益
時間Thu Oct 4 15:46:08 2012
標題可能打得有點難懂,實際情況是這樣的,
有一堆數量為count^2的控制項,會排列成長寬都為count的大正方型,
然後要對每一個控制項上下左右的鄰居做屬性檢查,
但如果在邊緣的控制像,就會抓到溢位的陣列或是上一排的末端,
我原本針對這樣的問題,在判斷式中加入遇到邊緣的時候不檢查的判定,
結果好像因為這麼做的原因,讓程式碼變得很肥而且跑的速度很慢,
想想也是很浪費的做法,因為大部分的控制項其實都不會出問題,
只有上下左右的第一排才會爆炸。
想了半天,還是決定來版上問問看各位高手,有沒有比較省時省力的做法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.125.7.64
1F:→ s90366770607:if(x==0 || x==count-1 || y==0 || y==count-1) 10/04 15:48
2F:→ s90366770607:這樣邊緣不就都不會判斷了? 10/04 15:48
3F:→ tonyhsie:如果你是從左上開始作檢查 那每一控制項都只要檢查右/下 10/04 16:23
4F:→ tonyhsie:鄰居就好 也只需check x或y其中之一是否超出邊界 10/04 16:25
5F:→ s3748679:那要不把邊緣與非邊緣分別快取到2個list去 之後個別處理? 10/04 20:15
6F:推 stdio:最外層再加一圈控制項,就不需要檢查了 ... 10/04 22:25
7F:推 s3748679:樓上好主意 10/04 23:40
感謝各位,我先用邊緣和非邊緣分開處理的做法試試看。
※ 編輯: stu87616 來自: 1.162.161.12 (10/05 00:31)