Вход  •  Регистрация

Скрипты для IRC-игр

IRC-игры — игры, как сделанные по мотивам телешоу, так и собственные, как правило с денежными призами.

Сообщение » 23.09.2016, 10:03

Еще одна задача

Нужно вывести строку, в которой есть четыре значения, например: djssiei_a:1_b:3|4_c:8_djeieij
эти значения должны браться случайно, но не должны повторяться. $rand повторяет в один прекрасный момент одно или несколько значений. Как бы избавиться от этих повторений, подскажите пожалуйста?
Заранее спасибо
Аватара пользователя
Mio-chan
Здесь могут быть ваши "знания"
 
Репутация: +40/-51
Сообщения: 1093

Сообщение » 23.09.2016, 10:11

Dmitros, что за значения, как формируются, каким образом тебе рандом их повторяет?

Если речь о том, как получить неповторяющиеся значения, скажем, от 1 до 9, то всё просто: создаёшь токен с этими значениями (1 2 3...9), потом циклом их перетасовываешь попарно и профит.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7837

Сообщение » 03.10.2016, 14:55

StereoMaster пишет:Dmitros, что за значения, как формируются, каким образом тебе рандом их повторяет?

Если речь о том, как получить неповторяющиеся значения, скажем, от 1 до 9, то всё просто: создаёшь токен с этими значениями (1 2 3...9), потом циклом их перетасовываешь попарно и профит.

Решил эту проблему.

Теперь другая задача
Есть такая замечательная фишка в отборочных турах, где игрока определяет не только правильный ответ, но и скорость (как в «Кто хочет стать миллионером?», например).
Вывести сам список участников/правильные ответы я могу.
Да и время, собственно, если я впишу собственноручно в переменную, тоже нормально определяет и работает.
Задача состоит в том, чтобы автоматически определить само это значение времени с начала запуска таймера (например: StM 1234 2.28(<- вот третье значение (секунды и сотые секунд) и нужно определить автоматически)). Как это можно сделать?
P.S. Поиск в гугле ничего не выдаёт, проверял
Аватара пользователя
Mio-chan
Здесь могут быть ваши "знания"
 
Репутация: +40/-51
Сообщения: 1093

Сообщение » 03.10.2016, 15:28

Dmitros, замечательная вещь как миллисекундный таймер тебе в помощь.
Код: Выделить всё
timer -m ...
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7837

Сообщение » 03.10.2016, 15:44

А еще лучше использовать не таймер, а записать в переменную %startTime значение идентификатора $ticks в момент запуска отбора, а в момент прихода ответа записывать как результат $calc($ticks - %startTime)
Cheriksoft
Житель GameShows.ru
 
Репутация: +298/-9
Сообщения: 2346

Сообщение » 03.10.2016, 16:27

StereoMaster пишет:Dmitros, замечательная вещь как миллисекундный таймер тебе в помощь.

Замечательную вещь, как миллисекундный таймер, я пробовал. Ерунда - нагружает комп.
Cheriksoft пишет:А еще лучше использовать не таймер, а записать в переменную %startTime значение идентификатора $ticks в момент запуска отбора, а в момент прихода ответа записывать как результат $calc($ticks - %startTime)

Спасибо, помогло =)
Аватара пользователя
Mio-chan
Здесь могут быть ваши "знания"
 
Репутация: +40/-51
Сообщения: 1093

Сообщение » 07.11.2016, 23:53

У меня такой вопрос. Как в скрипте сделать так, чтобы в отборе принимался только первый ответ?
Аватара пользователя
Danilo
 
Репутация: +15/-39
Сообщения: 197

Сообщение » 08.11.2016, 04:36

Assa, два путю: либо проверяется, был ли участником дан ответ, либо ник участника добавляется в список ответивших.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7837

Сообщение » 08.11.2016, 15:08

StereoMaster пишет:Assa, два путю: либо проверяется, был ли участником дан ответ, либо ник участника добавляется в список ответивших.

Просто в отборе случилось такое, что 1 и тот же человек отправил 1 и то же число несколько раз и в переменных был прописан 1 человек раза 2-3
Аватара пользователя
Danilo
 
Репутация: +15/-39
Сообщения: 197

Сообщение » 08.11.2016, 16:30

Assa пишет:
StereoMaster пишет:Assa, два путю: либо проверяется, был ли участником дан ответ, либо ник участника добавляется в список ответивших.

Просто в отборе случилось такое, что 1 и тот же человек отправил 1 и то же число несколько раз и в переменных был прописан 1 человек раза 2-3

В таком случае нужно проверить условием в обработчике, который отвечает за отбор, есть ли нужный токен в переменной, или нет. Если нет - никнейм добавится в переменную, и при повторной отправке от одного и того же человека ответ не отправится
Последний раз редактировалось Mio-chan 08.11.2016, 16:35, всего редактировалось 2 раз(а).
Аватара пользователя
Mio-chan
Здесь могут быть ваши "знания"
 
Репутация: +40/-51
Сообщения: 1093

Сообщение » 08.11.2016, 16:36

Assa пишет:
StereoMaster пишет:Assa, два путю: либо проверяется, был ли участником дан ответ, либо ник участника добавляется в список ответивших.

Просто в отборе случилось такое, что 1 и тот же человек отправил 1 и то же число несколько раз и в переменных был прописан 1 человек раза 2-3

Абисняю. Проблема немного другого плана была - это не получение нескольких ответов от одного человека, а совпадение полученного ответа у двоих игроков, вот тут было примерно то же самое.

Код: Выделить всё
(20:14:44) <@[1996_DjF]> |=|         Интерактив        |=|
(20:14:44) <@[1996_DjF]> $ Zhuravlikinec         600 $
(20:14:44) <@[1996_DjF]> $ StM                   450 $
(20:14:44) <@[1996_DjF]> $ citizen_of_rus        400 $
(20:14:44) <@[1996_DjF]> $ citizen_of_rus        400 $
(20:14:44) <@[1996_DjF]> $ Andrey_Yeriomin       350 $
(20:14:44) <@[1996_DjF]> $ Andrey_Yeriomin       350 $
(20:14:44) <@[1996_DjF]> $ Andrey_Yeriomin       350 $
(20:14:44) <@[1996_DjF]> $ nemezidych            300 $
(20:14:44) <@[1996_DjF]> $ RomNickol             250 $
(20:14:44) <@[1996_DjF]> $ map788                200 $
Последний раз редактировалось ilyar 08.11.2016, 16:46, всего редактировалось 1 раз.
ilyar
Тыжстудент (и не только)
 
Репутация: +99/-3
Сообщения: 1167

Сообщение » 09.11.2016, 15:36

Dmitros пишет:В таком случае нужно проверить условием в обработчике, который отвечает за отбор, есть ли нужный токен в переменной, или нет. Если нет - никнейм добавится в переменную, и при повторной отправке от одного и того же человека ответ не отправится

Хорошо. Проверю.
Аватара пользователя
Danilo
 
Репутация: +15/-39
Сообщения: 197

Сообщение » 09.11.2016, 15:37

Игровед пишет:Абисняю. Проблема немного другого плана была - это не получение нескольких ответов от одного человека, а совпадение полученного ответа у двоих игроков, вот тут было примерно то же самое.

Вполне возможно, что может быть и так.
Аватара пользователя
Danilo
 
Репутация: +15/-39
Сообщения: 197

Сообщение » 09.11.2016, 15:38

Игровед пишет:Проблема немного другого плана была - это не получение нескольких ответов от одного человека, а совпадение полученного ответа у двоих игроков, вот тут было примерно то же самое.

Косяк скрипта сортировки (видимо, взят сниппет от Сергея.) Вроде бы позднее я выкладывал нормальный вариант этого дела.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7837

Сообщение » 14.11.2016, 15:35

Есть переменная, в которой записаны токены, например:
Код: Выделить всё
%prefix_summ 120 185.50 135.25 120.12 11.58

Задача - сложить эти токены, чтобы получить итого:
Код: Выделить всё
572,45

Вот как это вывести?
Заранее спасибо за ответ
Аватара пользователя
Mio-chan
Здесь могут быть ваши "знания"
 
Репутация: +40/-51
Сообщения: 1093

Пред.След.

Вернуться в IRC-игры и конкурсы