it s alive, need to smooth fitness

This commit is contained in:
2019-10-23 16:58:09 +02:00
parent 8511af2e2c
commit bb115a95df
4 changed files with 18 additions and 12 deletions

13
car.py
View File

@@ -3,7 +3,7 @@ import random
import pygame
from brain import Neural_Network
from params import GY, CAR_MAX_SPEED, CAR_SIZE, CAR_STEERING_FACTOR, VISION_LENGTH, VISION_SPAN, THROTTLE_POWER, screen
from params import GY, CAR_MAX_SPEED, CAR_MAX_FITNESS, 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()
@@ -21,7 +21,6 @@ class Car(pygame.sprite.Sprite):
self.image = self.original_image
self.rect = self.image.get_rect()
self.rect.center = (75, GY -50)
self.vision_length = VISION_LENGTH # line liength
self.vision_span = VISION_SPAN # degrees
self.draw_sensors = True
@@ -50,8 +49,12 @@ class Car(pygame.sprite.Sprite):
self.run = True
def reset_car_pos(self):
self.rect.center = (
75 - int(random.random()*20) - 10,
GY -50 - int(random.random()*20)-10
)
self.speed = 1
self.heading = 0
self.heading = random.random() * 20
self.heading_change = random.random() * 30
def update_sensors(self):
@@ -99,7 +102,7 @@ class Car(pygame.sprite.Sprite):
def probe_brain(self):
res = self.brain.predict(np.array(self.probes))
self.heading_change = res[0] * 10
self.heading_change = res[0] * 15
self.throttle = res[1] * 10
@@ -110,7 +113,7 @@ class Car(pygame.sprite.Sprite):
self.rect = self.image.get_rect()
self.rect.center = old_center
self.update_position()
if self.speed < 0.01 :
if self.speed < 0.01 or self.brain.fitness > CAR_MAX_FITNESS :
self.run = False
print(f'Car {id(self)} crashed')
# print(