Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.12.2014, 22:56   #1
tdsotm
 
Регистрация: 30.10.2014
Сообщений: 9
Репутация: 10
По умолчанию Помогите разобраться с программой Js

Есть скрипт кода игры в пятнашки. change - меняет местами 2 изображения, а reset- перемешивает числа.

Код:
function change(number){         
            for (var i = 0; i < 16; i++) 
            {
                if (document.images[i].name == "16") 
                {
                    emptynumber = i;
                }
            }
            if ((number - emptynumber === 4) || (emptynumber - number === 4) || ((number - emptynumber === 1) && (Math.floor(number / 4) == Math.floor(emptynumber / 4))) ||
                ((emptynumber - number == 1) && (Math.floor(number / 4) == Math.floor(emptynumber / 4))))
            {
                document.images[emptynumber].src = document.images[number].name + ".gif";
                document.images[number].src = "16.gif";
                document.images[emptynumber].name = document.images[number].name; 
                document.images[number].name = "16";
            }
          
        }


        function reset()
        {
            var p1 = new Image();var p2 = new Image();var imgs = new Image();var name;
            for (var i = 1; i < 16 ; i++)
            {
                p1 = Math.floor(Math.random() * 16); 
                p2 = Math.floor(Math.random() * 16);
                imgs = document.images[p1].src; 
                document.images[p1].src = document.images[p2].src;
                document.images[p2].src = imgs;
                name = document.images[p1].name;
                document.images[p1].name = document.images[p2].name;
                document.images[p2].name = name;
            }
        }
Не могу разобраться с этим моментом, я так понял, что он проверяет, можно ли менять 2 числа. К чему тут math.floor?
Код:
if ((number - emptynumber === 4) || (emptynumber - number === 4) || ((number - emptynumber === 1) && (Math.floor(number / 4) == Math.floor(emptynumber / 4))) ||
                ((emptynumber - number == 1) && (Math.floor(number / 4) == Math.floor(emptynumber / 4))))
И по какому принципу работает reset? Я понял только что он берет 2 рандомные картинки
tdsotm вне форума   Ответить с цитированием
Старый 27.12.2014, 05:04   #2
Fenex
Участник клуба
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
Репутация: 439
По умолчанию

Функция reset 15 раз меняет местами два случайных объекта в массиве document.images. Кстати, вызов конструктора new Image() везде не нужен.

Math.floor отбрасывает всю дробную часть у числа (весь хвост, который находится после запятой).
__________________
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с программой С++ Builder spectrum988 C++ Builder 10 25.10.2013 01:15
Помогите разобраться с программой Bercut48rus Assembler 2 11.12.2009 03:40
Помогите разобраться с программой IrinaPetrova Фриланс 3 01.12.2009 14:03
Помогите разобраться с программой Svetlyachok Общие вопросы C/C++ 7 06.06.2009 17:55
Помогите разобраться с программой First90_19 Паскаль 0 23.12.2008 02:58


00:38.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.