Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 47 additions & 37 deletions Number-Guess/number-guess.py
Original file line number Diff line number Diff line change
@@ -1,47 +1,57 @@
from random import randrange

def main():
randomized_no = randomize_no()
print("Welcome to Number Guessing Game!")
level = 1
total_score = 0

while True:
user_guessed_input = guess()
if int(user_guessed_input) > randomized_no:
print("Too large!")
continue
elif int(user_guessed_input) < randomized_no:
print("Too small!")
continue
print(f"\n--- Level {level} ---")
max_number = get_level_max(level)
randomized_no = randrange(1, max_number + 1)
attempts_left = 5 # max attempts per level

while attempts_left > 0:
user_guess = get_guess(level)
if user_guess > randomized_no:
print("Too high! Try again.")
elif user_guess < randomized_no:
print("Too low! Try again.")
else:
print(f"Correct! You've cleared Level {level}.")
total_score += attempts_left * 10 # more points for fewer attempts
break
attempts_left -= 1
print(f"Attempts left: {attempts_left}")
else:
print("Just right!")
print(f"Game Over! The number was {randomized_no}.")
break

level += 1
print(f"Total Score: {total_score}")
cont = input("Do you want to continue to the next level? (y/n): ").lower()
if cont != 'y':
print(f"Thanks for playing! Final Score: {total_score}")
break

def is_positive_integer(n):
"""This function takes an input and check if the user input is an integer"""
try:
num = int(n)
return num > 0
except ValueError:
return False

def get_guess(level):
while True:
try:
num = int(n)
if int(num) < 1:
return False
except ValueError:
return False
guess_input = input(f"Level {level} Guess: ")
if is_positive_integer(guess_input):
return int(guess_input)
else:
return True
def get_user_input():
"""Prompt the user for an input and check if it's a positive integer"""
while True:
user_input = input("Level 1: ")
if (is_positive_integer(user_input)):
return int(user_input)
def guess():
"Prompt the user for an input guess, and check if it's an integer"
while True:
user_guess = input("Guess: ")
if is_positive_integer(user_guess):
return user_guess
def randomize_no():
"""Randomize number"""
user_inputted_number = get_user_input()
if int(user_inputted_number) > 1:
random_number = randrange(1, user_inputted_number)
return random_number
else:
return int(user_inputted_number)
print("Enter a valid positive integer!")

def get_level_max(level):
"""Increase range as levels go up"""
return 10 + (level - 1) * 5

if __name__ == "__main__":
main()
Loading