Created
June 4, 2015 13:11
-
-
Save taddeimania/02ae53032d91c2eb065b to your computer and use it in GitHub Desktop.
bike_race_oop
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import random | |
class Bike: | |
speed = 0 | |
moving = False | |
location = 0 | |
top_speed = 14 | |
name = "" | |
def __init__(self, name="Unknown Racer", top_speed=14): | |
self.name = name | |
self.top_speed = top_speed | |
def __str__(self): | |
return "{} - {} - {}".format(self.name, self.location, self.speed) | |
def accelerate(self): | |
if self.speed < self.top_speed: | |
self.speed += 1 | |
def start(self): | |
self.moving = True | |
self.accelerate() | |
def stop(self): | |
pass | |
def update(self): | |
if random.random() >= .5: | |
self.accelerate() | |
self.location += self.speed * random.random() | |
class Race: | |
start = 0 | |
finish = 100 | |
active = False | |
winner = "" | |
def __init__(self, racers, finish=100): | |
self.racers = racers | |
self.finish = finish | |
def start(self): | |
self.active = True | |
for racer in self.racers: | |
racer.start() | |
racer.update() | |
def begin_race(self): | |
self.start() | |
while self.active: | |
for racer in self.racers: | |
if racer.location >= self.finish: | |
self.winner = racer | |
self.stop() | |
break | |
racer.update() | |
def stop(self): | |
self.active = False | |
print("STOP THE RACE! {} WON!!!!".format(self.winner.name)) | |
for racer in self.racers: | |
print(racer) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment