gpt4 book ai didi

javascript - 在网格中查找包含特定单元格的对 Angular 线

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:11:03 25 4
gpt4 key购买 nike

假设我们有一个包含单元格的网格,我们想要返回两个数组,其中每个数组都包含与该单元格成对 Angular 线的所有单元格,从左上角到右下角和相反的一个。最好的解决方法是什么?

我在 javascript 中尝试了以下操作(请注意 board 是一个一维数组,据说它表示边长为 boardSize 的正方形网格。position 是我试图找到其对 Angular 线的单元格。)

    var diagonal1 = [];
var diagonal2 = [];
for(var i = 0; i < board.length; i++) {
if (i == position) diagonal.move_index = diagonal.length
if (Math.abs(position - i) % (boardSize + 1) == 0) {
diagonal1.push(board[i]);
}
else if (Math.abs(position - i) % (boardSize - 1) == 0) {
diagonal2.push(board[i]);
}
}

但这只对位于主对 Angular 线上的元素起作用,对其他元素不起作用。有什么想法吗?

示例:

if board = [1,2,3,4,5,6,7,8]
board:
1 2 3
4 5 6
7 8 9
then If I say that I want to find the diagonals for position = 4
I should get:
diagonal1 = [4, 8]
diagonal2 = [2, 4]

and if I choose another position, lets say position = 5, then:
diagonal1 = [1, 3, 5]
diagonal2 = [3, 5, 7]

最佳答案

自己编写代码:

想法:

1) 将电路板实现为二维数组。

(数组 a[3][3] 的示例,根据数组索引给出)

00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33

2) 查找元素在数组中的位置。比如说在位置 a[1][1],当我们在程序中找到它时,我们根据 [i][j] 得到它,其中 i=1,j=1。

3)要得到对 Angular 线1,得到位置a[i-1][j-1]的值直到i=0和j=0。 AND 位置 a[i+1][j+1] 的值,直到到达数组边界,在本例中为 3。

4) 要获得对 Angular 线 2,请获取位置 a[i-1][j+1] 的值,直到您到达数组边界,并获取位置 a[i+1][j-1] 的值,直到您到达数组边界。

关于javascript - 在网格中查找包含特定单元格的对 Angular 线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com