|
|
@ -0,0 +1,109 @@ |
|
|
|
var btns = document.querySelectorAll('button'); |
|
|
|
var score=document.getElementsByClassName("player"); |
|
|
|
var XO = 'x'; |
|
|
|
var win1=0; |
|
|
|
var win2=0; |
|
|
|
var NoOneWon=0; |
|
|
|
var player=[]; |
|
|
|
var AI=[]; |
|
|
|
for(i = 0; i<btns.length; i++){ |
|
|
|
btns[i].onclick = function(){ |
|
|
|
if( ! this.classList.contains('unclickable')){ |
|
|
|
player.push(this.attributes.id); |
|
|
|
this.textContent = XO; |
|
|
|
this.style.fontSize = '20px'; |
|
|
|
this.classList.add('unclickable'); |
|
|
|
NoOneWon++; |
|
|
|
if(XO==='x'){ |
|
|
|
XO = 'o'; |
|
|
|
}else{XO = 'x';} |
|
|
|
if(checkWinner(player)){alert('palyer 1 won'); init(); |
|
|
|
win1++; |
|
|
|
score[0].firstElementChild.textContent = "player 1: "+win1; |
|
|
|
} |
|
|
|
|
|
|
|
againstAi(); //error at the last click of the 1st playerX but doesn't matter :/
|
|
|
|
NoOneWon++; |
|
|
|
if(NoOneWon==9){ |
|
|
|
alert('no One Won :|');init(); |
|
|
|
} |
|
|
|
}//onclick end
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function againstAi(){ |
|
|
|
var emptyList= new Array(); |
|
|
|
for(i = 0; i<btns.length ; i++){ |
|
|
|
|
|
|
|
if( ! btns[i].classList.contains('unclickable')){ |
|
|
|
emptyList.push(btns[i]); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
/*for(i = 0; i<emptyList.length ; i++){ |
|
|
|
console.log(emptyList[i]); |
|
|
|
}*/ |
|
|
|
//random btn
|
|
|
|
var random=Math.floor(Math.random() *emptyList.length); |
|
|
|
AI.push(emptyList[random].attributes.id); |
|
|
|
emptyList[random].textContent=XO |
|
|
|
emptyList[random].style.fontSize = '20px'; |
|
|
|
emptyList[random].classList.add('unclickable'); |
|
|
|
|
|
|
|
// console.log(random);
|
|
|
|
if(XO==='x'){ |
|
|
|
XO = 'o'; |
|
|
|
}else{XO = 'x';} |
|
|
|
|
|
|
|
if(checkWinner(AI)){alert('player 2 won ');init(); |
|
|
|
win2++; |
|
|
|
score[0].firstElementChild.textContent = "player 1: "+win2; |
|
|
|
} |
|
|
|
}//againstAi end
|
|
|
|
|
|
|
|
function checkWinner(playerX){ |
|
|
|
if((playerX.indexOf( btnId( 0 ) ) !=-1 && playerX.indexOf( btnId( 1 ) ) !=-1 && playerX.indexOf( btnId( 2 ) ) !=-1) ){ |
|
|
|
//console.log(playerX.indexOf( btnId( 5 ) ) !=-1)
|
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 3 ) ) !=-1 && playerX.indexOf( btnId( 4 ) ) !=-1 && playerX.indexOf( btnId( 5 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 6 ) ) !=-1 && playerX.indexOf( btnId( 7 ) ) !=-1 && playerX.indexOf( btnId( 8 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 0 ) ) !=-1 && playerX.indexOf( btnId( 3 ) ) !=-1 && playerX.indexOf( btnId( 6 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 1 ) ) !=-1 && playerX.indexOf( btnId( 4 ) ) !=-1 && playerX.indexOf( btnId( 7 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 2 ) ) !=-1 && playerX.indexOf( btnId( 5 ) ) !=-1 && playerX.indexOf( btnId( 8 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 0 ) ) !=-1 && playerX.indexOf( btnId( 4 ) ) !=-1 && playerX.indexOf( btnId( 8 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else if((playerX.indexOf( btnId( 2 ) ) !=-1 && playerX.indexOf( btnId( 4 ) ) !=-1 && playerX.indexOf( btnId( 6 ) ) !=-1)){ |
|
|
|
return true; |
|
|
|
} |
|
|
|
else{return false;} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function btnId(a){ |
|
|
|
return btns[a].attributes.id; |
|
|
|
} |
|
|
|
|
|
|
|
function init(){ |
|
|
|
for(i = 0 ; i<9 ; i++){ |
|
|
|
btns[i].style.fontSize='1px'; |
|
|
|
btns[i].textContent="x" // just an initialisation :)
|
|
|
|
if(btns[i].classList.contains('unclickable')){btns[i].classList.remove('unclickable');} |
|
|
|
player=[]; |
|
|
|
AI=[]; |
|
|
|
NoOneWon=0; |
|
|
|
} |
|
|
|
} |