#python #python-3.x #list
Вопрос:
У меня есть такой код, что, когда вы угадываете правильный ответ, он возвращается к тому же исходному случайному выбору. Мне нужно иметь возможность выбрать, у кого из них, по моему мнению, больше подписчиков, и если это правильно, вернитесь с двумя совершенно разными случайными вариантами, не такими, как первый.
import game_data
import random
import art
names = random.choice(game_data.data)
names2 = random.choice(game_data.data)
correct_score = int()
def game(name,names2,correct_score):
#print(art.logo)
follower_count = names['follower_count']
print(f"Compare A: {names['name']}, a {names['description']}, from {names['country']}.")
#print(art.vs)
follower_count2 = names2['follower_count']
print(f"Against B: {names2['name']}, a {names2['description']}, from {names2['country']}.")
answer = input("Who has more followers 'A' or 'B': ").lower()
if answer == 'a' and follower_count > follower_count2:
print("Correct")
correct_score = 1
print(correct_score)
game(name=names,names2=names2,correct_score=correct_score)
elif answer == 'b' and follower_count2 > follower_count:
print("Correct")
correct_score = 1
print(correct_score)
game(name=names,names2=names2,correct_score=correct_score)
game(name=names,names2=names2,correct_score=correct_score)
Вот пример кода других моих файлов.
data = [
{
'name': 'Instagram',
'follower_count': 346,
'description': 'Social media platform',
'country': 'United States'
},
{
'name': 'Cristiano Ronaldo',
'follower_count': 215,
'description': 'Footballer',
'country': 'Portugal'
},
{
'name': 'Ariana Grande',
'follower_count': 183,
'description': 'Musician and actress',
'country': 'United States'
},
{
'name': 'Dwayne Johnson',
'follower_count': 181,
'description': 'Actor and professional wrestler',
'country': 'United States'
},
]
Комментарии:
1. Что должно произойти, если предположение неверно? И когда должна закончиться игра?
Ответ №1:
Подобная рекурсия требует двух вещей:
Во-первых, ваш алгоритм должен иметь условие завершения. То есть, должна быть возможность для завершения вашей функции без вызова самой себя.
Во-вторых, ваш алгоритм должен передать другое состояние (аргументы) для повторного вызова, чтобы он мог принять решение о дальнейшем завершении рекурсии. Если состояние (аргументы) остаются(остаются) неизменными, как вы можете решить, когда это будет сделано?
Вот и все! Это именно те две вещи, которые вам нужно учитывать.
Комментарии:
1. Спасибо, что я решил эту проблему с помощью вашего ответа.
2. Я очень рад это слышать!