Compare commits

..

No commits in common. "bb006eceb0851f1d7c5ea0c5b4a7eba1b7bf8429" and "2132deedcd835fa1351115619ba0ecd82a77e8ba" have entirely different histories.

3 changed files with 9 additions and 35 deletions

View File

@ -166,7 +166,6 @@ class ColumbusEnv(gym.Env):
def reset(self):
pygame.init()
self._seed(self.env_seed)
self._rendered = False
self.inp = (0.5, 0.5)
self.keypress_timeout = 0
@ -179,6 +178,7 @@ class ColumbusEnv(gym.Env):
self.agent = entities.Agent(self)
self.setup()
self.entities.append(self.agent) # add it last, will be drawn on top
self._seed(self.env_seed)
self.observable._entities = None
return self.observable.get_observation()
@ -206,8 +206,6 @@ class ColumbusEnv(gym.Env):
self.keypress_timeout = int(self.fps/2)
if keys[pygame.K_m]:
self.draw_entities = not self.draw_entities
elif keys[pygame.K_r]:
self.reset()
else:
self.keypress_timeout = 0
else:
@ -363,7 +361,7 @@ class ColumbusJustState(ColumbusEnv):
class ColumbusStateWithBarriers(ColumbusEnv):
def __init__(self, observable=observables.StateObservable(coordsAgent=True, speedAgent=False, coordsRelativeToAgent=False, coordsRewards=True, rewardsWhitelist=None, coordsEnemys=True, enemysWhitelist=None, enemysNoBarriers=True, rewardsTimeouts=False, include_rand=True), fps=30, env_seed=3.141):
def __init__(self, observable=observables.StateObservable(coordsAgent=True, speedAgent=False, coordsRelativeToAgent=False, coordsRewards=True, rewardsWhitelist=None, coordsEnemys=True, enemysWhitelist=None, enemysNoBarriers=True, rewardsTimeouts=False, include_rand=True), fps=30, env_seed=3.1):
super(ColumbusStateWithBarriers, self).__init__(
observable=observable, fps=fps, env_seed=env_seed)
self.aux_reward_max = 0.01
@ -375,9 +373,9 @@ class ColumbusStateWithBarriers(ColumbusEnv):
enemy = entities.CircleBarrier(self)
enemy.radius = self.random()*25+75
self.entities.append(enemy)
for i in range(1):
for i in range(3):
enemy = entities.FlyingChaser(self)
enemy.chase_acc = 0.55 # *0.6+0.5
enemy.chase_acc = self.random()*0.4+0.3 # *0.6+0.5
self.entities.append(enemy)
for i in range(1):
reward = entities.TeleportingReward(self)

View File

@ -1,5 +1,5 @@
from time import sleep, time
import env
from env import *
import numpy as np
import pygame
@ -7,37 +7,13 @@ from observables import Observable, CnnObservable
def main():
Env = chooseEnv()
env = Env(fps=30)
#env = ColumbusTest3_1(fps=30)
env = ColumbusStateWithBarriers(fps=30)
env.start_pos = [0.6, 0.3]
playEnv(env)
env.close()
def getAvaibleEnvs():
# kinda hacky... idk
strs = dir(env)
for s in strs:
if s.startswith('Columbus') and s != 'ColumbusEnv':
yield getattr(env, s)
def chooseEnv():
envs = list(getAvaibleEnvs())
for i, Env in enumerate(envs):
print('['+str(i)+'] '+Env.__name__)
while True:
inp = input('[#> ')
try:
i = int(inp)
except:
print('[!] You have to enter the number...')
if i < 0 or i >= len(envs):
print(
'[!] That is a number, but not one that makes sense in this context...')
return envs[i]
def playEnv(env):
env.reset()
done = False

View File

@ -58,10 +58,10 @@ class CnnObservable(Observable):
snap = self.env.surface.subsurface(rect)
self.snap = pygame.Surface((self.in_width, self.in_height))
if self.env.void_barrier:
col = (255, 0, 0)
col = (223, 0, 0)
else:
col = (50, 50, 50)
pygame.draw.rect(self.snap, col,
pygame.draw.rect(self.snap, (50, 50, 50),
pygame.Rect(0, 0, self.in_width, self.in_height))
self.snap.blit(snap, (cx - x, cy - y))
self.obs = self.scaler(