gpt4 book ai didi

jQuery 选择棋子路径中的所有

转载 作者:行者123 更新时间:2023-12-01 01:36:30 24 4
gpt4 key购买 nike

我有一个table与 8 <tr> s,每个有 8 <td> s,每个都有 data-x值和data-y值介于 1 和 8 之间,即棋盘的 8x8 网格。

鉴于主教只能对角移动,并且我有起始和结束方 block 的坐标,找到所有 <td> 的最有效方法是什么? “路径”中的元素。

示例:

// coordinates representing a bishop move from d6 (4, 6) to h2 (8, 2)
var from = {
x: 4,
y: 6
},
to = {
x: 8,
y: 2
}

// code to select squares e5 (5,5), f4 (6,4) and g3 (7,3)

我如何选择这些元素:

td[data-x="5"][data-y="5"],
td[data-x="6"][data-y="4"],
td[data-x="7"][data-y="3"]

以最有效的方式,牢记 fromto是动态设置的吗?

作为引用,我编写了一个在其他地方使用的函数来检查主教是否已沿对角线移动:

function is_valid_bishop_move(from, to){
var tan_theta = (to.y - from.y) / (to.x - from.x);
if( tan_theta === 1 || tan_theta === -1 ){
return true;
}else{
return false;
}
}

最佳答案

我只能想到这样的事情:

var from = {
x: 4,
y: 6
},
to = {
x: 8,
y: 2
}

var delta_x = (to.x - from.x > 0 ? 1 : -1),
delta_y = (to.y - from.y > 0 ? 1 : -1),
dest_x = from.x + delta_x,
dest_y = from.y + delta_y,
selector = '';

while (dest_x != to.x) {
selector += 'td[data-x="' + dest_x + '"][data-y="' + dest_y + '"],';
dest_x += delta_x;
dest_y += delta_y;
}

selector = selector.replace(/,$/, '');

console.log(selector);

http://jsfiddle.net/zerkms/gtEwV/1/

关于jQuery 选择棋子路径中的所有 <td>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309578/

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