Files
intecsync/uebung4/drei-gewinnt.html
2019-05-26 21:25:41 +02:00

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>