8086汇编象棋程序pawn走棋代码中常量数值来源问询
8086象棋汇编代码数值来源说明
所有标注的数值均基于项目采用的8x8字节数组存储棋盘的规则:数组每个元素对应棋盘一个格子,按行连续存储,每行共8个格子,白兵默认朝向数组索引减小的方向移动。
sub bx, 8:8是棋盘单行列数,白兵向前移动1格时对应数组索引减8,此处用于判断白兵正前方1格是否为空,为空则记为合法移动。add bx, 48d、add bx, 55d:白兵初始摆放位置对应数组索引区间为[48,55],48是白兵所在初始行的起始索引(行号从0开始计数时,第6行起始索引为6*8=48),55是该行的末尾索引(48+7=55),此处用于判断当前白兵是否还在初始位置行,只有初始行的白兵允许一次移动2格。sub bx, 16d:初始行白兵向前移动2格时对应数组索引减16(2行*8格/行=16),符合条件则记为合法移动。
内容的提问来源于stack exchange,提问作者Avia
相关产品推荐
相关产品推荐

