Вероятность использования метода отправки сообщений с ботом ruby Telegram - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть встроенный бот Telegram, написанный на ruby. Я хочу иметь больше контроля над тем, что он отвечает, и иногда заткнуть его , даже если он должен ответить.

Это то, что я имею сейчас:

when /WHATEVER/
  whatever = ['option 1', 'option 2']
  bot.api.send_message(chat_id: message.chat.id, text: "#{whatever.sample}")

Я хочу, чтобы он отвечал 50% времени с Вариантом 1, 30% с Вариантом 2 и 20% без ответа.

Возможно ли это?

Извините Если я не правильно объяснил, я не программист, и английский sh не мой родной язык.

Спасибо

1 Ответ

0 голосов
/ 02 апреля 2020

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

r = rand # 0.0 <= r < 1
if r <= 0.5 
  bot.api.send_message(chat_id: message.chat.id, text: "option 1")
else if r <= 0.8 
  bot.api.send_message(chat_id: message.chat.id, text: "option 2")
else
  # do nothing, you can actually ommit the `else` clause
end

Менее элегантный способ:

options = ["1", "1", "1", "1", "1", "2", "2", "2", nil, nil]
option = options.sample
bot.api.send_message(chat_id: message.chat.id, text: option) if option
...