JavaScript-尝试根据距离查找方向

我正在尝试使用同时用作输入字段和游戏显示的输入框来创建一个简单的寻宝游戏。游戏中有一个英雄-h和多个杀手-k,它们由计算机控制,试图杀死该英雄。

这是我拥有的示例板:

http://img4.mukewang.com/609cf38a000170fa01530152.jpg

到目前为止,我已经对一些if语句进行了硬编码,以检查英雄和给定的杀手的坐标(基于他们当前所在的输入框),以确定杀手应该以哪种方式移动(向上,向下,向右,向左和向左)对角线)。但是,它并不总是找到最佳的发展方向。


if (killerX < heroX) {

  if (killerY < heroY) {

    console.log("move down andright");

  } else if (killerY > heroY) {

    console.log("move up and right");

  }

}

我当时正在考虑使用Dijkstra的算法,但是我不知道如何针对给定的问题来实现它。我正在寻找一种更有效的替代方法,以发现凶手必须采取哪种行动才能与英雄保持距离。


慕神8447489
浏览 145回答 3
3回答

繁花不似锦

如果您的地图上没有任何墙,那是一个非常琐碎的练习!您的代码中有2个问题。首先,您不处理案件killerX > heroX,其次,您必须逐步移动,而不是2步2步。let diffX = killerX - playerX;let diffY = killerY - playerY;if(Math.abs(diffX) > Math.abs(diffY)) {&nbsp; if(diffX>0) {&nbsp; &nbsp; console.log('move left');&nbsp; }&nbsp; else {&nbsp; &nbsp; console.log('move right');&nbsp; }} else {&nbsp; if(diffY>0) {&nbsp; &nbsp; console.log('move up');&nbsp; } else {&nbsp; &nbsp; console.log('move down');&nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript