mirror of
https://github.com/coding-horror/basic-computer-games.git
synced 2025-12-21 14:50:54 -08:00
Removed spaces from top-level directory names.
Spaces tend to cause annoyances in a Unix-style shell environment. This change fixes that.
This commit is contained in:
81
93_23_Matches/python/23matches.py
Executable file
81
93_23_Matches/python/23matches.py
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env python3
|
||||
# 23 Matches
|
||||
#
|
||||
# Converted from BASIC to Python by Trevor Hobson
|
||||
|
||||
import random
|
||||
|
||||
|
||||
def play_game():
|
||||
"""Play one round of the game"""
|
||||
|
||||
matches = 23
|
||||
humans_turn = random.randint(0, 1) == 1
|
||||
if humans_turn:
|
||||
print("Tails! You go first.\n")
|
||||
prompt_human = "How many do you wish to remove "
|
||||
else:
|
||||
print("Heads! I win! Ha! Ha!")
|
||||
print("Prepare to lose, meatball-nose!!")
|
||||
|
||||
choice_human = 2
|
||||
while matches > 0:
|
||||
if humans_turn:
|
||||
choice_human = 0
|
||||
if matches == 1:
|
||||
choice_human = 1
|
||||
while choice_human == 0:
|
||||
try:
|
||||
choice_human = int(input(prompt_human))
|
||||
if choice_human not in [1, 2, 3] or choice_human > matches:
|
||||
choice_human = 0
|
||||
print("Very funny! Dummy!")
|
||||
print("Do you want to play or goof around?")
|
||||
prompt_human = "Now, how many matches do you want "
|
||||
except ValueError:
|
||||
print("Please enter a number.")
|
||||
prompt_human = "How many do you wish to remove "
|
||||
matches = matches - choice_human
|
||||
if matches == 0:
|
||||
print("You poor boob! You took the last match! I gotcha!!")
|
||||
print("Ha ! Ha ! I beat you !!\n")
|
||||
print("Good bye loser!")
|
||||
else:
|
||||
print("There are now", matches, "matches remaining.\n")
|
||||
else:
|
||||
choice_computer = 4 - choice_human
|
||||
if matches == 1:
|
||||
choice_computer = 1
|
||||
elif 1 < matches < 4:
|
||||
choice_computer = matches - 1
|
||||
matches = matches - choice_computer
|
||||
if matches == 0:
|
||||
print("You won, floppy ears !")
|
||||
print("Think you're pretty smart !")
|
||||
print("Let's play again and I'll blow your shoes off !!")
|
||||
else:
|
||||
print("My turn ! I remove", choice_computer, "matches")
|
||||
print("The number of matches is now", matches, "\n")
|
||||
humans_turn = not humans_turn
|
||||
prompt_human = "Your turn -- you may take 1, 2 or 3 matches.\nHow many do you wish to remove "
|
||||
|
||||
|
||||
def main():
|
||||
print(" " * 31 + "23 MATCHHES")
|
||||
print(" " * 15 + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY\n")
|
||||
print("This is a game called '23 Matches'.\n")
|
||||
print("When it is your turn, you may take one, two, or three")
|
||||
print("matches. The object of the game is not to have to take")
|
||||
print("the last match.\n")
|
||||
print("Let's flip a coin to see who goes first.")
|
||||
print("If it comes up heads, I will win the toss.\n")
|
||||
|
||||
keep_playing = True
|
||||
while keep_playing:
|
||||
play_game()
|
||||
keep_playing = input(
|
||||
"\nPlay again? (yes or no) ").lower().startswith("y")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
3
93_23_Matches/python/README.md
Normal file
3
93_23_Matches/python/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
Original source downloaded [from Vintage Basic](http://www.vintage-basic.net/games.html)
|
||||
|
||||
Conversion to [Python](https://www.python.org/about/)
|
||||
Reference in New Issue
Block a user