From 8752ceeb63990b20c34d1cc0f66fb49f19e87925 Mon Sep 17 00:00:00 2001 From: Lukewh Date: Sun, 22 Sep 2024 15:06:05 +0100 Subject: [PATCH] more from phone --- main.py | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 101 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index aad7e57..7b11150 100644 --- a/main.py +++ b/main.py @@ -1,5 +1,6 @@ from enum import Enum from random import randrange +from time import sleep class Stats(Enum): SPD = "SPEED" @@ -25,6 +26,19 @@ class Player(): self.skill = skill self.SP = 0 + def roll(self, stat, skill = None): + rolled = roll(0) + if stat == Stats.SPD: + rolled += self.SPD + elif stat == Stats.HND: + rolled += self.HND + elif stat == Stats.BRK: + rolled += self.BRK + + if skill == self.skill: + rolled += 1 + return rolled + def info(self): print(f"{self.name}:") print(f"\tSPD: {self.SPD}") @@ -33,13 +47,99 @@ class Player(): print(f"\tSkill: {self.skill.value}") print(f"\tSkill Points: {self.SP}") +class Obstacle(): + def __init__(self, name, stat, skill): + self.name = name + self.stat = stat + self.skill = skill + + def info(self): + print(f"{self.name}") + print(f"\tStat: {self.stat.value}") + print(f"\tSkill: {self.skill.value}") + class Track(): - def __init__(self): + def __init__(self, name): self.name = name self.obstacles = [] + def add_obstacle(self, obstacle): + self.obstacles.append(obstacle) + + def info(self): + print("---") + print(f"{self.name}") + for o in self.obstacles: + o.info() + print("---") + +class Game(): + def __init__(self, player1, player2, track): + self.p1 = player1 + self.p2 = player2 + self.track = track + self.laps = 0 + self.current_lap = 1 + self.round = 0 + self.leader = None + self.lead = 0 + + def roll_laps(self): + self.laps = roll(-2) + + def play_round(self): + print(f"Round {self.round} | Lap {self.current_lap}/{self.laps}") + if self.round == 0: + p1_roll = self.p1.roll(Stats.SPD) + p2_roll = self.p2.roll(Stats.SPD) + print("Green flag, the race has started") + if p1_roll > p2_roll: + print(f"{self.p1.name} gets a good start and takes the lead") + self.p1.SP += 1 + self.leader = self.p1 + self.lead += 1 + elif p2_roll > p1_roll: + print(f"{self.p2.name} gets a good start and takes the lead") + self.p2.SP += 1 + self.leader = self.p2 + self.lead += 1 + else: + print("Both drivers get a good start and they're neck and neck") + else: + obstacle_index = self.round % len(self.track.obstacles) + if obstacle_index == 0 and self.round != 0: + self.current_lap += 1 + if self.current_lap == self.laps: + print("its over") + obstacle = self.track.obstacles[obstacle_index] + print(obstacle.name) + sleep(1) + self.round += 1 + self.play_round() + player1 = Player("Player 1", 3, 2, 1, Skills.FM) player2 = Player("Player 2", 1, 3, 2, Skills.TM) +track = Track("Track 1") +start_finish_straight = Obstacle("Start Finish Straight", Stats.SPD, Skills.FM) +turn1 = Obstacle("Turn 1", Stats.BRK, Skills.TM) +turn2 = Obstacle("Turn 2", Stats.HND, Skills.FM) +back_straight = Obstacle("Back Straight", Stats.BRK, Skills.TM) +turn3 = Obstacle("Turn 3", Stats.HND, Skills.TM) +turn4 = Obstacle("Turn 4", Stats.SPD, Skills.FM) + +track.add_obstacle(start_finish_straight) +track.add_obstacle(turn1) +track.add_obstacle(turn2) +track.add_obstacle(back_straight) +track.add_obstacle(turn3) +track.add_obstacle(turn4) + + player1.info() player2.info() +track.info() + +game = Game(player1, player2, track) +game.roll_laps() +game.play_round()