mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-22 15:16:33 -08:00
STY: Fix Flake8 issues
This commit is contained in:
@@ -362,12 +362,12 @@ def human_has_move(board):
|
|||||||
|
|
||||||
|
|
||||||
def get_board_spaces():
|
def get_board_spaces():
|
||||||
""" generates the space names (1-9)"""
|
"""generates the space names (1-9)"""
|
||||||
yield from range(1, 10)
|
yield from range(1, 10)
|
||||||
|
|
||||||
|
|
||||||
def get_board_spaces_with(board, val):
|
def get_board_spaces_with(board, val):
|
||||||
""" generates spaces containing pieces of type val"""
|
"""generates spaces containing pieces of type val"""
|
||||||
for i in get_board_spaces():
|
for i in get_board_spaces():
|
||||||
if board_contents(board, i) == val:
|
if board_contents(board, i) == val:
|
||||||
yield i
|
yield i
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ filenames.
|
|||||||
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
def print_with_tab(spaces_count, msg):
|
def print_with_tab(spaces_count, msg):
|
||||||
if spaces_count > 0:
|
if spaces_count > 0:
|
||||||
spaces = " " * spaces_count
|
spaces = " " * spaces_count
|
||||||
@@ -23,6 +24,7 @@ def print_with_tab(spaces_count, msg):
|
|||||||
spaces = ""
|
spaces = ""
|
||||||
print(spaces + msg)
|
print(spaces + msg)
|
||||||
|
|
||||||
|
|
||||||
def get_yes_or_no():
|
def get_yes_or_no():
|
||||||
while True:
|
while True:
|
||||||
response = input().upper()
|
response = input().upper()
|
||||||
@@ -59,7 +61,7 @@ def play_game():
|
|||||||
print("I FEEL YOUR ARITHMETIC IS IN ERROR.")
|
print("I FEEL YOUR ARITHMETIC IS IN ERROR.")
|
||||||
print()
|
print()
|
||||||
print("LET'S TRY ANOTHER")
|
print("LET'S TRY ANOTHER")
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print_with_tab(33, "NICOMA")
|
print_with_tab(33, "NICOMA")
|
||||||
@@ -67,12 +69,12 @@ def main():
|
|||||||
print()
|
print()
|
||||||
print()
|
print()
|
||||||
print()
|
print()
|
||||||
|
|
||||||
print("BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!")
|
print("BOOMERANG PUZZLE FROM ARITHMETICA OF NICOMACHUS -- A.D. 90!")
|
||||||
print()
|
print()
|
||||||
while True:
|
while True:
|
||||||
play_game()
|
play_game()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -27,22 +27,27 @@ k = 0
|
|||||||
phrase = 1
|
phrase = 1
|
||||||
line = ""
|
line = ""
|
||||||
|
|
||||||
|
|
||||||
def print_centered(msg):
|
def print_centered(msg):
|
||||||
spaces = " " * ((PAGE_WIDTH - len(msg)) // 2)
|
spaces = " " * ((PAGE_WIDTH - len(msg)) // 2)
|
||||||
print (spaces + msg)
|
print(spaces + msg)
|
||||||
|
|
||||||
|
|
||||||
def process_phrase_1():
|
def process_phrase_1():
|
||||||
global line
|
global line
|
||||||
|
|
||||||
line_1_options = ["MIDNIGHT DREARY",
|
line_1_options = [
|
||||||
"FIERY EYES",
|
"MIDNIGHT DREARY",
|
||||||
"BIRD OR FIEND",
|
"FIERY EYES",
|
||||||
"THING OF EVIL",
|
"BIRD OR FIEND",
|
||||||
"PROPHET"]
|
"THING OF EVIL",
|
||||||
|
"PROPHET",
|
||||||
|
]
|
||||||
|
|
||||||
line = line + line_1_options[i]
|
line = line + line_1_options[i]
|
||||||
return line
|
return line
|
||||||
|
|
||||||
|
|
||||||
def process_phrase_2():
|
def process_phrase_2():
|
||||||
global line
|
global line
|
||||||
global u
|
global u
|
||||||
@@ -52,12 +57,14 @@ def process_phrase_2():
|
|||||||
("THRILLED ME", None),
|
("THRILLED ME", None),
|
||||||
("STILL SITTING....", None),
|
("STILL SITTING....", None),
|
||||||
("NEVER FLITTING", 2),
|
("NEVER FLITTING", 2),
|
||||||
("BURNED", None)]
|
("BURNED", None),
|
||||||
|
]
|
||||||
words, u_modifier = line_2_options[i]
|
words, u_modifier = line_2_options[i]
|
||||||
line += words
|
line += words
|
||||||
if not (u_modifier is None):
|
if not (u_modifier is None):
|
||||||
u = u_modifier
|
u = u_modifier
|
||||||
|
|
||||||
|
|
||||||
def process_phrase_3():
|
def process_phrase_3():
|
||||||
global line
|
global line
|
||||||
|
|
||||||
@@ -73,6 +80,7 @@ def process_phrase_3():
|
|||||||
if (not only_if_u) or (u > 0):
|
if (not only_if_u) or (u > 0):
|
||||||
line = line + words
|
line = line + words
|
||||||
|
|
||||||
|
|
||||||
def process_phrase_4():
|
def process_phrase_4():
|
||||||
global line
|
global line
|
||||||
|
|
||||||
@@ -81,10 +89,12 @@ def process_phrase_4():
|
|||||||
("YET AGAIN"),
|
("YET AGAIN"),
|
||||||
("SLOWLY CREEPING"),
|
("SLOWLY CREEPING"),
|
||||||
("...EVERMORE"),
|
("...EVERMORE"),
|
||||||
("NEVERMORE")]
|
("NEVERMORE"),
|
||||||
|
]
|
||||||
|
|
||||||
line += phrases[i]
|
line += phrases[i]
|
||||||
|
|
||||||
|
|
||||||
def maybe_comma():
|
def maybe_comma():
|
||||||
# line 210
|
# line 210
|
||||||
global u
|
global u
|
||||||
@@ -112,7 +122,7 @@ def pick_phrase():
|
|||||||
global phrase
|
global phrase
|
||||||
global line
|
global line
|
||||||
global i, j, k
|
global i, j, k
|
||||||
|
|
||||||
i = random.randint(0, 4)
|
i = random.randint(0, 4)
|
||||||
j += 1
|
j += 1
|
||||||
k += 1
|
k += 1
|
||||||
@@ -121,7 +131,7 @@ def pick_phrase():
|
|||||||
# random indentation is fun!
|
# random indentation is fun!
|
||||||
line += " " * 5
|
line += " " * 5
|
||||||
phrase = j + 1
|
phrase = j + 1
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
print_centered("POETRY")
|
print_centered("POETRY")
|
||||||
@@ -136,9 +146,9 @@ def main():
|
|||||||
1: process_phrase_1,
|
1: process_phrase_1,
|
||||||
2: process_phrase_2,
|
2: process_phrase_2,
|
||||||
3: process_phrase_3,
|
3: process_phrase_3,
|
||||||
4: process_phrase_4
|
4: process_phrase_4,
|
||||||
}
|
}
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if phrase >= 1 and phrase <= 4:
|
if phrase >= 1 and phrase <= 4:
|
||||||
phrase_processors[phrase]()
|
phrase_processors[phrase]()
|
||||||
@@ -155,6 +165,7 @@ def main():
|
|||||||
phrase = 2
|
phrase = 2
|
||||||
continue
|
continue
|
||||||
pick_phrase()
|
pick_phrase()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -4,162 +4,195 @@ print("Slalom".rjust(39))
|
|||||||
print("Creative Computing Morristown, New Jersey\n\n\n".rjust(57))
|
print("Creative Computing Morristown, New Jersey\n\n\n".rjust(57))
|
||||||
|
|
||||||
medals = {
|
medals = {
|
||||||
"gold": 0,
|
"gold": 0,
|
||||||
"silver": 0,
|
"silver": 0,
|
||||||
"bronze": 0,
|
"bronze": 0,
|
||||||
}
|
}
|
||||||
max_speeds = [14,18,26,29,18,25,28,32,29,20,29,29,25,21,26,29,20,21,20,18,26,25,33,31,22]
|
max_speeds = [
|
||||||
|
14,
|
||||||
|
18,
|
||||||
|
26,
|
||||||
|
29,
|
||||||
|
18,
|
||||||
|
25,
|
||||||
|
28,
|
||||||
|
32,
|
||||||
|
29,
|
||||||
|
20,
|
||||||
|
29,
|
||||||
|
29,
|
||||||
|
25,
|
||||||
|
21,
|
||||||
|
26,
|
||||||
|
29,
|
||||||
|
20,
|
||||||
|
21,
|
||||||
|
20,
|
||||||
|
18,
|
||||||
|
26,
|
||||||
|
25,
|
||||||
|
33,
|
||||||
|
31,
|
||||||
|
22,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def ask(question):
|
def ask(question):
|
||||||
print(question, end="? ")
|
print(question, end="? ")
|
||||||
return input().upper()
|
return input().upper()
|
||||||
|
|
||||||
|
|
||||||
def ask_int(question):
|
def ask_int(question):
|
||||||
reply = ask(question)
|
reply = ask(question)
|
||||||
return int(reply) if reply.isnumeric() else -1
|
return int(reply) if reply.isnumeric() else -1
|
||||||
|
|
||||||
|
|
||||||
def pre_run():
|
def pre_run():
|
||||||
print("\nType \"INS\" for instructions")
|
print('\nType "INS" for instructions')
|
||||||
print("Type \"MAX\" for approximate maximum speeds")
|
print('Type "MAX" for approximate maximum speeds')
|
||||||
print("Type \"RUN\" for the beginning of the race")
|
print('Type "RUN" for the beginning of the race')
|
||||||
cmd = ask("Command--")
|
cmd = ask("Command--")
|
||||||
while cmd != "RUN":
|
while cmd != "RUN":
|
||||||
if cmd == "INS":
|
if cmd == "INS":
|
||||||
print("\n*** Slalom: This is the 1976 Winter Olypic Giant Slalom. You are")
|
print("\n*** Slalom: This is the 1976 Winter Olypic Giant Slalom. You are")
|
||||||
print(" the American team's only hope for a gold medal.\n")
|
print(" the American team's only hope for a gold medal.\n")
|
||||||
print(" 0 -- Type this if you want to see how long you've taken.")
|
print(" 0 -- Type this if you want to see how long you've taken.")
|
||||||
print(" 1 -- Type this if you want to speed up a lot.")
|
print(" 1 -- Type this if you want to speed up a lot.")
|
||||||
print(" 2 -- Type this if you want to speed up a little.")
|
print(" 2 -- Type this if you want to speed up a little.")
|
||||||
print(" 3 -- Type this if you want to speed up a teensy.")
|
print(" 3 -- Type this if you want to speed up a teensy.")
|
||||||
print(" 4 -- Type this if you want to keep going the same speed.")
|
print(" 4 -- Type this if you want to keep going the same speed.")
|
||||||
print(" 5 -- Type this if you want to check a teensy.")
|
print(" 5 -- Type this if you want to check a teensy.")
|
||||||
print(" 6 -- Type this if you want to check a little.")
|
print(" 6 -- Type this if you want to check a little.")
|
||||||
print(" 7 -- Type this if you want to check a lot.")
|
print(" 7 -- Type this if you want to check a lot.")
|
||||||
print(" 8 -- Type this if you want to cheat and try to skip a gate.\n")
|
print(" 8 -- Type this if you want to cheat and try to skip a gate.\n")
|
||||||
print(" The place to use these options is when the Computer asks:\n")
|
print(" The place to use these options is when the Computer asks:\n")
|
||||||
print("Option?\n")
|
print("Option?\n")
|
||||||
print(" Good Luck!\n")
|
print(" Good Luck!\n")
|
||||||
cmd = ask("Command--")
|
cmd = ask("Command--")
|
||||||
elif cmd == "MAX":
|
elif cmd == "MAX":
|
||||||
print("Gate Max")
|
print("Gate Max")
|
||||||
print(" # M.P.H.")
|
print(" # M.P.H.")
|
||||||
print("----------")
|
print("----------")
|
||||||
for i in range(0, gates):
|
for i in range(0, gates):
|
||||||
print(f" {i + 1} {max_speeds[i]}")
|
print(f" {i + 1} {max_speeds[i]}")
|
||||||
cmd = ask("Command--")
|
cmd = ask("Command--")
|
||||||
else:
|
else:
|
||||||
cmd = ask(f"\"{cmd}\" is an illegal command--Retry")
|
cmd = ask(f'"{cmd}" is an illegal command--Retry')
|
||||||
|
|
||||||
|
|
||||||
def run():
|
def run():
|
||||||
global medals
|
global medals
|
||||||
print("The starter counts down...5...4...3...2...1...Go!")
|
print("The starter counts down...5...4...3...2...1...Go!")
|
||||||
time = 0
|
time = 0
|
||||||
speed = int(random() * (18 - 9) + 9)
|
speed = int(random() * (18 - 9) + 9)
|
||||||
print("You're off")
|
print("You're off")
|
||||||
for i in range(0, gates):
|
for i in range(0, gates):
|
||||||
while True:
|
while True:
|
||||||
print(f"\nHere comes gate #{i + 1}:")
|
print(f"\nHere comes gate #{i + 1}:")
|
||||||
print(f" {int(speed)} M.P.H.")
|
print(f" {int(speed)} M.P.H.")
|
||||||
old_speed = speed
|
old_speed = speed
|
||||||
opt = ask_int("Option")
|
opt = ask_int("Option")
|
||||||
while opt < 1 or opt > 8:
|
while opt < 1 or opt > 8:
|
||||||
if(opt == 0):
|
if opt == 0:
|
||||||
print(f"You've taken {int(time)} seconds.")
|
print(f"You've taken {int(time)} seconds.")
|
||||||
else:
|
else:
|
||||||
print("What?")
|
print("What?")
|
||||||
opt = ask_int("Option")
|
opt = ask_int("Option")
|
||||||
|
|
||||||
if opt == 8:
|
if opt == 8:
|
||||||
print("***Cheat")
|
print("***Cheat")
|
||||||
if random() < .7:
|
if random() < 0.7:
|
||||||
print("An official caught you!")
|
print("An official caught you!")
|
||||||
print(f"You took {int(time + random())} seconds.")
|
print(f"You took {int(time + random())} seconds.")
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
print("You made it!")
|
print("You made it!")
|
||||||
time += 1.5
|
time += 1.5
|
||||||
else:
|
else:
|
||||||
match opt:
|
match opt:
|
||||||
case 1:
|
case 1:
|
||||||
speed += int(random() * (10 - 5) + 5)
|
speed += int(random() * (10 - 5) + 5)
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
speed += int(random() * (5 - 3) + 3)
|
speed += int(random() * (5 - 3) + 3)
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
speed += int(random() * (4 - 1) + 1)
|
speed += int(random() * (4 - 1) + 1)
|
||||||
|
|
||||||
case 5:
|
case 5:
|
||||||
speed -= int(random() * (4 - 1) + 1)
|
speed -= int(random() * (4 - 1) + 1)
|
||||||
|
|
||||||
case 6:
|
case 6:
|
||||||
speed -= int(random() * (5 - 3) + 3)
|
speed -= int(random() * (5 - 3) + 3)
|
||||||
|
|
||||||
|
case 7:
|
||||||
|
speed -= int(random() * (10 - 5) + 5)
|
||||||
|
print(f" {int(speed)} M.P.H.")
|
||||||
|
if speed > max_speeds[i]:
|
||||||
|
if random() < ((speed - max_speeds[i]) * 0.1) + 0.2:
|
||||||
|
print(
|
||||||
|
f"You went over the maximum speed and {'snagged a flag' if random() < .5 else 'wiped out'}!"
|
||||||
|
)
|
||||||
|
print(f"You took {int(time + random())} seconds")
|
||||||
|
return
|
||||||
|
else:
|
||||||
|
print("You went over the maximum speed and made it!")
|
||||||
|
if speed > max_speeds[i] - 1:
|
||||||
|
print("Close one!")
|
||||||
|
if speed < 7:
|
||||||
|
print("Let's be realistic, ok? Let's go back and try again...")
|
||||||
|
speed = old_speed
|
||||||
|
else:
|
||||||
|
time += max_speeds[i] - speed + 1
|
||||||
|
if speed > max_speeds[i]:
|
||||||
|
time += 0.5
|
||||||
|
break
|
||||||
|
print(f"\nYou took {int(time + random())} seconds.")
|
||||||
|
avg = time / gates
|
||||||
|
if avg < 1.5 - (lvl * 0.1):
|
||||||
|
print("Yout won a gold medal!")
|
||||||
|
medals["gold"] += 1
|
||||||
|
elif avg < 2.9 - (lvl * 0.1):
|
||||||
|
print("You won a silver medal!")
|
||||||
|
medals["silver"] += 1
|
||||||
|
elif avg < 4.4 - (lvl * 0.01):
|
||||||
|
print("You won a bronze medal!")
|
||||||
|
medals["bronze"] += 1
|
||||||
|
|
||||||
case 7:
|
|
||||||
speed -= int(random() * (10 - 5) + 5)
|
|
||||||
print(f" {int(speed)} M.P.H.")
|
|
||||||
if speed > max_speeds[i]:
|
|
||||||
if random() < ((speed - max_speeds[i]) * .1) + .2:
|
|
||||||
print(f"You went over the maximum speed and {'snagged a flag' if random() < .5 else 'wiped out'}!")
|
|
||||||
print(f"You took {int(time + random())} seconds")
|
|
||||||
return
|
|
||||||
else:
|
|
||||||
print("You went over the maximum speed and made it!")
|
|
||||||
if speed > max_speeds[i] - 1:
|
|
||||||
print("Close one!")
|
|
||||||
if speed < 7:
|
|
||||||
print("Let's be realistic, ok? Let's go back and try again...")
|
|
||||||
speed = old_speed
|
|
||||||
else:
|
|
||||||
time += max_speeds[i] - speed + 1
|
|
||||||
if speed > max_speeds[i]:
|
|
||||||
time += .5
|
|
||||||
break
|
|
||||||
print(f"\nYou took {int(time + random())} seconds.")
|
|
||||||
avg = time / gates
|
|
||||||
if avg < 1.5 - (lvl * .1):
|
|
||||||
print("Yout won a gold medal!")
|
|
||||||
medals["gold"] += 1
|
|
||||||
elif avg < 2.9 - (lvl * .1):
|
|
||||||
print("You won a silver medal!")
|
|
||||||
medals["silver"] += 1
|
|
||||||
elif avg < 4.4 - (lvl * .01):
|
|
||||||
print("You won a bronze medal!")
|
|
||||||
medals["bronze"] += 1
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
gates = ask_int("How many gates does this course have (1 to 25)")
|
gates = ask_int("How many gates does this course have (1 to 25)")
|
||||||
if gates < 1:
|
if gates < 1:
|
||||||
print("Try again,")
|
print("Try again,")
|
||||||
else:
|
else:
|
||||||
if(gates > 25):
|
if gates > 25:
|
||||||
print("25 is the limit.")
|
print("25 is the limit.")
|
||||||
break
|
break
|
||||||
|
|
||||||
pre_run()
|
pre_run()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
lvl = ask_int("Rate yourself as a skier, (1=Worst, 3=Best)")
|
lvl = ask_int("Rate yourself as a skier, (1=Worst, 3=Best)")
|
||||||
if lvl < 1 or lvl > 3:
|
if lvl < 1 or lvl > 3:
|
||||||
print("The bounds are 1-3.")
|
print("The bounds are 1-3.")
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
run()
|
run()
|
||||||
while True:
|
while True:
|
||||||
answer = ask("Do you want to play again?")
|
answer = ask("Do you want to play again?")
|
||||||
if answer == "YES" or answer == "NO":
|
if answer == "YES" or answer == "NO":
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
print("Please type \"YES\" or \"NO\"")
|
print('Please type "YES" or "NO"')
|
||||||
if answer == "NO":
|
if answer == "NO":
|
||||||
break
|
break
|
||||||
|
|
||||||
print("Thanks for the race")
|
print("Thanks for the race")
|
||||||
if medals["gold"] > 0:
|
if medals["gold"] > 0:
|
||||||
print(f"Gold medals: {medals['gold']}")
|
print(f"Gold medals: {medals['gold']}")
|
||||||
if medals["silver"] > 0:
|
if medals["silver"] > 0:
|
||||||
print(f"Silver medals: {medals['silver']}")
|
print(f"Silver medals: {medals['silver']}")
|
||||||
if medals["bronze"] > 0:
|
if medals["bronze"] > 0:
|
||||||
print(f"Bronze medals: {medals['bronze']}")
|
print(f"Bronze medals: {medals['bronze']}")
|
||||||
|
|||||||
Reference in New Issue
Block a user