Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает игра

Georgiy Kim Ученик (19), на голосовании 1 год назад
 let items = document.getElementsByClassName('appBlock')
let movePLyaer = true;
let game = true;


for(let i = 0; i items[i].addEventListener("click", function(){
let collection = document.querySelectorAll(".appBlock:not(.active)")
if(collection.length == 1){
exit({win: "other"})
}
if(!this.classList.contains("active")){
if(movePlayer){
if(this.innerHtml==""){
this.classList.add("active")
this.classList.add("active_x")
this.innerHtml = "x"
}
let result = checkmap()
if(result.val){
game= false;
setTimeout(function(){
exit(result)
}, 10)
}
movePlayer = !movePlayer
}
if(game){
setTimeout(function(){
botmove()
}, 200)
}
}
})
}


function botmove(){
let blocks = document.querySelectorAll(".appBlock:not(.active)")
let step = getRandomint(blocks.length)
blocks[step].innerHTML = "0"
blocks[step].classList.add("active")
blocks[step].classList.add("active_o")

let result = checkmap()
if(result.val){
setTimeout(function(){
exit(result)
}, 1)
}
movePlayer =!movePlayer
}

function getRandomint(max){
return Math.floor(Math.random() * Math.floor(max))
}

function checkmap(){
let block = document.querySelectorAll(".appBlock")
let items = []

for(let i = 0; i items.push(block[i].innerHTML)
}

if(items[0] == "x" && items[1] == "x" && items[2] == "x" ||
items[3] == "x" && items[4] == "x" && items[5] == "x" ||
items[6] == "x" && items[7] == "x" && items[8] == "x" ||
items[0] == "x" && items[3] == "x" && items[6] == "x" ||
items[1] == "x" && items[4] == "x" && items[7] == "x" ||
items[2] == "x" && items[5] == "x" && items[8] == "x" ||
items[0] == "x" && items[4] == "x" && items[8] == "x" ||
items[2] == "x" && items[4] == "x" && items[6] == "x" );
{
return {val: true, win: "player"}
}
if(items[0] == "0" && items[1] == "0" && items[2] == "0" ||
items[3] == "0" && items[4] == "0--" && items[5] == "0" ||
items[6] == "0" && items[7] == "0" && items[8] == "0" ||
items[0] == "0" && items[3] == "0" && items[6] == "0" ||
items[1] == "0" && items[4] == "0" && items[7] == "0" ||
items[2] == "0" && items[5] == "0" && items[8] == "0" ||
items[0] == "0" && items[4] == "0" && items[8] == "0" ||
items[2] == "0" && items[4] == "0" && items[6] == "0" );
{
return {val: true, win: "bot"}
}

return {val : false}


}
function exit(obj){
alert(obj.win + "-game over")
}
Голосование за лучший ответ
Яков Гото Искусственный Интеллект (320909) 1 год назад
Как минимум у тебя пара ошибок в конструкциях if - точка с запятой мешает выполнению кода, плюс открывающую фигурную скобку желательно становить на той же строке, где заканчивается условие.
Еще есть бесполезная фигурная скобка между последних блоков кода. Или код не полный, ибо какой смысл в return вне функции.
Похожие вопросы