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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 14:49   #1
Anonim69
Пользователь
 
Регистрация: 30.01.2010
Сообщений: 20
По умолчанию Реализация Random в "пятнашки"

Есть игра пятнашки на Javascript.Всё работает.
Не умею и не смогу сделать,чтобы при каждом нажатие кнопки "новая игра" или обновление страницы,пятнашки меняли свои места рандомно.

В этом скрипте при обновлении пятнашки меняются местами

Помогите пожалуйста,те кому реально это не сложно сделать.


ссылка на скрипт
Когда на внутренний сервер загружаю пишет:"Загрузка прошла неудачно"

Последний раз редактировалось Anonim69; 30.01.2011 в 14:58.
Anonim69 вне форума Ответить с цитированием
Старый 30.01.2011, 18:11   #2
yury_coder
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 53
По умолчанию

всю задачу за Вас решать не буду, только скажу, что, чтобы получить (псевдо-) случайное число используют запись Math.random();

эта функция вернёт случайное дробное число от 0 до 1 включительно, то есть, если нужно от 0 до 15, используйте
Код HTML:
var rand = Math.random()*15;

//А если от 1 до 16, то
rand = Math.random()*15 + 1;
Ещё нужно будет округлить полученное число до целого, для этого используйте Math.round();

то есть, запись будет выглядеть так:
Код HTML:
rand = Math.round(Math.random()*15 + 1);
вам ещё понадобится проверять, не задействована ли уже эта клетка, было бы удобно для этого использовать специальный массив, но это уже тонкости конкретно Вашей реализации

Последний раз редактировалось yury_coder; 30.01.2011 в 18:37.
yury_coder вне форума Ответить с цитированием
Старый 31.01.2011, 01:03   #3
Anonim69
Пользователь
 
Регистрация: 30.01.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от yury_coder Посмотреть сообщение
всю задачу за Вас решать не буду, только скажу, что, чтобы получить (псевдо-) случайное число используют запись Math.random();

эта функция вернёт случайное дробное число от 0 до 1 включительно, то есть, если нужно от 0 до 15, используйте
Код HTML:
var rand = Math.random()*15;

//А если от 1 до 16, то
rand = Math.random()*15 + 1;
Ещё нужно будет округлить полученное число до целого, для этого используйте Math.round();

то есть, запись будет выглядеть так:
Код HTML:
rand = Math.round(Math.random()*15 + 1);
вам ещё понадобится проверять, не задействована ли уже эта клетка, было бы удобно для этого использовать специальный массив, но это уже тонкости конкретно Вашей реализации
Спасибо,что хоть по интересовались.Но исходный код Пятнашек я тоже смотрел.Мне только не понятно как переделать этот код под изображение.
Anonim69 вне форума Ответить с цитированием
Старый 31.01.2011, 15:24   #4
yury_coder
Пользователь
 
Регистрация: 31.10.2010
Сообщений: 53
По умолчанию

Короче говоря, должно выглядеть как-то так:
Код HTML:
<table>
  <tr>
    <td><img src="" id="img1" /></td>
    <td><img src="" id="img2" /></td>
    <td><img src="" id="img3" /></td>
    <td><img src="" id="img4" /></td>
  </tr>
  <tr>
    <!-- Далее в том же духе -->
  </tr>
  <!-- и т.д. -->
</table>
Скрипт выдачи рандома:
Код HTML:
<script type="text/javascript>
//<!--
var images = new Array(); //массив объектов DOM
for(var i=0; i<16; i++)
  images[i] = document.getElementById('img' + (i + 1));

var files = new Array(); //массив имён файлов картинок
for(var i=0; i<16; i++)
  files[i] = 'image' + (i + 1) + '.gif');

//Здесь расставляем файлы по объектам DOM
//переменная num - количество элементов,
//будем использовать, чтобы не допустить повторы
for(var i=0, num = 15; i<16; i++, num--)
{
  var rand = Math.round(Math.random()*num); //получаем случайный номер картинки
  //В i-тый объект вставим rand-ный файл
  images[i].src = files[rand];
  //Теперь уберём из рассмотрения rand-ный элемент, записав его в конец массива
  var temp = files[rand];
  files[rand] = files[num];
  files[num] = temp;
}
//-->
</script>
вот и вся случайная расстановка.
yury_coder вне форума Ответить с цитированием
Старый 01.02.2011, 00:14   #5
Anonim69
Пользователь
 
Регистрация: 30.01.2010
Сообщений: 20
По умолчанию

спс.помогло

Последний раз редактировалось Anonim69; 01.02.2011 в 00:50.
Anonim69 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацените игру "Пятнашки" Никки Gamedev - cоздание игр: Unity, OpenGL, DirectX 36 03.11.2010 11:31
игра пятнашки и "собери картинку" tatiana74 Помощь студентам 5 22.02.2010 14:07
"Random" в матрице (Turbo Pascal) JIUMOH Помощь студентам 3 29.12.2009 11:35
игра "Пятнашки" на Visual C++ с использованием OpenGL Mr.Happy Фриланс 3 16.12.2009 16:19
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04