крестики нолики
добрый вечер, создается поле NxN, я пока что сделал объявление победителя при установки "1" в первые 5 элементов, какой конструкцией можно определить победителя по всем вариантом(по диагоналям, по вертикалям, по горизонталям)?
window.onload = function(){ function someFunc(){ var kol = document.getElementById("text").value; var container=document.getElementById('game'); container.style.height=50*kol+"px"; container.style.width=50*kol+"px"; var kv = kol*kol; build(kv); } document.getElementById("btn1").onclick = someFunc; function build(kv){ for (var i = 0; i <= kv; i++){ document.getElementById('game').innerHTML+='<div class="block"></div>'; } } var hod = 0; document.getElementById('game').onclick = function(event){ //console.log(event); if (event.target.className == 'block'){ if (hod%2==0) { event.target.innerHTML = '1'; } else { event.target.innerHTML = '1'; } hod++; chekWinner(); } } function chekWinner(){ var win = [ 1, 1, 1, 1, 1 ]; var allblock = document.getElementsByClassName('block'); //console.log(allblock); var tmp = new Array(); for(i=0;i<=4;i++){ tmp[i]=[]; for (var j = 0;j<=4;j++){ tmp[i][j] = allblock[i*5+j]; } } //console.log(tmp[4][4].innerHTML); if (tmp[0][0].innerHTML=='1' && tmp[0][1].innerHTML=='1' && tmp[0][2].innerHTML=='1' && tmp[0][3].innerHTML=='1' && tmp[0][4].innerHTML=='1') alert('win'); } } |
я подправил, не поможете сделать проверку на определение победы? (по вертикали, горизонтали, диагонали), тк размер изменяется в зависимости от введеного значения, не могу составить цикл(
|
mideeff,
составить массив возможных вариантов выигрыша и проверять с массивами крестиков и ноликов. пример https://javascript.ru/forum/misc/716...tml#post472058 |
Часовой пояс GMT +3, время: 01:09. |