params look ok
This commit is contained in:
24
main.py
24
main.py
@@ -31,7 +31,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
|
|
||||||
self.rect = self.image.get_rect()
|
self.rect = self.image.get_rect()
|
||||||
self.rect.center = (75, GY -50)
|
self.rect.center = (75, GY -50)
|
||||||
self.speed = 1.5
|
self.speed = 1
|
||||||
self.heading = 0
|
self.heading = 0
|
||||||
self.heading_change = 0
|
self.heading_change = 0
|
||||||
self.vision_length = VISION_LENGTH # line liength
|
self.vision_length = VISION_LENGTH # line liength
|
||||||
@@ -57,6 +57,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
self.probe_brain()
|
self.probe_brain()
|
||||||
self.run = True
|
self.run = True
|
||||||
|
|
||||||
|
|
||||||
def update_sensors(self):
|
def update_sensors(self):
|
||||||
center = self.rect.center
|
center = self.rect.center
|
||||||
vc = angle_to_vector(self.heading)
|
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)
|
pygame.draw.circle(screen, (125,125,255), ip, 4, 2)
|
||||||
dist = int(distance(ip,self.rect.center))
|
dist = int(distance(ip,self.rect.center))
|
||||||
self.probes[idx] = min(dist, self.probes[idx])
|
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
|
self.run = False
|
||||||
print(f'Car {id(self)} crashed')
|
print(f'Car {id(self)} crashed')
|
||||||
|
|
||||||
@@ -110,7 +111,11 @@ class Car(pygame.sprite.Sprite):
|
|||||||
self.rect = self.image.get_rect()
|
self.rect = self.image.get_rect()
|
||||||
self.rect.center = old_center
|
self.rect.center = old_center
|
||||||
self.update_position()
|
self.update_position()
|
||||||
|
if self.speed < 0.01 :
|
||||||
|
self.run = False
|
||||||
|
print(f'Car {id(self)} crashed')
|
||||||
print(
|
print(
|
||||||
|
'id', id(self),
|
||||||
'Speed', self.speed,
|
'Speed', self.speed,
|
||||||
'heading', self.heading,
|
'heading', self.heading,
|
||||||
'throttle', self.throttle,
|
'throttle', self.throttle,
|
||||||
@@ -118,7 +123,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if self.speed :
|
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.heading = self.heading % 360
|
||||||
|
|
||||||
self.speed += self.throttle #THROTTLE_POWER
|
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)
|
screen = pygame.display.set_mode((GX, GY), FLAGS)
|
||||||
@@ -161,12 +166,15 @@ for x in range(10):
|
|||||||
all_cars.add(car)
|
all_cars.add(car)
|
||||||
|
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
while True :
|
running_cars = True
|
||||||
|
while running_cars :
|
||||||
|
running_cars = False
|
||||||
screen.fill(CELL_COLOR)
|
screen.fill(CELL_COLOR)
|
||||||
all_cars.draw(screen)
|
all_cars.draw(screen)
|
||||||
for c in all_cars :
|
for c in all_cars :
|
||||||
c.show_features()
|
c.show_features()
|
||||||
if c.run :
|
if c.run :
|
||||||
|
running_cars = True
|
||||||
c.probe_lines_proximity(map_lines)
|
c.probe_lines_proximity(map_lines)
|
||||||
c.probe_brain()
|
c.probe_brain()
|
||||||
c.update()
|
c.update()
|
||||||
@@ -179,4 +187,8 @@ while True :
|
|||||||
# pygame.draw.circle(screen, (125,255,125), point, 4, 2)
|
# pygame.draw.circle(screen, (125,255,125), point, 4, 2)
|
||||||
|
|
||||||
pygame.display.flip()
|
pygame.display.flip()
|
||||||
clock.tick(1)
|
clock.tick(24)
|
||||||
|
|
||||||
|
while True :
|
||||||
|
pygame.display.flip()
|
||||||
|
clock.tick(24)
|
||||||
|
|||||||
Reference in New Issue
Block a user