Web/owheroes/tictactoe.js
2021-11-02 07:56:51 +01:00

164 lines
4.2 KiB
JavaScript

var round = [0, 0];
var p = [];
var blue = "";
var red = "";
var g = false;
var bluescore = 0;
var redscore = 0;
for (i=0;i<3;i++)
{
p[i] = new Array(3);
for (j=0;j<3;j++)
{
p[i][j] = 0;
}
}
function game(event) {
if (g)
{
var e = event.currentTarget.id;
var x = Number(e[1]);
var y = Number(e[2]);
if (p[x][y] == 0)
{
round[1]++;
if ((round[0] + round[1]) % 2 == 1)
{
event.currentTarget.style.background = 'url("imgs/icons/' + blue + '.png") blue no-repeat';
event.currentTarget.style.backgroundSize = "86px 86px";
p[x][y] = -1;
console.log("round: " + round[1] + " blue");
}
else if ((round[0] + round[1]) % 2 == 0)
{
event.currentTarget.style.background = 'url("imgs/icons/' + red + '.png") red no-repeat';
event.currentTarget.style.backgroundSize = "86px 86px";
p[x][y] = 1;
console.log("round: " + round[1] + " red");
}
console.log("step: " + x + " " + y);
check();
}
}
}
function check() {
var temp = 0;
for (i=0;i<3;i++)
{
temp = p[i][0];
if (temp == p[i][1] && temp == p[i][2] && temp !=0)
{
gameover(temp);
}
temp = p[0][i];
if (temp == p[1][i] && temp == p[2][i] && temp != 0)
{
gameover(temp);
}
}
temp = p[0][0];
if (temp == p[1][1] && temp == p[2][2] && temp != 0)
{
gameover(temp);
}
temp = p[0][2];
if (temp == p[1][1] && temp == p[2][0] && temp != 0)
{
gameover(temp);
}
if (round[1] == 9 && g == true)
{
gameover(0);
}
}
function gameover(w) {
g = false;
console.log("victory: " + w);
if (w == -1)
{
document.getElementById("bluegameover").innerHTML = "Victory!";
document.getElementById("bluegameover").style.color = "yellow";
document.getElementById("redgameover").innerHTML = "Defeat!";
document.getElementById("redgameover").style.color = "red";
bluescore++;
document.getElementById("score").innerHTML = bluescore + " - " + redscore;
document.getElementById("score").style.color = "yellow";
}
if (w == 1)
{
document.getElementById("redgameover").innerHTML = "Victory!";
document.getElementById("redgameover").style.color = "yellow";
document.getElementById("bluegameover").innerHTML = "Defeat!";
document.getElementById("bluegameover").style.color = "red";
redscore++;
document.getElementById("score").innerHTML = bluescore + " - " + redscore;
document.getElementById("score").style.color = "yellow";
}
if (w == 0)
{
document.getElementById("score").innerHTML = "Draw!";
document.getElementById("score").style.color = "orange";
}
}
function selectedblue(event) {
if (blue == "")
{
a = String(event.currentTarget.id).split("-");
blue = a[1];
console.log("blue: " + blue);
document.getElementById("blueheroselect").classList.remove("d-block");
document.getElementById("blueheroselect").classList.add("d-none");
document.getElementById("bluegameover").classList.remove("d-none");
document.getElementById("bluegameover").classList.add("d-block");
document.getElementById("bluegameover").style.backgroundImage = 'url("imgs/heroes/' + blue + '.png")';
startgame();
}
}
function selectedred(event) {
if (red == "")
{
a = String(event.currentTarget.id).split("-");
red = a[1];
console.log("red: " + red);
document.getElementById("redheroselect").classList.remove("d-block");
document.getElementById("redheroselect").classList.add("d-none");
document.getElementById("redgameover").classList.remove("d-none");
document.getElementById("redgameover").classList.add("d-block");
document.getElementById("redgameover").style.backgroundImage = 'url("imgs/heroes/' + red + '.png")';
startgame();
}
}
function startgame() {
if ((red != "") && (blue != ""))
{
g = true;
}
}
function newgame() {
round[0]++;
console.log("match: " + round[0]);
round[1] = 0;
document.getElementById("bluegameover").innerHTML = "";
document.getElementById("redgameover").innerHTML = "";
document.getElementById("score").innerHTML = bluescore + " - " + redscore;
document.getElementById("score").style.color = "yellow";
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
p[i][j] = 0;
document.getElementById("p" + String(i) + String(j)).style.backgroundImage = "none";
document.getElementById("p" + String(i) + String(j)).style.backgroundColor = "white";
}
}
g = true;
}