163 lines
4.6 KiB
HTML
163 lines
4.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Drei gewinnt</title>
|
|
|
|
|
|
<style>
|
|
|
|
body {
|
|
font-family: sans-serif;
|
|
text-align: center;
|
|
}
|
|
|
|
table {
|
|
margin: auto;
|
|
border-collapse: collapse;
|
|
}
|
|
|
|
td {
|
|
width: 75px;
|
|
height: 75px;
|
|
border: 1px solid black;
|
|
font-size: 50px;
|
|
}
|
|
|
|
|
|
td:first-child {
|
|
border-left: 0;
|
|
}
|
|
|
|
td:last-child {
|
|
border-right: 0;
|
|
}
|
|
|
|
tr:first-child td {
|
|
border-top: 0;
|
|
}
|
|
|
|
tr:last-child td {
|
|
border-bottom: 0;
|
|
}
|
|
|
|
td:hover {
|
|
background-color: #eeeeee;
|
|
cursor: pointer;
|
|
}
|
|
|
|
|
|
#info {
|
|
margin-top: 1em;
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<h1>Drei gewinnt</h1>
|
|
|
|
<table id="board">
|
|
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
|
|
</table>
|
|
|
|
<div id="info">x ist am Zug</div>
|
|
|
|
|
|
<script>
|
|
var board = document.getElementById("board");
|
|
var info = document.getElementById("info");
|
|
var player = "x";
|
|
var win = false;
|
|
var draw = false;
|
|
|
|
board.addEventListener('click', function listener(event) {
|
|
var target = event.target;
|
|
|
|
function updateGame() {
|
|
if (target.nodeName==="TD") {
|
|
if(target.innerHTML == "") {
|
|
target.innerHTML = player;
|
|
checkWin();
|
|
checkDraw();
|
|
updateInfo();
|
|
}
|
|
}
|
|
}
|
|
|
|
function changePlayer() {
|
|
player = (player === "x") ? "o" : "x";
|
|
}
|
|
|
|
function updateInfo() {
|
|
if (win) {
|
|
info.innerHTML = player + " hat gewonnen";
|
|
} else if(draw) {
|
|
info.innerHTML = "Unentschieden";
|
|
} else {
|
|
changePlayer();
|
|
info.innerHTML = player + " ist am Zug";
|
|
}
|
|
}
|
|
|
|
function checkWin() {
|
|
for (i = 0; i < 3; i++) {
|
|
if (board.rows[i].cells[0].innerHTML !== "" && board.rows[i].cells[0].innerHTML === board.rows[i].cells[1].innerHTML && board.rows[i].cells[0].innerHTML === board.rows[i].cells[2].innerHTML) {
|
|
win = true;
|
|
}
|
|
if (board.rows[0].cells[i].innerHTML !== "" && board.rows[0].cells[i].innerHTML === board.rows[1].cells[i].innerHTML && board.rows[0].cells[i].innerHTML === board.rows[2].cells[i].innerHTML) {
|
|
win = true;
|
|
}
|
|
}
|
|
//diagonal
|
|
if (board.rows[0].cells[0].innerHTML !== "" && board.rows[0].cells[0].innerHTML === board.rows[1].cells[1].innerHTML && board.rows[0].cells[0].innerHTML === board.rows[2].cells[2].innerHTML) {
|
|
win = true;
|
|
}
|
|
if (board.rows[0].cells[2].innerHTML !== "" && board.rows[0].cells[2].innerHTML === board.rows[1].cells[1].innerHTML && board.rows[0].cells[2].innerHTML === board.rows[2].cells[0].innerHTML) {
|
|
win = true;
|
|
}
|
|
}
|
|
|
|
function checkDraw() {
|
|
temp = 0;
|
|
for (i = 0; i < 3; i++) {
|
|
for (k = 0; k < 3; k++) {
|
|
if (board.rows[i].cells[k].innerHTML !== "") {
|
|
temp++;
|
|
}
|
|
}
|
|
}
|
|
if (temp == 9) {
|
|
draw = true;
|
|
}
|
|
}
|
|
|
|
if(draw === false && win === false) {
|
|
updateGame();
|
|
}
|
|
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|
|
|