it s alive, need to smooth fitness
This commit is contained in:
13
car.py
13
car.py
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user