Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2014, 21:56   #1
tdsotm
 
Регистрация: 30.10.2014
Сообщений: 9
По умолчанию Помогите разобраться с программой 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, 04:04   #2
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с программой С++ Builder spectrum988 C++ Builder 10 25.10.2013 01:15
Помогите разобраться с программой Bercut48rus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 11.12.2009 02:40
Помогите разобраться с программой IrinaPetrova Фриланс 3 01.12.2009 13:03
Помогите разобраться с программой Svetlyachok Общие вопросы C/C++ 7 06.06.2009 17:55
Помогите разобраться с программой First90_19 Паскаль, Turbo Pascal, PascalABC.NET 0 23.12.2008 01:58