我正在写一个井字游戏程序。到目前为止,我具有3x3网格,并且能够将X和O图像拖放到网格中。
要宣布获胜者,我是否要使用if else语句?
我只是想知道如何宣布获胜者。我猜想这需要JavaScript。
这是我在jsfiddle中的代码,以及下面的编译代码:
http://jsfiddle.net/VXQ7P/
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1, #div2, #div3, #div4, #div5, #div6, #div7, #div8, #div9 {
width: 80px;
height: 80px;
padding: 10px;
border: 1px solid #aaaaaa;
float: left;
}
</style>
<script type="text/javascript">
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("Text",ev.target.id);
helper:clone;
}
function drop(ev) {
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data).cloneNode(true));
ev.preventDefault();
}
</script>
<title>JavaScript Drag & Drop Tic-Tac-Toe</title>
</head>
<body>
<p>Drag the X and O images into the tic-tac-toe board:</p>
<table>
<tr>
<td><div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div3" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
</tr>
<tr>
<td><div id="div4" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div5" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div6" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
</tr>
<tr>
<td><div id="div7" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div8" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
<td><div id="div9" ondrop="drop(event)" ondragover="allowDrop(event)"></div></td>
</tr>
</table>
<img id="drag1" src="X.png" ondragstart="drag(event)" width="75" height="75"/>
<img id="drag2" src="O.png" draggable="true" ondragstart="drag(event)" width="75" height="75"/>
</body>
</html>
最佳答案
在我的选择下,你到那儿去了。您应该为每个字段使用“ onclick()”,然后将div的innerhtml更改为X或O。您可能还想在Google上搜索“ tic tac toe javascript”。很多人以前都这样做过。例如查看以下内容:http://jsfiddle.net/rtoal/ThPEH/
获胜者的定义方式非常容易理解,并且在那里得到了很好的解释。 ;)
从网站获得:
/*
* To determine a win condition, each square is "tagged" from left
* to right, top to bottom, with successive powers of 2. Each cell
* thus represents an individual bit in a 9-bit string, and a
* player's squares at any given time can be represented as a
* unique 9-bit value. A winner can thus be easily determined by
* checking whether the player's current 9 bits have covered any
* of the eight "three-in-a-row" combinations.
*
* 273 84
* \ /
* 1 | 2 | 4 = 7
* -----+-----+-----
* 8 | 16 | 32 = 56
* -----+-----+-----
* 64 | 128 | 256 = 448
* =================
* 73 146 292
*
*/
wins = [7, 56, 448, 73, 146, 292, 273, 84],
编辑:
您可以将每个TicTacToe单元的状态和值存储在数组中。这样,您可以轻松地访问他们以确定是否有赢家。
http://pastebin.com/xDhBUfeS
关于javascript - 在井字游戏中宣布获胜者,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19851973/