【发布时间】:2016-03-16 04:10:37
【问题描述】:
我正在网格上创建一个小型 2D 游戏(使用 Javascript)。在这个游戏中,我有 3 种单位类型,比如说:
- 绿色:射击范围为 1 格的单位(他们可以攻击周围 1 格的目标)
- 橙色:射程为 2 格的单位
- 蓝色:射程为 3 格的单位
黑色方块是目标。 灰色是单位。
单位的移动是好的,我可以在任何时候移动。目标是固定的。
我的问题是: 如何根据单位颜色(范围 1,2 或 3)找到单位可以射击的所有图块?
我的意思是:
- 蓝色单位可以从以下位置射击:蓝色、橙色和绿色瓷砖
- 橙色单位可以从以下位置射击:橙色和绿色瓷砖
- 绿色单位可以从以下位置射击:绿色瓷砖
我虽然关于一个带有两个嵌套循环的丑陋解决方案,但是,也许有一个已知的算法可以做到这一点......
我有一个目标和单位的 (x,y) 位置
我看到了这个Algorithm for finding spaces to attack target within move-attack area on a 2D grid game board,但我的问题在我看来更简单:
你能帮帮我吗?
【问题讨论】:
-
将坐标系的原点(即点
(0,0))设置为黑色方块的位置,问题就变得简单了。 -
从目标端看问题;)
-
7x7 的嵌套循环没有什么真正的问题。在任何机器上使用任何语言的任何方法都可能花费不到一毫秒的时间。
标签: algorithm