【发布时间】:2019-03-14 15:18:59
【问题描述】:
我之前尝试过问这个问题,但没有说得那么好,所以我再试一次。
我想要什么:
有一个接受两个参数的函数,side(深色或白色)和 number (1-9)。在函数本身中,将有两个“if”“函数”(一个是 'If',第二个是 'if else')都用于检查边和数字并运行它们可能是的任何“特殊”规则函数(示例:检查它是否是棋子的第一步,以查看它是否可以向上移动两个空格)。在 If 函数中,它们将是另外两个函数来检查 pawn 在哪一侧以查看它是否应该向上或向下移动。
问题:
我遇到了一个问题,谷歌控制台日志不会给我任何错误,并且该函数将运行 If 函数。因此,我无法知道问题所在。
代码:
var darkPawn1 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn2 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn3 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn4 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn5 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn6 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn7 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn8 = {
stats: 'in',
firstPawnMove: 'ture'
};
var darkPawn9 = {
stats: 'in',
firstPawnMove: 'ture'
};
var moveCheck = function(side, number) {
var pawnInfo = side + 'Pawn' + number;
var pawnTest = pawnInfo + '.firstPawnMove'
console.log('log check:' + side + ' ' + number);
console.log('Pawn Move Check' + ' ' + (pawnInfo + '.firstPawnMove'));
if (side + 'Pawn' + number + '.firstPawnMove' == 'false') {
if (side = 'dark') {
top: '-=' + 50 + 'px'
}
else if (side = 'white') {
top: '+=' + 50 + 'px'
}
} else if (side + 'Pawn' + number + '.firstPawnMove' == 'ture') {
if (side = 'dark') {
top: '-=' + 100 + 'px',
side + 'Pawn' + number + '.firstPawnMove' == 'false'
}
else if (side = 'white') {
top: '+=' + 100 + 'px',
side + 'Pawn' + number + '.firstPawnMove' == 'false'
}
}
};
document.getElementById('darkPawnButton1').onclick = moveCheck('dark', '1');
#darkChessPlayerId {}
#darkBishop1 {
height: 50px;
width: 50px;
position: absolute;
}
#darkBishop2 {
height: 50px;
width: 50px;
position: absolute;
}
#darkKnight1 {
height: 50px;
width: 50px;
position: absolute;
}
#darkKnight2 {
height: 50px;
width: 50px;
position: absolute;
}
#darkTower1 {
height: 50px;
width: 50px;
position: absolute;
}
#darkTower2 {
height: 50px;
width: 50px;
position: absolute;
}
#darkQueen {
height: 50px;
width: 50px;
position: absolute;
}
#darkKing {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn1 {
top: 270px;
left: 7px;
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn2 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn3 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn4 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn5 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn6 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn7 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn8 {
height: 50px;
width: 50px;
position: absolute;
}
#darkPawn9 {
height: 50px;
width: 50px;
position: absolute;
}
<!-- White Side Peaces -->#whiteBishop1 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteBishop2 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteKnight1 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteKnight2 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteTower1 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteTower2 {
height: 50px;
width: 50px;
position: absolute;
}
#whiteQueen {
height: 50px;
width: 50px;
position: absolute;
}
#whiteKing {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn1 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn2 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn3 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn4 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn5 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn6 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn7 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn8 {
height: 50px;
width: 50px;
position: absolute;
}
#whitePawn9 {
height: 50px;
width: 50px;
position: absolute;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<img id='playFieldId' src="http://4.bp.blogspot.com/_zJfGdkTGq6U/R6coIhq4e7I/AAAAAAAAAD4/joyxFXtLZRw/s400/chessboard.jpg" />
<button id='boxesAnimationId'>
Click to run password animation puzzle
</button>
<button id='darkPawnButton1'>
test move PAWN
</button>
<div id='darkChessPlayerId'>
<img id='darkBishop1' src="https://upload.wikimedia.org/wikipedia/commons/8/81/Chess_bdt60.png" />
<img id='darkBishop2' src="https://upload.wikimedia.org/wikipedia/commons/8/81/Chess_bdt60.png" />
<img id='darkKnight1' src="https://upload.wikimedia.org/wikipedia/commons/f/f1/Chess_ndt60.png" />
<img id='darkKnight2' src="https://upload.wikimedia.org/wikipedia/commons/f/f1/Chess_ndt60.png" />
<img id='darkTower1' src="https://upload.wikimedia.org/wikipedia/commons/a/a0/Chess_rdt60.png" />
<img id='darkTower2' src="https://upload.wikimedia.org/wikipedia/commons/a/a0/Chess_rdt60.png" />
<img id='darkQueen' src="https://upload.wikimedia.org/wikipedia/commons/a/af/Chess_qdt60.png" />
<img id='darkKing' src="https://upload.wikimedia.org/wikipedia/commons/e/e3/Chess_kdt60.png" />
<img id='darkPawn1' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn2' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn3' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn4' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn5' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn6' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn7' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn8' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
<img id='darkPawn9' src="https://upload.wikimedia.org/wikipedia/commons/c/cd/Chess_pdt60.png" />
</div>
<div id='whiteChessPlayerId'>
<img id='whiteBishop1' src="https://upload.wikimedia.org/wikipedia/commons/9/9b/Chess_blt60.png" />
<img id='whiteBishop2' src="https://upload.wikimedia.org/wikipedia/commons/9/9b/Chess_blt60.png" />
<img id='whiteKnight1' src="https://upload.wikimedia.org/wikipedia/commons/2/28/Chess_nlt60.png" />
<img id='whiteKnight2' src="https://upload.wikimedia.org/wikipedia/commons/2/28/Chess_nlt60.png" />
<img id='whiteTower1' src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Chess_rlt60.png" />
<img id='whiteTower2' src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Chess_rlt60.png" />
<img id='whiteQueen' src="https://upload.wikimedia.org/wikipedia/commons/4/49/Chess_qlt60.png" />
<img id='whiteKing' src="https://upload.wikimedia.org/wikipedia/commons/3/3b/Chess_klt60.png" />
<img id='whitePawn1' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn2' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn3' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn4' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn5' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn6' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn7' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn8' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
<img id='whitePawn9' src="https://upload.wikimedia.org/wikipedia/commons/0/04/Chess_plt60.png" />
</div>
【问题讨论】:
-
您的
if条件没有意义:它们比较两个保证总是不同的字符串。你能添加你正在使用的 CSS 和 HTML 以及任何其他 JavaScript 吗?也许这会澄清你打算做什么。 -
你在 ifs (side = 'dark') + 你有错别字 (== 'ture') 和 (side + 'Pawn' + number + '.firstPawnMove' == ' false') 永远不可能是真的
-
另外,
top: '-=' + 50 + 'px'是无效的语句语法。 -
很难知道从哪里开始;您似乎在混淆对象和代码,您多次添加诸如
'Pawn' + number之类的东西,这使得事情难以推理,您有无用的悬空表达式。您可能会在控制台中遇到语法错误,但这只是问题集的一部分。您可能想退后一步,让更小的代码部分正常工作,而不是一次将所有内容都放在页面上并想知道哪里出了问题。 -
恕我直言,使用二维数组来表示棋盘并用棋盘对象填充会更简单。您可以为每种类型定义一个函数,并返回它们可以移动到的下一个索引。因此索引 (1,0) 处的第一个棋子将移动 (+1,+0) 到索引 (2, 0),马可以使用 (+2, +1) 从 (0, 2) 移动到索引 (2 , 3) 或其他方向。然后你只需重新渲染整个电路板。这将使您不必为每个单独的部分编写无尽的 if/else 块,并且不必手动计算类似的位置:绝对偏移量。
标签: javascript html parameters chess