Подскажите пожалуйста. Нужно добавить окно alert при исходе игры "ничья"
window.onload = function(){ //выполнение кода после загрузки страницы
// ход Х и О
var step = 0;
document.getElementById('game').onclick = function(event){
console.log(event);
if(event.target.className == 'block'){
if(step % 2==0){
event.target.innerHTML = 'Х';
} else {
event.target.innerHTML = 'O';
}
step++;
winner();
}
}
//проверка победителя
function winner(){
var allblock = document.getElementsByClassName('block');
console.log(allblock);
//проверка Х по горизонтали, вертикали, диагонали
if (allblock[0].innerHTML=='Х' && allblock[1].innerHTML=='Х' && allblock[2].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[3].innerHTML=='Х' && allblock[4].innerHTML=='Х' && allblock[5].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[6].innerHTML=='Х' && allblock[7].innerHTML=='Х' && allblock[8].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[0].innerHTML=='Х' && allblock[3].innerHTML=='Х' && allblock[6].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[1].innerHTML=='Х' && allblock[4].innerHTML=='Х' && allblock[7].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[2].innerHTML=='Х' && allblock[5].innerHTML=='Х' && allblock[8].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[0].innerHTML=='Х' && allblock[4].innerHTML=='Х' && allblock[8].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
if (allblock[2].innerHTML=='Х' && allblock[4].innerHTML=='Х' && allblock[8].innerHTML=='Х')
{
alert('Победа Х');
location.reload();
}
//проверка O по горизонтали, вертикали, диагонали
if (allblock[0].innerHTML=='O' && allblock[1].innerHTML=='O' && allblock[2].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[3].innerHTML=='O' && allblock[4].innerHTML=='O' && allblock[5].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[6].innerHTML=='O' && allblock[7].innerHTML=='O' && allblock[8].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[0].innerHTML=='O' && allblock[3].innerHTML=='O' && allblock[6].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[1].innerHTML=='O' && allblock[4].innerHTML=='O' && allblock[7].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[2].innerHTML=='O' && allblock[5].innerHTML=='O' && allblock[8].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[0].innerHTML=='O' && allblock[4].innerHTML=='O' && allblock[8].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
if (allblock[2].innerHTML=='O' && allblock[4].innerHTML=='O' && allblock[8].innerHTML=='O')
{
alert('Победа O')
location.reload();
}
}
}
Как вариант в функцию winner можно добавить в конец проверку:
if(step == 9){
alert("Ничья");
}
Если оно дошло до этой проверки, значит победитель еще не обнаружен, а если при этом step == 9, значит, что свободных ячеек уже нет.
function winner(){
...
else if (...)
{
alert('Победа O')
location.reload();
} else {
var moves = 0;
for (var i = 0; i < allblock.length; i++) {
if (allblock[i].innerHTML == '0' || allblock[i].innerHTML == 'X')
moves++;
}
if (moves == 9) {
alert("ничья");
location.reload();
}
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Например, есть значение AgeКак сделать чтобы в его столбце число не могло быть меньше 0?