Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генератор случайного хода 
:(
    Опции темы
KaKTyCc
Дата 19.5.2006, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



Код

  randomize();
  
     int rO =  random(10000) % 3;

      switch(rO)
     {
      case 0:
        rgOthod->ItemIndex = 0;
        break;
      case 1:
        rgOthod->ItemIndex = 1;
        break;
      case 2:
        rgOthod->ItemIndex = 2;
        break;
     }


Если подрят быстро выполнять этот код, он rO повторяется, как этого избежать? 
--------------------
Мой блог
PM MAIL WWW   Вверх
tigger
Дата 20.5.2006, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 456
Регистрация: 30.4.2005

Репутация: 2
Всего: 4



Он и будет повторяться, или тебе нужно чтобы за 3 прохода было 3 разных значения? 
Или с какой-то вероятностью чтобы появлялись три значения? 


--------------------
user posted image
PM MAIL   Вверх
tramp
Дата 20.5.2006, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 14.4.2006
Где: Kemerovo

Репутация: нет
Всего: нет



randomize() убери из повтора кода.
В случае быстрого повтора комбинация randomize-rand в течение определенного времени возвращает одинаковое число. Заставка трубопровод работает на этом принципе. 
PM MAIL   Вверх
KaKTyCc
Дата 20.5.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



этот кусок кода, что я привел, работает по нажатию кнопки на форме
так вот если подряд быстро жать на кнопку, то в  switch(rO) одно и тоже значение 
--------------------
Мой блог
PM MAIL WWW   Вверх
Fin
Дата 20.5.2006, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



KaKTyCc,  заремь randomize(); и будет тебе счастье. Насколько я знаю, значение берется из системных часов. Чтобы сбить генератор псевдослучайных чисел. При быстрым нажатии ты теоретически поймаеш  одно и тоже значение часов.   

Это сообщение отредактировал(а) Fin - 20.5.2006, 11:06


--------------------
Пролетал мимо.
PM MAIL   Вверх
KaKTyCc
Дата 20.5.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



Fin
tramp

спасибо, все уже работает как надо  smile  
--------------------
Мой блог
PM MAIL WWW   Вверх
KaKTyCc
Дата 20.5.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



мде, за то теперь при запуске программы генерится тоже самое, бред какой то 
--------------------
Мой блог
PM MAIL WWW   Вверх
Partizan
Дата 20.5.2006, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 7
Всего: 67



вообще юзай srand()/rand() =) тогда точно будет тебе шастье) 


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
KaKTyCc
Дата 20.5.2006, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



Partizan,  ну вот приминительно к моей ситуации, как это сделать  smile  
--------------------
Мой блог
PM MAIL WWW   Вверх
Fin
Дата 20.5.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дракон->Спать();
**


Профиль
Группа: Участник
Сообщений: 687
Регистрация: 4.1.2006

Репутация: нет
Всего: 10



KaKTyCc, Функции типа randomize и srand выполняются всего один раз за время жизни программы. В самом начале выполнения кода.  


--------------------
Пролетал мимо.
PM MAIL   Вверх
KaKTyCc
Дата 20.5.2006, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



Fin, ну так что мне делать, если убрать randomize, то каждый раз по запуску программы одно и тоже генерится, а если оставить randomize
то если подряд быстро жать кнопку одно и тоже генерится  smile  
--------------------
Мой блог
PM MAIL WWW   Вверх
likehood
Дата 20.5.2006, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 1
Всего: 24



randomize надо вызывать один раз - например, в конструкторе главной формы 
PM MAIL   Вверх
KaKTyCc
Дата 20.5.2006, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 2.8.2005

Репутация: нет
Всего: 1



baronp,   smile  
--------------------
Мой блог
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.