Files
basic-computer-games/64_Nicomachus/python/nicomachus.py
Martin Thoma c500424956 Simplify Python Code
print_with_tab / print_with_whitespace is trivial with Python
string formatting and was mostly used in only 2 lines.
2022-04-02 07:32:09 +02:00

68 lines
1.4 KiB
Python

"""
NICOMACHUS
Math exercise/demonstration
Ported by Dave LeCompte
"""
# PORTING NOTE
#
# The title, as printed ingame, is "NICOMA", hinting at a time when
# filesystems weren't even 8.3, but could only support 6 character
# filenames.
import time
def get_yes_or_no():
while True:
response = input().upper()
if response == "YES":
return True
elif response == "NO":
return False
print(f"EH? I DON'T UNDERSTAND '{response}' TRY 'YES' OR 'NO'.")
def play_game():
print("PLEASE THINK OF A NUMBER BETWEEN 1 AND 100.")
print("YOUR NUMBER DIVIDED BY 3 HAS A REMAINDER OF")
a = int(input())
print("YOUR NUMBER DIVIDED BY 5 HAS A REMAINDER OF")
b = int(input())
print("YOUR NUMBER DIVIDED BY 7 HAS A REMAINDER OF")
c = int(input())
print()
print("LET ME THINK A MOMENT...")
print()
time.sleep(2.5)
d = (70 * a + 21 * b + 15 * c) % 105
print(f"YOUR NUMBER WAS {d}, RIGHT?")
response = get_yes_or_no()
if response:
print("HOW ABOUT THAT!!")
else:
print("I FEEL YOUR ARITHMETIC IS IN ERROR.")
print()
print("LET'S TRY ANOTHER")
def main() -> None:
print(" " * 33 + "NICOMA")
print(" " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n\n\n")
print("BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!")
print()
while True:
play_game()
if __name__ == "__main__":
main()