【问题标题】:Pathing finding in Chess? 2d array searching在国际象棋中寻找路径?二维数组搜索
【发布时间】:2021-07-11 00:24:47
【问题描述】:

我目前正在开发一个国际象棋应用程序。我创建了一个数组,它是这个板上的 boardSqaure 组件,它包含一个 Piece 和一个位置,它是它所在位置的 [x,y] 坐标。

我开始着手在项目中实施运动的第一步。

我的问题是,给定一个像这样的数组[1, 0] 的当前位置如何路径找到 朝向目标位置[2,5] 我知道这不是一个可能的国际象棋移动,我只是在我开始制定规定之前,希望能够刺激任何运动。我目前的功能非常简单,但我不确定我的解释是否足够好

const calculateMovement = (board, piece, x , y, index) => {
    // board is a global array, holding all position -
    // board = [[0, 0], [1, 0]]
    // Current Location of the piece I want to move

    // x is row
    // y is col
    // how to get every piece between the currentLocation and wantedLocation
    let currentLocation = [x, y]
    let wantedLocation = [8, 8]
  }

【问题讨论】:

  • TBH 我不知道为什么您需要在国际象棋中进行任何路径查找,这不像导航有障碍,它是一个二维的开放网格。也许您可以更清楚地解释用例。似乎您宁愿需要知道特定棋子的有效移动,并简单地检查新坐标是否被占用。
  • 查看stackoverflow.com/questions/65836721stackoverflow.com/questions/65602763 了解表示棋盘和棋子移动的两种不同方式。

标签: javascript reactjs path-finding chess


【解决方案1】:

一般来说,寻路可以使用广度优先搜索来实现。 Wikipeda 这是一个很好的起点,对于像骑士这样的复杂棋子尤其有用。下一步可能是查看 A* 寻路算法。 Wikipedia

Chess Programming Wiki 是构建此类项目的好资源

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-17
    • 1970-01-01
    • 2016-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-05
    相关资源
    最近更新 更多