假设我有一个二维数组,我想检查一个插槽是否相邻并与另一个插槽接触。
假设坐标在 4 字节变量中:OneX
, OneY
, TwoX
, TwoY
。
我有一段时间的解决方案是,如果你有差异OneX - OneY
并TwoX - TwoY
添加它们,如果结果是1
or -1
,那么是的,插槽是相邻的并且是接触的。
mov EBX,[oneX]
sub EBX,[oneY]
mov ECX,[twoX]
sub ECX,[twoY]
add EBX,ECX
; Compare EBX with 1 or -1.......
这几乎可以工作。但没有 - 给定格式 (x,y),取:(3,3) 和 (0,1)。它们显然不相邻也不接触,但函数会说它们是。
获取二维数组中的相邻元素?有点用,但它侧重于查找所有相邻的匹配项,而我想检查两个特定的插槽。
我的数组的结构是这样的:
map: dd 'a','b','c','d' ; Double words just to make my life easier
这被解释为
a b
c d
这是一张方形地图。