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

Почему когда я хожу моих ходов не видно игра крестики нолики

Georgiy Kim Ученик (19), на голосовании 1 год назад
 let items = document.getElementsByClassName('appBlock')
let movePlayer = 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")
}
Голосование за лучший ответ
leo grebnev Мыслитель (9824) 1 год назад
Проблема может быть в том, что вы используете свойство "innerHtml" вместо "innerHTML" для установки значения хода (крестика или нолика) в блоке. Вместо этого нужно использовать "innerHTML", чтобы установить значение внутри блока. Попробуйте заменить все вхождения "innerHtml" на "innerHTML" в вашем коде и проверьте, решит ли это проблему.
Яков Гото Искусственный Интеллект (320909) 1 год назад
Когда будешь следующий раз задавать вопрос, будь добр приложить код HTML... или создавай шаблон страницы через JS. Или, еще лучше, залей его в рабочем состоянии на codepen/codesandbox.
Похожие вопросы