-
Notifications
You must be signed in to change notification settings - Fork 0
/
Hot or Cold.py
54 lines (48 loc) · 1.62 KB
/
Hot or Cold.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# Kalen Shamy - 6/29/2021
import random
def uinput(string):
return input(string + " ")
def _th(n):
if n == 1:
return "1st"
elif n == 2:
return "2nd"
elif n == 3:
return "3rd"
elif n < 10:
return f"{n}th"
else:
return "last"
secretNumber = random.randrange(1,50)
guesses = 1
lastLength = 0
closestNumber = 0
print(f"The object of the game is to guess my secret number. You have 10 guesses.\n")
while guesses <= 10:
guess = uinput(f"What is your {_th(abs(guesses))} guess?")
canContinue = False
while canContinue == False:
try:
guess = int(guess)
canContinue = True
except ValueError:
guess = uinput(f"Come on, don't try to waste guesses. What is your {_th(guesses)} guess?")
if abs(guess - secretNumber) == 0:
print(f"Spot on! You got my number, {secretNumber} on your {_th(abs(guesses))} guess!")
break
elif lastLength < abs(secretNumber - guess) and guesses != 1:
lastLength = abs(secretNumber - guess)
print("Colder!")
elif lastLength > abs(secretNumber - guess) and guesses != 1:
lastLength = abs(secretNumber - guess)
print("Hotter!")
elif guesses != 1:
print("Equally hot as last time, the number is in between the two!")
else:
print("Nope, guess again!")
closestNumber = guess
if lastLength < abs(secretNumber - closestNumber):
closestNumber = guess
guesses += 1
if guesses == 10:
print(f"Unfortunately you didn't guess my number. It was {secretNumber}. The closest you got was {closestNumber} :(")