params look ok

This commit is contained in:
2019-10-22 10:55:18 +02:00
parent 19f696b830
commit 979f0c3032

24
main.py
View File

@@ -31,7 +31,7 @@ class Car(pygame.sprite.Sprite):
self.rect = self.image.get_rect()
self.rect.center = (75, GY -50)
self.speed = 1.5
self.speed = 1
self.heading = 0
self.heading_change = 0
self.vision_length = VISION_LENGTH # line liength
@@ -57,6 +57,7 @@ class Car(pygame.sprite.Sprite):
self.probe_brain()
self.run = True
def update_sensors(self):
center = self.rect.center
vc = angle_to_vector(self.heading)
@@ -88,7 +89,7 @@ class Car(pygame.sprite.Sprite):
pygame.draw.circle(screen, (125,125,255), ip, 4, 2)
dist = int(distance(ip,self.rect.center))
self.probes[idx] = min(dist, self.probes[idx])
if dist < 2 * self.speed or not self.speed :
if dist < 1.2 * self.speed or self.speed < 0.01 :
self.run = False
print(f'Car {id(self)} crashed')
@@ -110,7 +111,11 @@ class Car(pygame.sprite.Sprite):
self.rect = self.image.get_rect()
self.rect.center = old_center
self.update_position()
if self.speed < 0.01 :
self.run = False
print(f'Car {id(self)} crashed')
print(
'id', id(self),
'Speed', self.speed,
'heading', self.heading,
'throttle', self.throttle,
@@ -118,7 +123,7 @@ class Car(pygame.sprite.Sprite):
)
if self.speed :
self.heading += self.heading_change * 6 / self.speed
self.heading += self.heading_change * 20 / self.speed
self.heading = self.heading % 360
self.speed += self.throttle #THROTTLE_POWER
@@ -142,7 +147,7 @@ class Car(pygame.sprite.Sprite):
#https://medium.com/intel-student-ambassadors/demystifying-genetic-algorithms-to-enhance-neural-networks-cde902384b6e
screen = pygame.display.set_mode((GX, GY), FLAGS)
@@ -161,12 +166,15 @@ for x in range(10):
all_cars.add(car)
clock = pygame.time.Clock()
while True :
running_cars = True
while running_cars :
running_cars = False
screen.fill(CELL_COLOR)
all_cars.draw(screen)
for c in all_cars :
c.show_features()
if c.run :
running_cars = True
c.probe_lines_proximity(map_lines)
c.probe_brain()
c.update()
@@ -179,4 +187,8 @@ while True :
# pygame.draw.circle(screen, (125,255,125), point, 4, 2)
pygame.display.flip()
clock.tick(1)
clock.tick(24)
while True :
pygame.display.flip()
clock.tick(24)