Oceńcie proszę mój kod. Nie oszczędzajcie go. Bądźcie szczerzy i jak najbardziej krytyczni. Jakie złe praktyki zastosowałem w nim, jakie błędy popełniłem itp.
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>TicTacToe</header>
<div id="list">
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div style="clear:both;"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div style="clear:both;"></div>
<div class="tile"></div>
<div class="tile"></div>
<div class="tile"></div>
<div style="clear:both;"></div>
</div>
<span id="tura" >Player: X</span>
<script src="java.js"></script>
</body>
</html>
//zmienne globalne
var grab_list = document.getElementById("list"),
grab_tura = document.getElementById("tura"),
flag=0,
znakX="X",
znakO="O",
koniec = false,
counter=0;
//bierzemy target eventu, element jaki bedzie klikniety
function getTarget(e){
return e.target;
}
//funkcja wypisujaca odpowiedni content w odpowiednim elemencie
function podmien(e) {
var target, klasa, kontent;
target = getTarget(e);
kontent = target.textContent;
if(kontent==""){
if(flag==0){
target.textContent = znakX;
flag++;
counter++;
grab_tura.textContent = "Player: "+znakO;
wygrana();
}
else if(flag==1){
target.textContent = znakO;
flag--;
counter++;
grab_tura.textContent = "Player: "+znakX;
wygrana();
}
}
}
//funkcja sprawdzajaca wygrana
function wygrana(){
var grab_kafelki = document.getElementsByClassName("tile"),
grab_k1 = grab_kafelki[0].innerHTML,
grab_k2 = grab_kafelki[1].innerHTML,
grab_k3 = grab_kafelki[2].innerHTML,
grab_k4 = grab_kafelki[3].innerHTML,
grab_k5 = grab_kafelki[4].innerHTML,
grab_k6 = grab_kafelki[5].innerHTML,
grab_k7 = grab_kafelki[6].innerHTML,
grab_k8 = grab_kafelki[7].innerHTML,
grab_k9 = grab_kafelki[8].innerHTML;
if((grab_k1==znakX&&grab_k2==znakX&&grab_k3==znakX) ||
(grab_k4==znakX&&grab_k5==znakX&&grab_k6==znakX) ||
(grab_k7==znakX&&grab_k8==znakX&&grab_k9==znakX) ||
(grab_k1==znakX&&grab_k4==znakX&&grab_k7==znakX) ||
(grab_k2==znakX&&grab_k5==znakX&&grab_k8==znakX) ||
(grab_k3==znakX&&grab_k6==znakX&&grab_k9==znakX) ||
(grab_k1==znakX&&grab_k5==znakX&&grab_k9==znakX) ||
(grab_k3==znakX&&grab_k5==znakX&&grab_k7==znakX)){
grab_tura.textContent = "Wygrał X!";
koniec = true;
ending();
}
else if((grab_k1==znakO&&grab_k2==znakO&&grab_k3==znakO) ||
(grab_k4==znakO&&grab_k5==znakO&&grab_k6==znakO) ||
(grab_k7==znakO&&grab_k8==znakO&&grab_k9==znakO) ||
(grab_k1==znakO&&grab_k4==znakO&&grab_k7==znakO) ||
(grab_k2==znakO&&grab_k5==znakO&&grab_k8==znakO) ||
(grab_k3==znakO&&grab_k6==znakO&&grab_k9==znakO) ||
(grab_k1==znakO&&grab_k5==znakO&&grab_k9==znakO) ||
(grab_k3==znakO&&grab_k5==znakO&&grab_k7==znakO)){
grab_tura.textContent = "Wygrał O!";
koniec = true;
ending();
}
else if(counter==9){
grab_tura.textContent = "Remis!";
koniec = true;
ending();
}
}
//funkcja resetujaca gre i cala strone
function ending(){
var g_logo = document.getElementsByTagName("header")[0];
g_logo.innerHTML="<a href=\"index.html\">Play again</a>";
}
// event object dla naszych elemntow li wolajacy funckcje podmien
grab_list.addEventListener('click', function(e){
if(koniec==false) podmien(e);
}, false);