genetics code (untested)

This commit is contained in:
2019-10-22 15:41:12 +02:00
parent 65808e4c62
commit 80319712d0
6 changed files with 89 additions and 15 deletions

8
car.py
View File

@@ -2,7 +2,7 @@ import numpy as np
import pygame
from brain import Neural_Network
from params import GY, CAR_SIZE, VISION_LENGTH, VISION_SPAN, THROTTLE_POWER, screen
from params import GY, CAR_MAX_SPEED, CAR_SIZE, CAR_STEERING_FACTOR, VISION_LENGTH, VISION_SPAN, THROTTLE_POWER, screen
from trigo import angle_to_vector, get_line_feats, segments_intersection, distance
IMG = pygame.image.load("car20.png")#.convert()
@@ -65,6 +65,7 @@ class Car(pygame.sprite.Sprite):
old_center = self.rect.center
self.rect.center = (self.speed * vec[0] / 2 + old_center[0], -self.speed * vec[1] / 2 + old_center[1])
self.update_sensors()
self.brain.fitness += int(distance(old_center, self.rect.center))
@@ -81,6 +82,7 @@ class Car(pygame.sprite.Sprite):
self.probes[idx] = min(dist, self.probes[idx])
if dist < 1.2 * self.speed or self.speed < 0.01 :
self.run = False
self.speed = 0
print(f'Car {id(self)} crashed')
# else :
@@ -113,7 +115,7 @@ class Car(pygame.sprite.Sprite):
)
if self.speed :
self.heading += self.heading_change * 10 / self.speed
self.heading += self.heading_change * CAR_STEERING_FACTOR / self.speed
self.heading = self.heading % 360
self.speed += self.throttle #THROTTLE_POWER
@@ -123,7 +125,7 @@ class Car(pygame.sprite.Sprite):
# self.speed -= self.throttle #THROTTLE_POWER
self.speed = max(0, self.speed)
self.speed = min(self.speed, 7)
self.speed = min(self.speed, CAR_MAX_SPEED)
super().update()