Рандомный ответ из списка в Telegram-боте на Python
Хочу сделать так, чтобы при каждой отправке команды бот выдавал случайное значение из списка. Он, конечно, делает это, но вариант меняется лишь при каждом перезапуске команды. Можно ли как-то пофиксить это?
Основная часть кода выглядит так:
games_for_one_player = ['Skyrim', 'The Witcher: 3', 'Portal 2', 'Borderlands 2', 'Half-Life 2', 'Destiny 2', 'Limbo', 'Atomic Heart', 'Life is Strange']
random_game_for_one = random.choice(games_for_one_player)
games_for_two_and_more_players = ['Dota 2', 'CS: GO', 'Rust', 'Raft', 'It Takes Two', 'GTA 5', 'Dont Starve Together', 'Overwatch', 'Hearthstone', 'Smite', 'Call of Duty']
random_game_for_friends = random.choice(games_for_two_and_more_players)
@bot.message_handler(commands=['start'])
def first(message):
bot.send_message(message.chat.id, 'Как ты хочешь провести время в игре? Один (/solo) или с друзьями (/with_friends)?')
@bot.message_handler(commands=['solo'])
def one(message):
text1 = f'Можете поиграть в {random_game_for_one}!\n'
bot.send_message(message.chat.id, text1)
@bot.message_handler(commands=['with_friends'])
def friends(message):
text2 = f'Можете поиграть в {random_game_for_friends}!\n'
bot.send_message(message.chat.id, text2)
bot.infinity_polling()
Я понимаю, что рандом в питоне не совсем рандомный, но хотелось бы знать, как можно пофиксить это, чтобы в дальнейшем владеть данной информацией :)
Ответы (1 шт):
Автор решения: FroggerProgger
→ Ссылка
Вы можете выбирать случайную игру каждый раз при получении команды.
games_for_one_player = ['Skyrim', 'The Witcher: 3', 'Portal 2', 'Borderlands 2', 'Half-Life 2', 'Destiny 2', 'Limbo', 'Atomic Heart', 'Life is Strange']
games_for_two_and_more_players = ['Dota 2', 'CS: GO', 'Rust', 'Raft', 'It Takes Two', 'GTA 5', 'Dont Starve Together', 'Overwatch', 'Hearthstone', 'Smite', 'Call of Duty']
@bot.message_handler(commands=['start'])
def first(message):
bot.send_message(message.chat.id, 'Как ты хочешь провести время в игре? Один (/solo) или с друзьями (/with_friends)?')
@bot.message_handler(commands=['solo'])
def one(message):
random_game_for_one = random.choice(games_for_one_player)
text1 = f'Можете поиграть в {random_game_for_one}!\n'
bot.send_message(message.chat.id, text1)
@bot.message_handler(commands=['with_friends'])
def friends(message):
random_game_for_friends = random.choice(games_for_two_and_more_players)
text2 = f'Можете поиграть в {random_game_for_friends}!\n'
bot.send_message(message.chat.id, text2)
bot.infinity_polling()