问题描述
private Cell[] _cells = new Cell[size];
我还有放置这些单元格的网格的尺寸。
private Vector2 _gridSize = new Vector2(x,y);
仅此而已,我就必须计算两个不同索引之间有多少个单元格(请参阅图像以直观地看到我所指的内容)。我必须计算哪个操作?
示例图片:
搜索结果:
谢谢社区!
编辑:这种关系类似于下面的示例。
Array { 0,1,2,3,4,5 }
Dimentions { x = 3,y = 2 }
Grid :
| 0 | 1 | 2 |
| 3 | 4 | 5 |
解决方法
如果diffX
是第一个和第二个单元格的X坐标之差的绝对值,而diffY
是第一个和第二个单元格的Y坐标之差的绝对值单元格,您的答案是result = diffX + diffY
。
如果要查找值a
所在的单元格的(X,Y)坐标,
给定x
作为行数,给y
作为列数,
您可以使用以下简单算法:
for (i=0; i < sizeOfArray; i++){
if (array[i] == a){
yOfA = i // x;
xOfA = i % x;
}
}
请记住,xOfA
代表a
所在的列,而yOfA
是您在问题中所显示的行。