def test_check_distance_between_cars(): car1 = Car(0) car2 = Car(9) car1.accelerate(car2) assert car1.velocity == 2 car1.accelerate(car2) assert car1.velocity == 0
def test_car_slows_if_over_desired_speed(): road = Road() car1 = Car(road, init_speed=100, desired_speed=30) car2 = Car(road, position=900) with mock.patch("random.random", return_value=1): # disable random braking car1.brake_if_needed(leading_car=car2) assert car1.speed == 30 with mock.patch("random.random", return_value=0.05): # force random braking car1.brake_if_needed(leading_car=car2) assert car1.speed == 28 car1.speed = 100 car1.accelerate() assert car1.speed == 30
def test_car_above_34(): my_car = Car() my_car.speed = 34 my_car.accelerate() assert my_car.speed == 34
def test_car_accelerate(): my_car = Car() my_car.accelerate() assert my_car.speed == 2
def test_car_accelerate(): road = Road() car = Car(road) assert car.speed == 15 car.accelerate() assert car.speed == 17
def test_accelerate(): car1 = Car(0) car2 = Car(50) car1.accelerate(car2) assert car1.acceleration == 2 assert car1.velocity == 2
def test_car_accelerates(): car = Car() car.accelerate() assert car.speed == 2
def test_car_can_not_go_faster_than_34(): car = Car() car.speed = 33 car.accelerate() assert car.speed == 34
class GUI: """works with the computer coordinate system (0/0 top left)""" def __init__ (self, width, heigth): self.width = width self.heigth = heigth self.windows = pygame.display.set_mode((width,heigth)) pygame.display.set_caption("Neuro Junk 2012/13") self.outerPoly = [(110,215),(230,100),(400,150),(560,105),(650,180),(685,270),(710,400),(615,500),(510,545),(365,540),(315,480),(255,490),(185,540),(125,521),(90,420)] self.innerPoly = [(160,215),(230,150),(400,200),(540,155),(600,210),(625,275),(650,380),(600,440),(510,500),(370,480),(380,420),(260,430),(185,500),(150,480)] self.car = Car(1400,0.0,35.0,25.0,0.0,130.0,(120,215),0.0, 38.0, 90.0,(15,15),self.innerPoly, self.outerPoly) #mass,acceleration,maxAcc,maxBreakingForce,currentSpeed,maxSpeed,pos,currentLock, maxLock, orientation, length, width self.colors = {'black':(0,0,0),'white':(255,255,255),'pink':(255,0,255)} self.screen = pygame.display.get_surface() self.drawStartUp() def drawStartUp(self): self.screen.fill(self.colors['white']) self.carRect = pygame.draw.rect(self.screen, self.colors['pink'], pygame.Rect(self.car.convertRealPositionToPc()[0], self.car.convertRealPositionToPc()[1], self.car.convertSizeFromMetersToPixel()[0], self.car.convertSizeFromMetersToPixel()[1]))#drawing the car #print "Start:" #print "pcx: " + str(self.car.convertRealPositionToPc()[0]) #print "pcy: " + str(self.car.convertRealPositionToPc()[1]) pygame.draw.polygon(self.screen, self.colors['black'], self.outerPoly,2) pygame.draw.polygon(self.screen, self.colors['black'], self.innerPoly,2) self.update() self.run() def update(self): self.screen.fill(self.colors['white']) pygame.draw.polygon(self.screen, self.colors['black'], self.outerPoly,2) pygame.draw.polygon(self.screen, self.colors['black'], self.innerPoly,2) self.carRect = pygame.draw.rect(self.screen, self.colors['pink'],pygame.Rect(self.car.convertRealPositionToPc()[0], self.car.convertRealPositionToPc()[1], self.car.convertSizeFromMetersToPixel()[0], self.car.convertSizeFromMetersToPixel()[1])) pygame.display.update() def drawLines(self,lines): for mt in lines: pygame.draw.line(self.screen, self.colors['black'], mt[0], mt[1],5) pygame.display.update() def displayInfo(self): pygame.font.init() font = pygame.font.SysFont("Ubuntu",15) test = font.render("Speed: " + str(self.car.currSpeed),1,(255,0,0)) self.screen.blit(test, (100,100)) def input(self,events): for event in events: if event.type == QUIT: sys.exit(0) elif event.type == KEYDOWN and event.key == 113: #Q sys.exit(0) elif event.type == KEYDOWN and event.key == 273: #Arrow_UP self.car.accelerate(1.0) #print self.car.currSpeed elif event.type == KEYUP and event.key == 273: self.car.accelerate(0.0) elif event.type == KEYDOWN and event.key == 274: #Arrow_Down self.car.retarding(1.0) elif event.type == KEYUP and event.key == 274: self.car.retarding(0.0) elif event.type == KEYDOWN and event.key == 275: #Arrow_right self.car.stiring(-0.25) elif event.type == KEYUP and event.key == 275: self.car.stiring(0.0) elif event.type == KEYDOWN and event.key == 276: #Arrow_left self.car.stiring(0.25) elif event.type == KEYUP and event.key == 276: self.car.stiring(0.0) elif event.type == KEYDOWN and event.key == K_SPACE: self.car.currSpeed = 0.0 self.car.acceleration = 0.0 else: pass def run(self): lines = [] while True: self.input(pygame.event.get()) mt = self.car.nextPos(0.01) self.update() #print "mt: " + str(mt) #lines.append(mt) #self.drawLines(lines) time.sleep(0.01)
#import Car from car.py from car import Car # Developed by Matt McCarthy newCar = Car() newCar.start() # developed by Thomas print(newCar.isStarted(), "\nSpeed is:", newCar.show_speed()) while newCar.speed != 30: newCar.accelerate() print("Car has accelerated to :", newCar.show_speed()) # developed by dave newCar.brake() newCar.brake() newCar.brake() newCar.brake() print("speed: ", newCar.show_speed())
def main(): """ Main function """ # Load pygame.init() path = os.path.abspath('.') + '/' screen = pygame.display.set_mode((1280, 720)) font = pygame.font.Font(path + "arial.ttf", 24) quit_game = False key_up = False key_down = False key_left = False key_right = False car = Car(200, 300, path + "images/car.png") while not quit_game: # Inputs for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: quit_game = True if event.key == pygame.K_UP: key_up = True if event.key == pygame.K_DOWN: key_down = True if event.key == pygame.K_LEFT: key_left = True if event.key == pygame.K_RIGHT: key_right = True if event.type == pygame.KEYUP: if event.key == pygame.K_UP: key_up = False if event.key == pygame.K_DOWN: key_down = False if event.key == pygame.K_LEFT: key_left = False if event.key == pygame.K_RIGHT: key_right = False # Update if key_up: car.accelerate() if key_left: car.turn_left() if key_right: car.turn_right() car.update() # Draw screen.fill((0, 0, 0)) car.draw(screen) pygame.display.update() time.sleep(0.1)