ちょっとした問題があります。
コンピューター サイエンスのクラスの最後の課題は、三目並べのゲームを JavaScript で作成することです。このゲームは、テーブル内のセルをクリックし、function() を使用して img ソース (クリックされるまで空白の画像) を X または O に切り替えることで機能します。 .
ゲームは、明らかに、2 人のプレイヤーによってプレイされます。私が必要とする最後のことは、プレイヤーがいつ勝ったかを検出し、これが発生したときにスクリプトを強制終了する (関数) を取得することです。私はこれを理解することはできません。if ステートメントが含まれていることはわかっており、いくつかの異なるコードを試しましたが、コーディングしたものはすべてゲームを壊してしまいます。
この質問は以前に尋ねられたことがわかりました。右側の「同様の質問」ボックスにあるいくつかのリンクをクリックしてみましたが、それらはすべて、私が何も学んでいない言語 (C# など) で書かれています。 .
これが私のスクリプトです:
<script type="text/javascript" charset="ISO-8859-1">
function placeMove(value)
{
if (document.getElementById(value).src.indexOf("FC")!=-1) //"FC" because of the FC contained in the file name. I intended for it to stand for "free cell", for easy indentification.
{
var turn = document.getElementById("playerturn").innerHTML;
if (turn == "X")
{
document.getElementById(value).src="../Images/TicTacToeX.jpg";
document.getElementById("playerturn").innerHTML="O";
}
if (turn == "O")
{
document.getElementById(value).src="../Images/TicTacToeO.jpg";
document.getElementById("playerturn").innerHTML="X";
}
}
else
{
window.alert("Tile is in use. Please select another tile.");
}
}
function detectWin()
{
}
</script>
これは、ゲームが行われるテーブルです。
<table class="gametable" id="gametable" border="1">
<tr>
<td><img onclick="placeMove('r1c1')" id="r1c1" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r1c2')" id="r1c2" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r1c3')" id="r1c3" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
</tr>
<tr>
<td><img onclick="placeMove('r2c1')" id="r2c1" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r2c2')" id="r2c2" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r2c3')" id="r2c3" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
</tr>
<tr>
<td><img onclick="placeMove('r3c1')" id="r3c1" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r3c2')" id="r3c2" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
<td><img onclick="placeMove('r3c3')" id="r3c3" class="blank" alt="blank space" src="../Images/TicTacToeFC.jpg"></img></td>
</tr>
</table>
課題の期限は明日で、必要なのはこの最後の小さなコードだけです。
どんな助けでも大歓迎です。これが今学期最後の課題です。
ありがとう、
カイル
編集:いくつかの提案の後、ここに私が試してきたことがあります。このコードを入力すると、ゲームをプレイできなくなります。セミコロンが足りないだけの場合は、ご容赦ください。各セルの img ソースを変数に設定し、それらの変数が一致するかどうかを確認します。
セル/X または O 画像ごとに 1 つずつ、作成した 9 つの変数があります。
var pic1 = document.getElementById("r1c1").src;
var pic2 = document.getElementById("r1c2").src;
var pic3 = document.getElementById("r1c3").src;
var pic4 = document.getElementById("r2c1").src;
var pic5 = document.getElementById("r2c2").src;
var pic6 = document.getElementById("r2c3").src;
var pic7 = document.getElementById("r3c1").src;
var pic8 = document.getElementById("r3c2").src;
var pic9 = document.getElementById("r3c3").src;
これは、最初のスクリプトの最後にあります。
function detectWin()
{
if (var pic1 == var pic2 && var pic3)
{
window.alert("Game won. Please reset the game.");
}
}
これは明らかに最初の行の勝利のみを検出します。これを機能させることができれば、残りのコードがどうあるべきかがわかります。ただし、スクリプトを強制終了する方法はまだわかりません。
不要な発言や文法上の誤りを削除するために編集されました。