Форум сайта python.su
Всем привет! Около недели изучаю python и поставил себе задачу закодить игру под названием Fizz-Buzz. Смысл игры такой:
Fizz-Buzz – это известная игра, помогающая детям освоить в игровой форме правила деления. Участники садятся в круг, чтобы игра теоретически могла продолжаться бесконечно. Первый игрок говорит «Один»
и передает ход тому, кто слева. Каждый следующий игрок должен мысленно прибавить к предыдущему числу единицу и произнести либо его,либо одно из ключевых слов: Fizz, если число без остатка делится на три,
или Buzz, если на пять. Если соблюдаются оба этих условия, он произносит Fizz-Buzz. Игрок, не сумевший сказать правильное слово, выбывает из игры. Последний оставшийся игрок признается победителем.
Я изучил на базисном уровне только if / while / for и прочее до этого момента. Задача была после блока while/for.
Хотел бы понять, можно ли на этом уровне сделать так, чтобы присваивать имя вводимого человека на каждый ход, например, тот, кто первый ввел, тот и ходит, либо как-то определять дополнительно порядок ходов с помощью random, при этом чтобы цикл понимал, что первая итерация будет исходя из набора.
Плюс если есть комментарии к самому коду, то как его улучшить, либо какие-то логические ошибки - прошу дайте обратную связь. Заранее спасибо!
if __name__ == '__main__': # Task 72 Game Fizz-Buz num = 1 count = -1 partisipants = 0 y = "" word = "" print("Игра началась") while partisipants != "": # Есть вопросы с зацикливанием инпута, не совсем очевидно для меня partisipants = (input('Введите имена игроков (Введите "Enter" для окончания): ')) count += 1 print(f"Итого количество игроков: {count}") while count != 1: while num != 100 and count != 1: print(f"Игрок сказал цифру {word}") num += 1 if num % 3 == 0 and num % 5 >= 1: word = "Fizz" elif num % 5 == 0 and num % 3 >= 1: word = "Buzz" elif num % 5 == 0 and num % 3 == 0: word = "Fizz-Buzz" elif num % 5 >= 1 or num % 3 >= 1: word = str(num) y = str(input("Введите число или букву ")) if word != y: count -= 1 print(f"Ответ неверный \nПравильный ответ: {word} \nИгрок выбывает") print(f'Игроков осталось {count}') else: print("Игрок ответил правильно! ") else: print("Поздравляю, вы победитель!")
Отредактировано FishHook (Июнь 21, 2022 12:38:23)
Офлайн
upsetbeard
для этой задачи вам понадобится знать списки
Офлайн