Javascript.RU

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

Скрипт Жеребьевки
Добрый день, уважаемые программеры.
Я в этом деле начинающий поэтому прошу у вас помощи.
Итак хочу создать автоматическую жеребьевку команд.

В принципе как сгенерировать выпадение команд понятно, но как создать скажем два условия при генерации рандома:
1. что бы одна и таже команда не выпала дважды (т.е исключить ее выпадение дважды)
2. условие по географии, т.е. скажем что бы клуб из Англии не попал на клуб из Англии.

Буду благодарен любым идеям.

П.с. скажем команд будет 32, т.е. генерация от 1 до 32, каждому числу присвоено свое название клубы. Теперь как создать два условия выше сказанные...
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2014, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

SergMU,
массив команд можно?
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2014, 18:56
Новичок на форуме
Отправить личное сообщение для SergMU Посмотреть профиль Найти все сообщения от SergMU
 
Регистрация: 22.05.2014
Сообщений: 8

кусочек из 4-х клубов
<?php

$club[0]="Реал";
$club[1]="Барселона";
$club[2]="Бавария";
$club[3]="Манчестер";

?>
вот реал на барсу не должен попасть, из одной страны
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2014, 19:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

SergMU,
страна - количество команд -- плиз
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2014, 20:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Жеребьёвка команд
Вариант
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
    function d(b) {
            for (var a = b.length - 1; 0 < a; a--) {
                var c = Math.floor(Math.random() * (a + 1)),
                    d = b[c];b[c] = b[a];b[a] = d }
            return b}

    var country = 4, clubs = 8, arr = [], rundCountry = [];
    for (var i=0; i<country; i++)  {
    rundCountry[i] = [i];
    var c = arr[i] = [];
      for (var k=0; k<clubs; k++)  {
        c[k] = k
      }
    }
    var n = 0;
   for (var i=0; i < clubs; i++)  {
      rundCountry = d(rundCountry);
      for (var k=0; k<country; k++)  {
         var a = rundCountry[k];
         var c = Math.floor(Math.random() * (arr[a].length));
         c = arr[a].splice(c,1);
         !(k % 2) && document.write(++n +" игра (страна-клуб этой страны) <br>");
         document.write(a+"-"+c+"<br>");

      }
   }
</script>
</body>
</html>

Последний раз редактировалось рони, 22.05.2014 в 20:14.
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2014, 20:40
Новичок на форуме
Отправить личное сообщение для SergMU Посмотреть профиль Найти все сообщения от SergMU
 
Регистрация: 22.05.2014
Сообщений: 8

спасибо, завтра попробую запустить
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2014, 17:32
Новичок на форуме
Отправить личное сообщение для SergMU Посмотреть профиль Найти все сообщения от SergMU
 
Регистрация: 22.05.2014
Сообщений: 8

Сообщение от рони Посмотреть сообщение
Вариант
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
    function d(b) {
            for (var a = b.length - 1; 0 < a; a--) {
                var c = Math.floor(Math.random() * (a + 1)),
                    d = b[c];b[c] = b[a];b[a] = d }
            return b}

    var country = 4, clubs = 8, arr = [], rundCountry = [];
    for (var i=0; i<country; i++)  {
    rundCountry[i] = [i];
    var c = arr[i] = [];
      for (var k=0; k<clubs; k++)  {
        c[k] = k
      }
    }
    var n = 0;
   for (var i=0; i < clubs; i++)  {
      rundCountry = d(rundCountry);
      for (var k=0; k<country; k++)  {
         var a = rundCountry[k];
         var c = Math.floor(Math.random() * (arr[a].length));
         c = arr[a].splice(c,1);
         !(k % 2) && document.write(++n +" игра (страна-клуб этой страны) <br>");
         document.write(a+"-"+c+"<br>");

      }
   }
</script>
</body>
</html>
спасибо но это не то. Здесь представлено расписание клубов. Мне нужно иное:
Смотрите есть допустим 4 клуба, мне их нужно разместить в две группы по две команды. Т.е. нажимаю кнопку запустить - выпадает какая то команда и т.д.
Принцип:
Клубы - Реал (Испания), Бавария (Германия), Барселона (Испания), МЮ (Англия).
Теперь нужно запустить так чтобы Реал и Барселона не попали в одну группу, т.к. они обе из ИСПАНИИ, т.е. два клуба должны быть в разных группах.
Идет жеребьевка, нажимаю ЗАПУСТИТЬ - выпадает рендомно число, скажем 3, которое у меня из массива прочитает что под цифрой 3 присвоен РЕАЛ. Поместил в одну группу, далее опять жму ЗАПУСТИТЬ (и здесь нужно чтобы число которое уже выпало, в нашем случае 3 - больше не выпадало) - т.е. мне нужно что бы теперь выпало 1 или 2 или 4. Ну и т.д.
Ответить с цитированием
  #8 (permalink)  
Старый 24.05.2014, 14:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

SergMU,
смотрите пост 4 - нет данных нет кода
код ниже не решает задачу - просто генерит рандом для данного случая.
32 команды у вас превратились в 4 ...
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
<script>
    function d(b) {
            for (var a = b.length - 1; 0 < a; a--) {
                var c = Math.floor(Math.random() * (a + 1)),
                    d = b[c];b[c] = b[a];b[a] = d }
            return b}
    var country = 2, clubs = 2, arr = [['Реал (Испания)','Барселона (Испания)'],['Бавария (Германия)','МЮ (Англия)']], rundCountry = [0,1];
    var n = 0;
   for (var i=0; i < clubs; i++)  {
      rundCountry = d(rundCountry);
      for (var k=0; k<country; k++)  {
         var a = rundCountry[k];
         var c = Math.floor(Math.random() * (arr[a].length));
         c = arr[a].splice(c,1);
         !(k % 2) && document.write(++n +" игра<br>");
         document.write(c+"<br>");

      }
   }
</script>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 27.05.2014, 19:11
Новичок на форуме
Отправить личное сообщение для SergMU Посмотреть профиль Найти все сообщения от SergMU
 
Регистрация: 22.05.2014
Сообщений: 8

спасибо за идеи
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 компьютера 1 хром и 1 скрипт Megatron13 Opera, Safari и др. 1 21.07.2013 19:12
Как вывести дату, чтобы не повторять скрипт пару раз xXapokalypsesXx Общие вопросы Javascript 10 27.06.2013 13:43
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Изменить скрипт Изучаю_JS Общие вопросы Javascript 0 12.02.2012 22:05
А как зделать скрипт, чтобы например скрипт 1 заменялся скриптом 2? yura371 Общие вопросы Javascript 3 06.01.2009 22:40