Ejemplo n.º 1
0
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
Ejemplo n.º 2
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
Ejemplo n.º 3
0
def test_car_above_34():
    my_car = Car()
    my_car.speed = 34
    my_car.accelerate()
    assert my_car.speed == 34
Ejemplo n.º 4
0
def test_car_accelerate():
    my_car = Car()
    my_car.accelerate()
    assert my_car.speed == 2
Ejemplo n.º 5
0
def test_car_accelerate():
    road = Road()
    car = Car(road)
    assert car.speed == 15
    car.accelerate()
    assert car.speed == 17
Ejemplo n.º 6
0
def test_accelerate():
    car1 = Car(0)
    car2 = Car(50)
    car1.accelerate(car2)
    assert car1.acceleration == 2
    assert car1.velocity == 2
Ejemplo n.º 7
0
def test_car_accelerates():
    car = Car()
    car.accelerate()
    assert car.speed == 2
Ejemplo n.º 8
0
def test_car_can_not_go_faster_than_34():
    car = Car()
    car.speed = 33
    car.accelerate()
    assert car.speed == 34
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
#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())
Ejemplo n.º 11
0
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)