/
rnekrasov
/
Python
Обзор
Документация
Войти
/
rnekrasov
/
Python
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Guessing_Game.py
109 строк
3 KB
slowy07
refactor: clean code
30 янв 2022, 04:33
30 янв 2022, 04:33
f0af0c4
Код
Авторство
О чём код?
from random import randint from time import sleep def guessing_game(GUESS_RANGE, GUESS_LIMIT): # Set the initial values. RANDOM = randint(1, GUESS_RANGE) GUESS = int(input("What is your guess? ")) ATTEMPTS_ALLOWED = GUESS_LIMIT done = False # Validate the inputted guess. GUESS = InputValidation(GUESS, GUESS_RANGE) # Now we have a valid guess. while GUESS_LIMIT > 0 and not done: GUESS_LIMIT -= 1 # Take one guess = lose one chance if GUESS_LIMIT > 0: if GUESS < RANDOM: print(f"It should be higher than {GUESS}.") elif GUESS > RANDOM: print(f"It should be lower than {GUESS}.") else: ATTEMPTS_TOOK = ATTEMPTS_ALLOWED - GUESS_LIMIT print(f"You nailed it! And it only took you {ATTEMPTS_TOOK} attempts.") done = True if GUESS_LIMIT > 0 and not done: print(f"You still have {GUESS_LIMIT} chances left.\n") GUESS = int(input("Try a new guess: ")) # Another input validation loop. GUESS = InputValidation(GUESS, GUESS_RANGE) elif GUESS_LIMIT == 0 and not done: # Last chance to guess if GUESS == RANDOM: print( f"You nailed it! However, it took you all the {ATTEMPTS_ALLOWED} attempts." ) else: print( f"GAME OVER! It took you more than {ATTEMPTS_ALLOWED} attempts. " f"The correct number is {RANDOM}." ) def InputValidation(GUESS, GUESS_RANGE): while not 1 <= GUESS <= GUESS_RANGE: print("TRY AGAIN! Your guess is out of range!\n") GUESS = int(input("What is your guess? ")) return GUESS def easy(): print("You are to guess a number between 1 and 10 in no more than 6 attempts.") guessing_game(10, 6) def medium(): print("You are to guess a number between 1 and 20 in no more than 4 attempts.") guessing_game(20, 4) def hard(): print("You are to guess a number between 1 and 50 in no more than 3 attempts.") guessing_game(50, 3) def try_again(): print() again = input("Do you want to play again? (yes/no) ") if again.lower() in ["y", "yes"]: welcome() elif again.lower() in ["n", "no"]: print("Thanks for playing the game") else: print("INVALID VALUE") try_again() def welcome(): print("Hello, Welcome to the Guessing Game!") name = input("I'm Geek! What's Your Name? ") sleep(1) print(f"Okay, {name}. Let's Begin The Guessing Game!") print( "Choose a level:", "1. Easy", "2. Medium", "3. Hard", sep="\n", ) sleep(1) level = int(input("Pick a number: ")) print() sleep(1) if level == 1: easy() try_again() elif level == 2: medium() try_again() elif level == 3: hard() try_again() else: print("INVALID VALUE! Please try again.\n") welcome() welcome()