Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2019, 13:46
Новичок на форуме
Отправить личное сообщение для mideeff Посмотреть профиль Найти все сообщения от mideeff
 
Регистрация: 29.11.2019
Сообщений: 2

крестики нолики
добрый вечер, создается поле 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, 29.11.2019 в 15:16.
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2019, 15:28
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

Посмотри какие ячейки в tmp я тебя на самом деле попадают, возможно не те которые ты ожидаешь: console.log(tmp), поводи там по элементам, они будут подсвечиваться на странице.
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2019, 15:34
Новичок на форуме
Отправить личное сообщение для mideeff Посмотреть профиль Найти все сообщения от mideeff
 
Регистрация: 29.11.2019
Сообщений: 2

я подправил, не поможете сделать проверку на определение победы? (по вертикали, горизонтали, диагонали), тк размер изменяется в зависимости от введеного значения, не могу составить цикл(
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2019, 16:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пасаны, сделайте крестики нолики, пожалуйста. AgressivePi Javascript под браузер 2 21.11.2018 07:49
Пасаны, сделайте крестики нолики, пожалуйста. Задание на картинке AgressivePi Javascript под браузер 1 19.11.2018 10:26
Крестики нолики на js Lukashev Ваши сайты и скрипты 0 19.06.2017 06:10
Крестики нолики DivMan Events/DOM/Window 2 30.09.2016 14:37
Сравнение элементов массива по столбцам ghost200607 Общие вопросы Javascript 2 01.07.2014 10:05