我在2D阵列中制作生命游戏.我需要确定所有相邻单元格何时为空,所以我只测试所有单元格.除非被检查的单元格是边界,否则它很有效.然后测试X + 1当然会抛出异常,因为索引超出了数组边界.我能以某种方式处理这个而不是处理异常吗?谢谢
使用GetLength(0)和GetLength(1)获取数组的宽度和高度.
运行时还使用了一个简洁的性能技巧来进行自己的边界检查:转换为unsigned int以将两个检查减少为一个.但是,如果检查确实对性能至关重要,那么您可以使用它.
(i >= 0) && (i < length)
Run Code Online (Sandbox Code Playgroud)
变
(uint)i < length
Run Code Online (Sandbox Code Playgroud)
如果你想要速度,你必须以不同的方式对待边缘单元,并用
for(int x = 1; x < Size-1; x++) // these all have x-1 and x+1 neighbours
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11866 次 |
| 最近记录: |