def main(): barrier = ( (4,5),(5,5),(6,5),(4,6),(5,6),(6,6),(4,7),(5,7),(6,7), \ (14,10),(14,11),(14,12),(14,13),(14,14),(14,15),(14,16),(14,17) ) gm = gameserver(barrier=barrier) stucktime = 0 while True: printmap(gm.getmap()) if pyversion < '3': c = raw_input('What is your next move (l,r,u,d,q)? ') else: c = input('What is your next move (l,r,u,d,q)? ') if c == 'l' or c == 'r' or c == 'u' or c == 'd': gm.moverobot(c) elif c == 'q': break if gm.iscratestuck(): # Retrieve crate after xx moves if stucktime > 5: gm.retrievecrate() stucktime = 0 else: stucktime += 1
def main(scr): scr.nodelay(True) barrier = ( (4,5),(5,5),(6,5),(4,6),(5,6),(6,6),(4,7),(5,7),(6,7), \ (14,10),(14,11),(14,12),(14,13),(14,14),(14,15),(14,16),(14,17) ) gm = gameserver(barrier=barrier) stucktime = 0 d1 = gm.getdistance() cumreward = 0. discount = 0.1 while True: reward = 0 printmap(scr,gm.getmap()) c = scr.getch() if c == curses.KEY_LEFT: gm.moverobot('l') reward -= discount elif c == curses.KEY_RIGHT: gm.moverobot('r') reward -= discount elif c == curses.KEY_UP: gm.moverobot('u') reward -= discount elif c == curses.KEY_DOWN: gm.moverobot('d') reward -= discount elif c == ord('q'): break if gm.iscratestuck(): # Retrieve crate after a certain number of time steps if stucktime > 10: gm.retrievecrate() stucktime = 0 else: stucktime += 1 d2 = gm.getdistance() reward += d1 - d2 cumreward += reward scr.addstr(2,2,'Reward: {:12.2f}'.format(cumreward)) d1 = d2 scr.refresh() sleep(.1)
#! /usr/bin/env python3 # the 'artificialbrain' main directory should be in PYTHONPATH from agent import agent_heuristic as ah from environments.abrainenvironment.pushsim_simple_interface import * from gameserver import * barrier = ( (4,5),(5,5),(6,5),(4,6),(5,6),(6,6),(4,7),(5,7),(6,7), \ (14,10),(14,11),(14,12),(14,13),(14,14),(14,15),(14,16),(14,17) ) game = gameserver(barrier=barrier) iface = pushsim_simple_interface(game) agent = ah.Agent_Heuristic_Random(iface,'K.I.T.T.') #agent.run_agent(verbosity=2,delay=0.01,autostop=True) agent.run_agent(verbosity=0,autostop=True)