Крестики-нолики. Первая итерация
Первая ссылка в Google https://youtu.be/-YWO-YFW9Ag
Результат: https://projectstictactoe.github.io/
Понравилась манера говорить, детальность рассказа, иногда даже чрезмерная, то, что выложил архив с исходниками
Не понравилось:
- названия переменных, например, "hod"
- устаревший код, когда вместо
var game = document.getElementById("game");
game.addEventListener("click", function(e) { ... }
используют
document.getElementById('game').onclick = function(e){ ... }
- индусский код, например, проверка на выигрыш выглядит так:
function checkWinner() {
var allblocks = document.querySelectorAll(".block");
if(allblocks[0].innerHTML === "✖" && allblocks[1].innerHTML === "✖" && allblocks[2].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[3].innerHTML === "✖" && allblocks[4].innerHTML === "✖" && allblocks[5].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[6].innerHTML === "✖" && allblocks[7].innerHTML === "✖" && allblocks[8].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[0].innerHTML === "✖" && allblocks[3].innerHTML === "✖" && allblocks[6].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[1].innerHTML === "✖" && allblocks[4].innerHTML === "✖" && allblocks[7].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[2].innerHTML === "✖" && allblocks[5].innerHTML === "✖" && allblocks[8].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[0].innerHTML === "✖" && allblocks[4].innerHTML === "✖" && allblocks[8].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[2].innerHTML === "✖" && allblocks[4].innerHTML === "✖" && allblocks[6].innerHTML === "✖")
result.innerHTML = "Победили крестики";
if(allblocks[0].innerHTML === "O" && allblocks[1].innerHTML === "O" && allblocks[2].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[3].innerHTML === "O" && allblocks[4].innerHTML === "O" && allblocks[5].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[6].innerHTML === "O" && allblocks[7].innerHTML === "O" && allblocks[8].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[0].innerHTML === "O" && allblocks[3].innerHTML === "O" && allblocks[6].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[1].innerHTML === "O" && allblocks[4].innerHTML === "O" && allblocks[7].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[2].innerHTML === "O" && allblocks[5].innerHTML === "O" && allblocks[8].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[0].innerHTML === "O" && allblocks[4].innerHTML === "O" && allblocks[8].innerHTML === "O")
result.innerHTML = "Победили нолики";
if(allblocks[2].innerHTML === "O" && allblocks[4].innerHTML === "O" && allblocks[6].innerHTML === "O")
result.innerHTML = "Победили нолики";
}
- программа очень примитивная: нет проверки на ничью, можно ставить крестик или нолик поверх уже установленного, компьютер сам не ходит, нет завершения игры, нет предложения сыграть ещё раз