在我的 2D 环境中,玩家可以沿对角线、水平和垂直方向移动。查看下面的网格时,您可以看到玩家(标记为x
)可以从他(或她 xD)现在所在的位置移动到 8 个不同的位置。
1 | 2 | 3
-----------
4 | x | 5
-----------
6 | 7 | 8
而不是将其存储为(这是很多数据):
Go1 = true;
Go2 = true;
Go3 = true;
Go4 = true;
Go5 = true;
Go6 = true;
Go7 = true;
Go8 = true;
我认为最好先将其转换为:
11111111
..代表8次真实。考虑到这一点,并且知道二进制数11111111
(8 位)的十进制表示等于数字:255
我宁愿转换它并将当前可能移动到的位置存储为255
.
代码:
x = parseInt(11111111);
var bin = x.toInt(2);
document.write(bin);
这意味着如果(例如)位置(1、4 和 6)= 玩家左侧有一堵墙,则玩家只能移动到:
01101011
可以存储为:107
.
假设玩家想要移动到 location 3
。这意味着我的脚本必须执行以下操作:
- 将 3 位当前可能的位置移动到数字转换回二进制
- 从该二进制代码中获取第三个数字
- 检查该数字是 1 还是 0
问题: 是否可以在不使用 Javascript 来回转换为二进制的情况下进行计算?如果是,如何?