用JavaScript写人对人的井字棋
时间: 2023-05-19 17:03:34 浏览: 47
以下是用 JavaScript 写的人对人的井字棋游戏代码:
HTML 代码:
```
<!DOCTYPE html>
<html>
<head>
<title>人对人井字棋游戏</title>
<style type="text/css">
table {
border-collapse: collapse;
margin: 20px auto;
}
td {
width: 50px;
height: 50px;
border: 1px solid black;
text-align: center;
font-size: 30px;
cursor: pointer;
}
td:hover {
background-color: #eee;
}
</style>
</head>
<body>
<table id="board">
<tr>
<td id="0"></td>
<td id="1"></td>
<td id="2"></td>
</tr>
<tr>
<td id="3"></td>
<td id="4"></td>
<td id="5"></td>
</tr>
<tr>
<td id="6"></td>
<td id="7"></td>
<td id="8"></td>
</tr>
</table>
<div id="result"></div>
<script type="text/javascript" src="game.js"></script>
</body>
</html>
```
JavaScript 代码:
```
var board = document.getElementById("board");
var cells = board.getElementsByTagName("td");
var result = document.getElementById("result");
var currentPlayer = "X";
var moves = 0;
var gameEnded = false;
for (var i = 0; i < cells.length; i++) {
cells[i].addEventListener("click", function() {
if (gameEnded) {
return;
}
if (this.innerHTML !== "") {
return;
}
this.innerHTML = currentPlayer;
moves++;
if (checkWin()) {
result.innerHTML = currentPlayer + " 赢了!";
gameEnded = true;
return;
}
if (moves === 9) {
result.innerHTML = "平局!";
gameEnded = true;
return;
}
currentPlayer = currentPlayer === "X" ? "O" : "X";
});
}
function checkWin() {
var lines = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6]
];
for (var i = 0; i < lines.length; i++) {
var a = lines[i][0];
var b = lines[i][1];
var c = lines[i][2];
if (cells[a].innerHTML === currentPlayer && cells[b].innerHTML === currentPlayer && cells[c].innerHTML === currentPlayer) {
return true;
}
}
return false;
}
```
这个游戏使用 HTML 和 JavaScript 编写,通过点击表格中的单元格来下棋。游戏会检查是否有一方获胜或者平局,并在结果区域显示结果。