Advertisement
fkudinov

Гра Вгадай Слово / Версія для самостійного доопрацювання

Jan 20th, 2024 (edited)
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.16 KB | Source Code | 0 0
  1. def play(word, prompt):
  2.  
  3.     guesses = set()
  4.  
  5.     # todo кількість спроб = 10
  6.  
  7.     # показуємо підказку
  8.     print(prompt)
  9.  
  10.     while True:
  11.         #     показуємо які букви вже вгадані
  12.         current = [letter if letter in guesses else "*" for letter in word]
  13.         print(" ".join(current))
  14.  
  15.         #     показуємо усі спроби користувача, якщо є хоча б 1.
  16.         if len(guesses) > 0:
  17.             print(f"Спроби: {', '.join(guesses)}")
  18.  
  19.         # todo винести перевірку в окрему функцію
  20.         #  guess_is_valid = validate_guess(guess)
  21.         #  guess_is_valid = guess_is_valid and guess not in guesses
  22.  
  23.         #     запитуємо нову букву у користувача
  24.         guess = input("Обери букву: ")
  25.         guess_is_valid = len(guess) == 1 and guess in "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя'"
  26.         guess_is_valid = guess_is_valid and guess not in guesses
  27.  
  28.         if not guess_is_valid:
  29.             print("Спробуй ще раз")
  30.             continue
  31.  
  32.         #     додаємо спробу до усіх спроб
  33.         guesses.add(guess)
  34.  
  35.         #     чи всі букви слова вже відгадані:
  36.         #         якщо да, виходимо з циклу
  37.         if guesses >= set(word):
  38.             break
  39.  
  40.         #     інформуємо користувача чи він вгадав букву
  41.         msg = "Вгадав, так тримати" if guess in word else "Нема такої букви, спробуй ще"
  42.         print(msg)
  43.  
  44.     # якщо вийшли з циклу, це означає, що перемогли
  45.     print(f"Вітаємо з перемогою, загадане слово {word}")
  46.  
  47.  
  48. play("веселка", "В небо дощиком занесло різнобарвне перевесло.")
  49. play("м'яч", "Як не бий, він не заплаче, тільки сам завзято скаче.")
  50. play("сніг", "Взимку горою, влітку водою.")
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement