我正在使用html,css和JavaScript编写一个tic tac toe游戏。我创建了从markbox(cell)
函数获取输入的按钮和称为wins_condition的deres函数,该函数用于赢得游戏的条件。
在我的代码中,它没有正确地检查winning_condition
它遇到问题吗?
这是我的代码
<html>
<head>
<title>TIC TAC TOE</title>
<script type="text/javascript">
var cell;
var symbol = "X";
function markbox(cell)
{
if (cell.value == " ")
{
cell.value = symbol;
if (symbol == "X")
symbol = "O";
else
symbol = "X";
}
//else
//{
//alert("This square is occupied");
//}
if (winning_condition())
{
alert ("You win!");
return;
}
else if(!winning_condition())
{
alert("You loose!");
}
else
{
alert("Draw!")
}
}
function winning_condition()
{
if(document.f1.b00.value==symbol && document.f1.b01.value==symbol && document.f1.b02.value==symbol)
return true;
else if(document.f1.b10.value==symbol && document.f1.b11.value==symbol && document.f1.b12.value==symbol)
return true;
else if(document.f1.b20.value==symbol && document.f1.b21.value==symbol && document.f1.b22.value==symbol)
return true;
else if(document.f1.b00.value==symbol && document.f1.b10.value==symbol && document.f1.b20.value==symbol)
return true;
else if(document.f1.b01.value==symbol && document.f1.b11.value==symbol && document.f1.b21.value==symbol)
return true;
else if(document.f1.b02.value==symbol && document.f1.b12.value==symbol && document.f1.b22.value==symbol)
return true;
else if(document.f1.b00.value==symbol && document.f1.b11.value==symbol && document.f1.b22.value==symbol)
return true;
else if(document.f1.b02.value==symbol && document.f1.b11.value==symbol && document.f1.b20.value==symbol)
return true;
}
function clearBtn()
{
status = "X"
document.f1.b00.value=" ";
document.f1.b01.value=" ";
document.f1.b02.value=" ";
document.f1.b10.value=" ";
document.f1.b11.value=" ";
document.f1.b12.value=" ";
document.f1.b20.value=" ";
document.f1.b21.value=" ";
document.f1.b22.value=" ";
}
</script>
</head>
<body>
<div align="center">
<h1>Tic Tac Toe</h1>
<form name="f1">
<input type="button" name="b00" value=" " onclick="markbox(this)"/>
<input type="button" name="b01" value=" " onclick="markbox(this)"/>
<input type="button" name="b02" value=" " onclick="markbox(this)/></br>
<input type="button" name="b10" value=" " onclick="markbox(this)"/>
<input type="button" name="b11" value=" " onclick="markbox(this)"/>
<input type="button" name="b12" value=" " onclick="markbox(this)"/></br>
<input type="button" name="b20" value=" " onclick="markbox(this)"/>
<input type="button" name="b21" value=" " onclick="markbox(this)"/>
<input type="button" name="b22" value=" " onclick="markbox(this)"/>
</br></br></br>
<input type="reset" value="RESET GAME" onclick="clearBtn()">
</form>
</div>
</body>
答案 0 :(得分:0)
首先,您没有正确关闭HTML:
onclick="markbox(this)/>
需要:
onclick="markbox(this)" />
(注意“最后”。
问题似乎是您在单击其中一个按钮时重置符号var。您将始终检查错误的符号以获胜。创建一个var last_clicked并在wins_condition中使用它。
尝试使用此代码: