メモ帳でできるプログラミング JavaScript

まるばつゲーム3

勝敗判定と、勝負がついた後のリセットを追加しました。

デモ

プログラム

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>まるばつゲーム</title>
<style>
#a td {
	width: 100px;
	height: 100px;
	font-size: 80px;
	border: 1px solid #ccc;
	text-align:center;
}
</style>
<script>
window.onload = function() {

	var turn = '○';

	function mark(e)
	{
		if (e.target.innerHTML == '') {
			e.target.innerHTML = turn;
			if (hantei()) {
				alert(turn + 'の勝ち!');
				mouichido();
			} else {
				change_turn();
			}
		}
	}

	function hantei()
	{
		var tds = document.getElementById('a').getElementsByTagName('td');
		if (tds[0].innerHTML != '' && tds[0].innerHTML == tds[1].innerHTML && tds[0].innerHTML == tds[2].innerHTML) {
			return true;
		} else if (tds[3].innerHTML != '' && tds[3].innerHTML == tds[4].innerHTML && tds[3].innerHTML == tds[5].innerHTML) {
			return true;
		} else if (tds[6].innerHTML != '' && tds[6].innerHTML == tds[7].innerHTML && tds[6].innerHTML == tds[8].innerHTML) {
			return true;
		} else if (tds[0].innerHTML != '' && tds[0].innerHTML == tds[3].innerHTML && tds[0].innerHTML == tds[6].innerHTML) {
			return true;
		} else if (tds[1].innerHTML != '' && tds[1].innerHTML == tds[4].innerHTML && tds[1].innerHTML == tds[7].innerHTML) {
			return true;
		} else if (tds[2].innerHTML != '' && tds[2].innerHTML == tds[5].innerHTML && tds[2].innerHTML == tds[8].innerHTML) {
			return true;
		} else if (tds[0].innerHTML != '' && tds[0].innerHTML == tds[4].innerHTML && tds[0].innerHTML == tds[8].innerHTML) {
			return true;
		} else if (tds[2].innerHTML != '' && tds[2].innerHTML == tds[4].innerHTML && tds[2].innerHTML == tds[6].innerHTML) {
			return true;
		} else {
			return false;
		}
	}

	function mouichido()
	{
		var tds = document.getElementById('a').getElementsByTagName('td');
		for (var i = 0; i < tds.length; ++i) {
			tds[i].innerHTML = '';
		}
		turn = '○';
	}

	function change_turn()
	{
		if (turn == '○') {
			turn = '×';
		} else {
			turn = '○';
		}
	}

	var tds = document.getElementById('a').getElementsByTagName('td');
	for (var i = 0; i < tds.length; ++i) {
		tds[i].addEventListener('click', mark);
	}

}
</script>
</head>
<body>
	<h1>まるばつゲーム</h1>
	<table id="a">
		<tbody>
			<tr><td></td><td></td><td></td></tr>
			<tr><td></td><td></td><td></td></tr>
			<tr><td></td><td></td><td></td></tr>
		</tbody>
	</table>
</body>
</html>

解説

(追記予定)