Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   крестики нолики (https://javascript.ru/forum/events/78969-krestiki-noliki.html)

mideeff 29.11.2019 13:46

крестики нолики
 
добрый вечер, создается поле 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');
    }   
    }

Rise 29.11.2019 15:28

Посмотри какие ячейки в tmp я тебя на самом деле попадают, возможно не те которые ты ожидаешь: console.log(tmp), поводи там по элементам, они будут подсвечиваться на странице.

mideeff 29.11.2019 15:34

я подправил, не поможете сделать проверку на определение победы? (по вертикали, горизонтали, диагонали), тк размер изменяется в зависимости от введеного значения, не могу составить цикл(

Rise 29.11.2019 15:43

https://www.google.com/search?q=tic+...avascript+code
https://www.google.com/search?q=tic+tac+toe+algorithm

рони 29.11.2019 16:12

mideeff,
составить массив возможных вариантов выигрыша и проверять с массивами крестиков и ноликов.
пример
https://javascript.ru/forum/misc/716...tml#post472058


Часовой пояс GMT +3, время: 07:07.