【发布时间】:2013-11-02 12:25:07
【问题描述】:
假设我有一个二维数组,我想检查一个插槽是否相邻并与另一个插槽接触。
假设坐标在 4 字节变量中:OneX、OneY、TwoX、TwoY。
我有一段时间的解决方案是,如果你有差异 OneX - OneY 和 TwoX - TwoY 并添加它们,如果结果是 1 或 -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)。它们显然不相邻也不接触,但函数会说它们是。
Get adjacent elements in a two-dimensional array? 的问题有点用处,但它侧重于查找所有相邻的匹配项,而我想检查两个特定的插槽。
我的数组结构是这样的:
map: dd 'a','b','c','d' ; Double words just to make my life easier
解释如下
a b
c d
这是一张方形地图。
【问题讨论】: