我正在使用HTML,CSS,jQuery和JS制作2人网页游戏。我的游戏工作方式是它的抽动方式,除非桌子已满,你可以用自己的瓷砖替换之前由对手控制的瓷砖。问题是我无法获得代码来识别表已满。他是我的代码的一个小例子:
<tr>
<td class="left" ID="one1">
<div class="playerclick" ID="red11"></div>
<div class="playerclick" ID="blue11"></div>
</td>
<td ID="one2">
<div class="playerclick" ID="red12"></div>
<div class="playerclick" ID="blue12"></div>
</td>
<td ID="one3">
<div class="playerclick" ID="red13"></div>
<div class="playerclick" ID="blue13"></div>
</td>
这是JS:
var turn = 'red';
var fullTable = 'no';
var redLines = 0;
var blueLines = 0;
var tile1 = 'noclick';
var tile1preClick = 'no';
var tile1justClick = 'no';
var tile2 = 'noclick';
var tile2preClick = 'no';
var tile2justClick = 'no';
var tile3 = 'noclick';
var tile3preClick = 'no';
var tile3justClick = 'no';
var folderIf = 'folder';
$(document).ready(function() {
$('#one1').click(function() {
$('#one1').click(function() {
if (fullTable === 'no')
{
if (tile1 === 'noclick')
{
if (turn === 'red' && tile1preClick === 'no')
{
tile1 = 'red';
$('#red11').css('opacity', '1');
$('#one1').css('background', 'white');
$('#one1').addClass('preclick');
tile1preClick = 'yes';
turn = 'blue';
}
if (turn === 'blue' && tile1preClick === 'no')
{
tile1 = 'blue';
$('#blue11').css('opacity', '1');
$('#one1').css('background', 'white');
$('#one1').addClass('preclick');
turn = 'red';
}
}
$('.preclick').click(function(){
if (fullTable === 'no')
{
if (tile1preClick === 'yes' && tile2preClick === 'yes' && tile3preClick === 'yes')
{
$('.preclick').removeClass('preclick');
fullTable = 'yes';
}
else {
confirm('You can\'t claim this tile yet!');
}
}
});
}
if (fullTable === 'yes')
{
if (tile1 === 'blue' && tile1justClick === 'no')
{
if (turn === 'red')
{
tile1 = 'red';
$('#blue11').css('opacity', '0');
$('#blue11').css('background', 'initial');
$('#blue11').hide();
$('#red11').show();
$('#red11').css('background', '#FF0000');
$('#red11').css('opacity', '1');
$('#one1').css('background', 'white');
if (folderIf === 'folder')
{
$('#one1').removeClass('justclick');
$('#one2').removeClass('justclick');
$('#one3').removeClass('justclick');
}
$('#one1').addClass('justclick');
if (folderIf === 'folder')
{
tile1justClick = 'yes';
tile2justClick = 'no';
tile3justClick = 'no';
}
turn = 'blue';
}
}
if (tile1 === 'red' && tile1justClick === 'no')
{
if (turn === 'blue')
{
tile1 = 'blue';
$('#red11').css('opacity', '0');
$('#red11').css('background', 'initial');
$('#red11').hide();
$('#blue11').show();
$('#blue11').css('background', 'blue');
$('#blue11').css('opacity', '1');
$('#one1').css('background', 'white');
if (folderIf === 'folder')
{
$('#one1').removeClass('justclick');
$('#one2').removeClass('justclick');
$('#one3').removeClass('justclick');
}
$('#one1').addClass('justclick');
if (folderIf === 'folder')
{
tile1justClick = 'yes';
tile2justClick = 'no';
tile3justClick = 'no';
}
turn = 'red';
}
}
$('.justclick').click(function() {
confirm('You can\'t claim that tile yet!');
});
}
});
})
我不知道为什么这不起作用。有帮助吗? 编辑: 哇,我没想到我会很快得到答案。为了更清楚,var fullTable应该向游戏表明表是否已满。一开始,它被设置为“不”。 (我可能会将其更改为使用布尔值),并且当点击所有图块时,它将被设置为“是”,但是,我无法让程序识别该表是充分。如果表格未满,则无法更改任何已单击的图块,但一旦表格已满,即可。 Jaromanda X,感谢您告诉我每次用户点击磁贴时都会添加.preclick或.justclick。我现在就解决这个问题。
编辑(2):哦,天哪,我感到愚蠢。我正在修复课程添加,并意识到蓝色不会将变量tile1preClick更改为“是”&#39;。我很确定我已经自己解决了这个问题...感谢您的回答。