more from phone
This commit is contained in:
102
main.py
102
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()
|
||||
|
Reference in New Issue
Block a user