Javascript 如何查找二维数组中两个坐标之间的所有元素

Javascript 如何查找二维数组中两个坐标之间的所有元素,javascript,arrays,multidimensional-array,reversi,Javascript,Arrays,Multidimensional Array,Reversi,本质上,我正在尝试创建一个游戏reversi。 如果你不知道它是什么,我有一块8x8的正方形板。有两个坐标,我需要确定两个坐标之间的所有正方形,并填充它们。这两个坐标要么在同一个y轴上,要么在同一个x轴上,要么彼此成对角线 有人能解释一下我将如何着手做这样的事情背后的逻辑吗?如何确定两个坐标之间所有元素的坐标。您需要一个简单的for循环,从一个坐标开始,向另一个坐标移动 let connect=(c1,c2)=>{ //确定c1和c2之间的距离 设delta=c1.map((v,i)=>c2[

本质上,我正在尝试创建一个游戏reversi。 如果你不知道它是什么,我有一块8x8的正方形板。有两个坐标,我需要确定两个坐标之间的所有正方形,并填充它们。这两个坐标要么在同一个y轴上,要么在同一个x轴上,要么彼此成对角线


有人能解释一下我将如何着手做这样的事情背后的逻辑吗?如何确定两个坐标之间所有元素的坐标。

您需要一个简单的for循环,从一个坐标开始,向另一个坐标移动

let connect=(c1,c2)=>{
//确定c1和c2之间的距离
设delta=c1.map((v,i)=>c2[i]-v);
让distance=Math.max(…delta.map(v=>Math.abs(v));
//确定移动每个迭代的单位向量(例如[1,-1])
让方向=delta.map(v=>v/距离);
//从'c1'开始,迭代'distance'迭代,每次迭代都沿'direction'移动。
返回[…数组(距离+1)].map((uu,i)=>c1.map((v,j)=>v+方向[j]*i));
//同上,但从返回数组中排除'c1'和'c2'。
//return[…数组(距离-1)].map((μ,i)=>c1.map((v,j)=>v+方向[j]*(i+1));
};
设c1=[3,6];
设c2=[8,1];

控制台日志(连接(c1,c2))您使用的是JavaScript还是Java?它们是两种非常不同的语言。因此,您有8x8矩阵。。然后你有一个矩阵的位置,比如说(1,4),意思是x=1,y=4。你想要什么?矩阵中所有对角可达的位置?我在2d数组中有2个点。例如1,1和3,3。如何生成一个算法来查找中间的元素?在这个例子中,应该是2,2谢谢你的回复!查找有关数字微分分析仪(DDA)算法的资源。下面是一个简单的Javascript。然而,这种简单的方法可能存在舍入问题——你可能想研究使用定点算法。仅供参考:Reversi也被称为Otherlo。