js实现双人对战五子棋
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>双人对战五子棋 - temptation</title>
<style type="text/css">
#center{
text-align:center;
}
table {
border: 1px solid black;
border-collapse: collapse;
background-color: burlywood;
margin:0 auto
}
td {
border: 1px solid black;
width: 40px;
height: 40px;
}
</style>
<script type="text/javascript">
var currentColor = 'black';
window.onload = function () {
document.getElementById('spanColor').innerText = currentColor;
var chessboard = document.getElementById('chessboard');
chessboard.onclick = function () {
var obj = event.target;
if (obj.style.backgroundColor == 'black' || obj.style.backgroundColor == 'white') {
alert('该位置已经有棋子,不能再落子!');
} else{
obj.style.backgroundColor = currentColor;
obj.style.borderRadius = '50%';
var currentChess = {
x: obj.cellIndex,
y: obj.parentNode.rowIndex,
color: currentColor
};
var flag = (currentColor == 'black' ? 'bbbbb' : 'wwwww');
var tempColor = currentColor;
if (currentColor == 'black') {
currentColor = 'white';
} else{
currentColor = 'black';
}
document.getElementById('spanColor').innerText = currentColor;
var tdArr = document.getElementById('chessboard').getElementsByTagName('td');
var result = ['', '', '', ''];
for (var i = 0; i < tdArr.length; i++) {
var tempChess = {
x: tdArr[i].cellIndex,
y: tdArr[i].parentNode.rowIndex,
color: '0'
};
if (tdArr[i].style.backgroundColor == 'black') {
tempChess.color = 'b';
} else if (tdArr[i].style.backgroundColor == 'white') {
tempChess.color = 'w';
}
if (currentChess.y == tempChess.y) {
result[0] += tempChess.color;
}
if (currentChess.x == tempChess.x) {
result[1] += tempChess.color;
}
if ((currentChess.x - tempChess.x) == (currentChess.y - tempChess.y)) {
result[2] += tempChess.color;
}
if ((currentChess.x + currentChess.y) == (tempChess.x + tempChess.y)) {
result[3] += tempChess.color;
}
}
for (var i = 0; i < result.length; i++) {
if(result[i].indexOf(flag) >= 0) {
if (tempColor == 'black') {
alert('黑棋获胜!');
} else if (tempColor == 'white') {
alert('白棋获胜!');
}
break;
}
}
}
};
};
</script>
</head>
<body>
<div id="center">
<h3>双人对战五子棋</h3>
<div id="divMsg">
落子者为:<span id="spanColor"></span>
</div>
<table id="chessboard">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</div>
</body>
</html>