comit before rollback
This commit is contained in:
26
car.py
26
car.py
@@ -49,7 +49,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
self.left_sensor = None
|
self.left_sensor = None
|
||||||
self.right_sensor = None
|
self.right_sensor = None
|
||||||
self.sensors = [self.left_sensor, self.center_sensor, self.right_sensor]
|
self.sensors = [self.left_sensor, self.center_sensor, self.right_sensor]
|
||||||
self.probes = [self.vision_length] * 3
|
self.probes = [1] * 3
|
||||||
|
|
||||||
if brain:
|
if brain:
|
||||||
self.brain = brain
|
self.brain = brain
|
||||||
@@ -69,7 +69,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
75 - int(random.random() * 20) - 10,
|
75 - int(random.random() * 20) - 10,
|
||||||
GY - 50 - int(random.random() * 20) - 10,
|
GY - 50 - int(random.random() * 20) - 10,
|
||||||
)
|
)
|
||||||
self.speed = 1
|
self.speed = 10
|
||||||
self.heading = random.random() * 20
|
self.heading = random.random() * 20
|
||||||
self.heading_change = random.random() * 30
|
self.heading_change = random.random() * 30
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ class Car(pygame.sprite.Sprite):
|
|||||||
|
|
||||||
def probe_lines_proximity(self, lines):
|
def probe_lines_proximity(self, lines):
|
||||||
# print(self.center_sensor, lines[0])
|
# print(self.center_sensor, lines[0])
|
||||||
self.probes = [self.vision_length * 2] * 3
|
self.probes = [1] * 3
|
||||||
for idx, sensor in enumerate(
|
for idx, sensor in enumerate(
|
||||||
[self.left_sensor, self.center_sensor, self.right_sensor]
|
[self.left_sensor, self.center_sensor, self.right_sensor]
|
||||||
):
|
):
|
||||||
@@ -126,22 +126,20 @@ class Car(pygame.sprite.Sprite):
|
|||||||
if ip:
|
if ip:
|
||||||
if self.draw_sensors:
|
if self.draw_sensors:
|
||||||
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 = distance(ip, self.rect.center)
|
||||||
self.probes[idx] = min(dist, self.probes[idx])
|
self.probes[idx] = min(dist / self.vision_length, self.probes[idx])
|
||||||
if dist < 1 * self.speed or self.speed < 0.01:
|
if dist < 5 * self.speed or self.speed < 1:
|
||||||
self.run = False
|
self.run = False
|
||||||
self.speed = 0
|
self.speed = 0
|
||||||
# print(f'Car {id(self)} crashed')
|
# print(f'Car {id(self)} crashed')
|
||||||
return
|
return
|
||||||
|
|
||||||
else:
|
|
||||||
self.probes[idx] = self.vision_length * 1.1
|
|
||||||
# print(self.probes)
|
# print(self.probes)
|
||||||
|
|
||||||
def probe_brain(self):
|
def probe_brain(self):
|
||||||
res = self.brain.predict(np.array(self.probes + [self.speed]))
|
res = self.brain.predict(np.array(self.probes + [self.speed]))
|
||||||
self.heading_change = res[0] * 30
|
self.heading_change = res[0]
|
||||||
self.throttle = res[1] * 5
|
self.throttle = res[1]
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
# rotate
|
# rotate
|
||||||
@@ -172,14 +170,10 @@ class Car(pygame.sprite.Sprite):
|
|||||||
self.heading += self.heading_change * CAR_STEERING_FACTOR / self.speed
|
self.heading += self.heading_change * CAR_STEERING_FACTOR / self.speed
|
||||||
self.heading = self.heading % 360
|
self.heading = self.heading % 360
|
||||||
|
|
||||||
self.speed += self.throttle # THROTTLE_POWER
|
self.speed += self.throttle # * THROTTLE_POWER
|
||||||
# if self.throttle :
|
|
||||||
# self.speed += self.throttle #THROTTLE_POWER
|
|
||||||
# else :
|
|
||||||
# self.speed -= self.throttle #THROTTLE_POWER
|
|
||||||
|
|
||||||
self.speed = max(0, self.speed)
|
self.speed = max(0, self.speed)
|
||||||
self.speed = min(self.speed, CAR_MAX_SPEED)
|
self.speed = min(self.speed, CAR_MAX_SPEED)
|
||||||
|
print("speed", self.speed)
|
||||||
|
|
||||||
super().update()
|
super().update()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user