diff --git a/76 Russian Roulette/python/russianroulette.py b/76 Russian Roulette/python/russianroulette.py new file mode 100644 index 00000000..bac04dc6 --- /dev/null +++ b/76 Russian Roulette/python/russianroulette.py @@ -0,0 +1,92 @@ +######################################################## +# +# Russian Roulette +# +# From Basic Computer Games (1978) +# +# In this game, you are given by the computer a +# revolver loaded with one bullet and five empty +# chambers. You spin the chamber and pull the trigger +# by inputting a "1", or, if you want to quit, input +# a "2". You win if you play ten times and are still +# alive. +# Tom Adametx wrote this program while a student at +# Curtis Jr. High School in Sudbury, Massachusetts. +# +######################################################## + + +from random import random + +NUMBER_OF_ROUNDS = 9 + + +def initial_message(): + print(" " * 28 + "Russian Roulette") + print(" " * 15 + "Creative Computing Morristown, New Jersey\n\n\n") + print("This is a game of >>>>>>>>>>Russian Roulette.\n") + print("Here is a Revolver.") + + +def parse_input(): + correct_input = False + while not correct_input: + try: + i = int(input('? ')) + correct_input = True + except ValueError: + print('Number expected...') + return i + + +initial_message() +while True: + dead = False + n = 0 + print("Type \'1\' to Spin chamber and pull trigger") + print("Type \'2\' to Give up") + print("Go") + while not dead: + i = parse_input() + + if i == 2: + break + + if random() > 0.8333333333333334: + dead = True + else: + print("- CLICK -\n") + n += 1 + + if n > NUMBER_OF_ROUNDS: + break + if dead: + print("BANG!!!!! You're Dead!") + print("Condolences will be sent to your relatives.\n\n\n") + print("...Next victim...") + else: + if n > NUMBER_OF_ROUNDS: + print("You win!!!!!") + print("Let someone else blow his brain out.\n") + else: + print(" Chicken!!!!!\n\n\n") + print("...Next victim....") + + +######################################################## +# Porting Notes +# +# Altough the description says that accepts "1" or "2", +# the original game accepts any number as input, and +# if it's different of "2" the program considers +# as if the user had passed "1". That feature was +# kept in this port. +# Also, in the original game you must "pull the trigger" +# 11 times instead of 10 in orden to win, +# given that N=0 at the beginning and the condition to +# win is "IF N > 10 THEN 80". That was fixed in this +# port, asking the user to pull the trigger only ten +# times, tough the number of round can be set changing +# the constant NUMBER_OF_ROUNDS. +# +########################################################