Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 07.02.2022, 20:10
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

А почему обязательно на компьютере?
Разве "материальные" игры, игрушки, головоломки хуже?
Я немного знаю о чем говорю, т.к. моя жена всю жизнь проработала психологом в психиатрической больнице (правда не с детьми).
Им необходим не столько компьютер, сколько доступная активность для мозга, моторика для рук, общение...
Ответить с цитированием
  #32 (permalink)  
Старый 07.02.2022, 20:32
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Voraa, Вы абсолютно без сомнений правы во всём!
Но просто, как дополнение к основному, на компьютере можно создавать бесконечное количество наглядного материала... да и по правде, мне самому интересно повозиться с кодом, но у меня, к сожалению, очень ограниченный объем знаний(((
Порой радуюсь, как дитя малое, что удалось что-нибудь "модифицировать" самостоятельно из чужого... повторюсь, я глубоко восхищён возможностями JS! Но я далеко немолод и нездоров, чтобы достаточно хорошо освоить этот замечательный стремительно развивающийся язык(((
Хотя всё же жизнь продолжается и я не теряю надежд на лучшее - вот на неделе скачал современные книги по JS)))
Voraa, спасибо Вам за добрые слова!
Ответить с цитированием
  #33 (permalink)  
Старый 07.02.2022, 23:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Rise
А что это за игра?
https://javascript.ru/forum/css-html...tml#post543102

только надо добавить это

https://javascript.ru/forum/css-html...tml#post543513
Ответить с цитированием
  #34 (permalink)  
Старый 08.02.2022, 00:15
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 458

рони,
Судя по той и этой теме, автор так и не определился окончательно что ему нужно.

Последний раз редактировалось Rise, 08.02.2022 в 00:17.
Ответить с цитированием
  #35 (permalink)  
Старый 08.02.2022, 00:49
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Сообщение от Rise
Судя по той и этой теме, автор так и не определился окончательно что ему нужно.
Rise, моё окончательное видение:
Изображение, которое сначала генерируется, например, из 16 маленьких изображений, автоматически делится на 9 сегментов, которые рандомно перемешиваются, и их необходимо кликами по соседним привести в исходное положение, как на первоначально сгенерированной картинке:

Извините, если невразумительно объясняю((
Ответить с цитированием
  #36 (permalink)  
Старый 08.02.2022, 01:29
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Рони, сначала генерация изображения, как было продемонстрировано Вами в этой теме:
https://javascript.ru/forum/css-html...tml#post543474
Потом раздел на сегменты, как на изображении для Rise выше, затем ваша же реализация перемещения разделённых сегментов в другой моей теме:
https://javascript.ru/forum/css-html...tml#post542829
P.S. Предупреждал не кидать в меня тапками!))
Ответить с цитированием
  #37 (permalink)  
Старый 08.02.2022, 04:07
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

типа пятнашек
<iframe height="550" style="width: 100%;" scrolling="no" title="Fifteen game" src="https://codepen.io/mohnatus-the-lessful/embed/YzXNYQQ?default-tab=js%2Cresult&theme-id=light" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
  See the Pen <a href="https://codepen.io/mohnatus-the-lessful/pen/YzXNYQQ">
  Fifteen game</a> by FurryCat (<a href="https://codepen.io/mohnatus-the-lessful">@mohnatus-the-lessful</a>)
  on <a href="https://codepen.io">CodePen</a>.
</iframe>
Ответить с цитированием
  #38 (permalink)  
Старый 08.02.2022, 11:39
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Rise, все 9 сегментов (разделенные красным на изображении выше) должны быть активны - меняться соседние сегменты между собой при кликах на них.
Ответить с цитированием
  #39 (permalink)  
Старый 08.02.2022, 11:43
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

MallSerg, спасибо!))
Только все изображения-элементы должны быть видны (не как в "пятнашках").
Ответить с цитированием
  #40 (permalink)  
Старый 08.02.2022, 12:48
Кандидат Javascript-наук
Отправить личное сообщение для Борис К Посмотреть профиль Найти все сообщения от Борис К
 
Регистрация: 22.02.2017
Сообщений: 145

Rise, вот так оно всё должно выглядеть в конечном результате, но только в этом варианте всё время будет одно и то же изображение собираться, поэтому я изначально в этой теме хотел каждый раз новое изображение генерировать для сборки:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style type="text/css">
        [data-id="1"] {
            background-image:url(https://i.ibb.co/cb6tXTH/canvas-01.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="2"] {
            background-image:url(https://i.ibb.co/r3nXCKj/canvas-02.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="3"] {
            background-image:url(https://i.ibb.co/PFc43HB/canvas-03.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="4"] {
            background-image:url(https://i.ibb.co/r5dVWj7/canvas-04.jpg);
            width: 200px;
            height: 200px;
        }                    
        [data-id="5"] {           
            background-image:url(https://i.ibb.co/jGp056d/canvas-05.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="6"] {
            background-image:url(https://i.ibb.co/GRVYX8H/canvas-06.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="7"] {
            background-image:url(https://i.ibb.co/QbR97Fr/canvas-07.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="8"] {
            background-image:url(https://i.ibb.co/StcY4gm/canvas-08.jpg);
            width: 200px;
            height: 200px;
        }
        [data-id="9"] {
            background-image:url(https://i.ibb.co/bB70pMR/canvas-09.jpg);
            width: 200px;
            height: 200px;
        }               
    </style>
    <script type="text/javascript">
        document.addEventListener("DOMContentLoaded", function() {
            let temp = [];
            let form = document.querySelector(".game");
            let tds = Array.from(form.querySelectorAll("[data-id]"));
            let idEnd = tds.map(({
                dataset: {
                    id
                }
            }) => id);
            let win;

            function exch(event) {
                if (win) return;
                let td = event.target.closest("[data-id]");
                if (td) {
                    let cellIndex = td.cellIndex;
                    let rowIndex = td.closest("tr").rowIndex;
                    if (temp.length) {
                        let x = Math.abs(cellIndex - temp[1]);
                        let y = Math.abs(rowIndex - temp[2]);
                        if ((x == 0 && y == 1) || (x == 1 && y == 0) || td === temp[0]) {
                            [td.dataset.id, temp[0].dataset.id] = [temp[0].dataset.id, td.dataset.id]
                            temp = [];
                        }
                    } else {
                        temp = [td, cellIndex, rowIndex];
                    }
                    win = tds.every(({
                        dataset: {
                            id
                        }
                    }, i) => id === idEnd[i]);
                    if (win) alert("Hello world!");
                }
            }
            form.addEventListener("click", exch);
            let color = idEnd.slice(0), len = color.length;
            color.forEach((_, i) => {
                let a = Math.trunc(Math.random() * len);
                [color[i], color[a]] = [color[a], color[i]];
            });
            tds.forEach(({dataset}, i) => dataset.id = color[i]);
        });
    </script>
</head>
<body>
    <form class="game">
        <table align="center" cellspacing="0" cellpadding="0">
            <tr>
                <td data-id="1"></td>
                <td data-id="2"></td>
                <td data-id="3"></td>
            </tr>
            <tr>
                <td data-id="4"></td>
                <td data-id="5"></td>
                <td data-id="6"></td>
            </tr>
            <tr>
                <td data-id="7"></td>
                <td data-id="8"></td>
                <td data-id="9"></td>
            </tr>
        </table>
    </form>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLE загрузка изображений через дополнительное поле armn555 Элементы интерфейса 0 18.08.2017 11:08
Ajax. Как сделать загрузку изображений, отображение, удаление как на Авито wowtschuk AJAX и COMET 1 07.03.2017 01:34
Повременная смена изображений jozev Элементы интерфейса 2 01.08.2011 18:43
Прокрутка изображений gen552 Элементы интерфейса 6 01.04.2011 13:11
Скролл мини изображений I-Trap Элементы интерфейса 1 25.11.2009 22:03