作者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)