Javascript.RU

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

Делаю игру 3 в ряд нужна помощь
Здравствуйте, делаю игру 3 в ряд. необходимо реализовать логику перебора массива. Проверять на одинаковые элементы стоящие рядом по вертикале и горизонтали.

Вот код на код пене
https://codepen.io/prydavlad/pen/qjLpwb
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2017, 14:28
Новичок на форуме
Отправить личное сообщение для vladislav1399 Посмотреть профиль Найти все сообщения от vladislav1399
 
Регистрация: 13.07.2017
Сообщений: 3

Имя и Ид уникальные, они равняются индексу в массиве i j, 00,01,02 и так далее, ballName это в конструкторе с конструктора я вытягиваю класс с элементов, еще есть 2й массив в котором одни дивы шары, подскажите как через цикл найти 3 элемента рядом
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2017, 19:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

games match 3
vladislav1399,
...мысли вслух, без комментариев.
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  *{
    padding: 0;
    margin: 0;
  }

  .cell {
    text-align: center;
     float: left;
     height: 70px;
     width: 70px;
     background-color: #FFEBCD;
     font-size: 12px;
      border-radius: 50%;
      margin: 2px;
      line-height: 70px;
       color: White;
  }
  #matrix{
    display: inline-block;
    margin: 50px auto;
    border: 14px solid black;
    border-radius: 16px;
    background-color: Azure;
  }
  .cell.boom{
    -webkit-animation: up 5s ease-in-out infinite;
  -moz-animation: up 5s ease-in-out infinite;
  -o-animation: up 5s ease-in-out infinite;
  animation: up 5s ease-in-out infinite;

  }
  @keyframes up {
  50% {
      transform:  scale(.3);
  }
}
@-webkit-keyframes up {
  50% {
     transform:  scale(.3);
  }
}

  </style>

  <script>
window.addEventListener("DOMContentLoaded", function() {
    var matrix = document.getElementById("matrix"),
        l = (Math.random() * 7 | 0) + 5;
    t = (Math.random() * 4 | 0) + 5, n = l * t;
    var color = ["ForestGreen", "DeepPink", "RoyalBlue", "Chocolate", "Gold"];

    function createMatrix() {
        var w;
        for (var i = 0; i < n; i++) {
            var div = document.createElement("div");
            div.className = "cell";
            var bg = color.length * Math.random() | 0;
            div.style.backgroundColor = color[bg];
            div.dataset.bg = bg;
            div.dataset.index = i;
            matrix.appendChild(div);
            if (i == l - 1) w = matrix.scrollWidth + 1
        }
        matrix.style.width = w + "px";
        matrix.style.height = matrix.scrollHeight + "px";
        matrix.style.display = "block"
    }
    createMatrix();
    var divs = [].slice.call(document.querySelectorAll(".cell"), 0);
    divsColl = [];

    function gIndx(i) {
        var x = i % l,
            y = i / l | 0;
        return y + t * x
    }
    for (var i = 0; i < divs.length; i++) divsColl[gIndx(i)] = divs[i];

    function h(a, b, d) {
        a = a.dataset.bg;
        b = b.dataset.bg;
        d = d.dataset.bg;
        return a == b && b == d
    }

    function chec(arr, num) {
        for (var i = 0; i < arr.length; i += num) {
            var k = arr.slice(i, i + num);
            k.forEach(function(d, i) {
                var a, b, c;
                a = k[i - 1];
                b = k[i + 1];
                if (a && b && h(a, b, d)) c = true;
                a = k[i - 1];
                b = k[i - 2];
                if (a && b && h(a, b, d)) c = true;
                a = k[i + 1];
                b = k[i + 2];
                if (a && b && h(a, b, d)) c = true;
                if (c) {
                d.innerHTML = "boom!";
                d.classList.add("boom")
                }
            })
        }
    }
    chec(divsColl, t);//проверка по вертикали
    chec(divs, l)//проверка по горизонтали
});
  </script>
</head>

<body>
<div id="matrix" ></div>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 14.07.2017, 00:10
Новичок на форуме
Отправить личное сообщение для vladislav1399 Посмотреть профиль Найти все сообщения от vladislav1399
 
Регистрация: 13.07.2017
Сообщений: 3

Ого, вот это уровень спасибо, всех благ Вам)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Унылого треша тред megaupload Оффтопик 648 17.06.2014 14:31
Нужна помощь по javascript darklend Общие вопросы Javascript 0 12.01.2014 23:33
Нужна помощь: Slider wheel Alex555 Мобильный JavaScript 0 15.05.2013 18:06
Нужна помощь по слайдеру seoguru Работа 3 28.01.2013 22:02
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17