From 47c458be8d56e623325ead04a577586dd963fa0d Mon Sep 17 00:00:00 2001 From: Daniel Piron Date: Tue, 16 Feb 2021 17:57:33 -0500 Subject: [PATCH] Initial 'direct' Python3 conversion --- 15 Boxing/python/boxing.py | 148 +++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100755 15 Boxing/python/boxing.py diff --git a/15 Boxing/python/boxing.py b/15 Boxing/python/boxing.py new file mode 100755 index 00000000..3db8d264 --- /dev/null +++ b/15 Boxing/python/boxing.py @@ -0,0 +1,148 @@ +#!/usr/bin/env python3 +import random + +QUESTION_PROMPT = '? ' + +def play(): + print('BOXING') + print('CREATIVE COMPUTING MORRISTOWN, NEW JERSEY') + print('\n\n') + print('BOXING OLYMPIC STYLE (3 ROUNDS -- 2 OUT OF 3 WINS)') + + opponent_score = 0 + player_score = 0 + + opponent_damage = 0 + player_damage = 0 + + opponent_knockedout = False + player_knockedout = False + + print('WHAT IS YOUR OPPONENT\'S NAME', end=QUESTION_PROMPT) + opponent_name = input() + print('WHAT IS YOUR MAN\'S NAME', end=QUESTION_PROMPT) + player_name = input() + + print('DIFFERENT PUNCHES ARE 1 FULL SWING 2 HOOK 3 UPPERCUT 4 JAB') + print('WHAT IS YOUR MAN\'S BEST', end=QUESTION_PROMPT) + player_best = int(input()) + + print('WHAT IS HIS VULNERABILITY', end=QUESTION_PROMPT) + player_weakness = int(input()) + + opponent_best = 0 + opponent_weakness = 0 + while opponent_best == opponent_weakness: + opponent_best = random.randint(1, 4) + opponent_weakness = random.randint(1, 4) + + print('{}\'S ADVANTAGE is {} AND VULNERABILITY IS SECRET.' + .format(opponent_name, opponent_weakness)) + + for round in (1, 2, 3): + print('ROUND {} BEGINS...\n'.format(round)) + if opponent_score >= 2 or player_score >= 2: + break + + for action in range(7): + if random.randint(1, 10) > 5: + # opponent swings + punch = random.randint(1, 4) + + if punch == player_weakness: + player_damage += 2 + + if punch == 1: + print('{} TAKES A FULL SWING AND'.format(opponent_name), end = ' ') + if player_weakness == 1 or random.randint(1, 60) < 30: + print('POW!!!! HE HITS HIM RIGHT IN THE FACE!') + if player_damage > 35: + player_knockedout = True + break + player_damage += 15 + else: + print('BUT IT\'S BLOCKED!') + elif punch == 2: + print('{} GETS {} IN THE JAW (OUCH!)'.format(opponent_name, player_name), end = ' ') + player_damage += 7 + print('....AND AGAIN') + if player_damage > 35: + player_knockedout = True + break + player_damage += 5 + elif punch == 3: + print('{} IS ATTACKED BY AN UPPERCUT (OH,OH)'.format(player_name)) + if player_weakness == 3 or random.randint(1, 200) > 75: + print('{} BLOCKS AND HITS {} WITH A HOOK'.format(player_name, opponent_name)) + opponent_damage += 5 + else: + print('AND {} CONNECTS...'.format(opponent_name)) + player_damage += 8 + else: + print('{} JABS AND'.format(opponent_name), end = ' ') + if player_weakness == 4 or random.randint(1, 7) > 4: + print('BLOOD SPILLS !!!') + player_damage += 3 + else: + print('AND IT\'S BLOCKED (LUCKY BLOCK!)') + else: + print('{}\'S PUNCH'.format(player_name), end='? ') + punch = int(input()) + + if punch == opponent_weakness: + opponent_damage += 2 + + if punch == 1: + print('{} SWINGS AND'.format(player_name), end = ' ') + if opponent_weakness == 1 or random.randint(1, 30) < 10: + print('HE CONNECTS!') + if opponent_damage > 35: + opponent_knockedout = True + break + opponent_damage += 15 + else: + print('HE MISSES') + elif punch == 2: + print('{} GIVES THE HOOK...'.format(player_name), end = ' ') + if opponent_weakness == 2 or random.randint(1, 2) == 1: + print('CONNECTS...') + opponent_damage += 7 + else: + print('BUT IT\'S BLOCKED!!!!!!!!!!!!!') + elif punch == 3: + print('{} TRIES AN UPPERCUT'.format(player_name), end = ' ') + if opponent_weakness == 3 or random.randint(1, 100) < 51: + print('AND HE CONNECTS!') + opponent_damage += 4 + else: + print('AND IT\'S BLOCKED (LUCKY BLOCK!)') + else: + print('{} JABS AT {}\'S HEAD'.format(player_name, opponent_name), end = ' ') + if opponent_weakness == 4 or random.randint(1, 8) < 4: + print('AND HE CONNECTS!') + opponent_damage += 3 + else: + print('AND IT\'S BLOCKED (LUCKY BLOCK!)') + + if player_knockedout or opponent_knockedout: + break + elif player_damage > opponent_damage: + print('{} WINS ROUND {}'.format(opponent_name, round)) + opponent_score += 1 + else: + print('{} WINS ROUND {}'.format(player_name, round)) + player_score += 1 + + if player_knockedout: + print('{} IS KNOCKED COLD AND {} IS THE WINNER AND CHAMP'.format(player_name, opponent_name)) + elif opponent_knockedout: + print('{} IS KNOCKED COLD AND {} IS THE WINNER AND CHAMP'.format(opponent_name, player_name)) + elif opponent_score > player_score: + print('{} WINS (NICE GOING), {}'.format(opponent_name, player_name)) + else: + print('{} AMAZINGLY WINS'.format(player_name)) + + print('\n\nAND NOW GOODBYE FROM THE OLYMPIC ARENA.') + +if __name__ == '__main__': + play()