import sys
from random import randrange
from ale_python_interface import ALEInterface
if len(sys.argv) < 2:
print 'Usage:', sys.argv[0], 'rom_file'
sys.exit()
ale = ALEInterface()
ale.setInt('random_seed', 123)
ale.setFloat("repeat_action_probability", 0.25);
USE_SDL = True
if USE_SDL:
if sys.platform == 'darwin':
import pygame
pygame.init()
ale.setBool('sound', False) elif sys.platform.startswith('linux'):
ale.setBool('sound', True)
ale.setBool('display_screen', True)
ale.loadROM(sys.argv[1])
avail_modes = ale.getAvailableModes()
avail_diff = ale.getAvailableDifficulties()
print 'Number of available modes: ', len(avail_modes)
print 'Number of available difficulties: ', len(avail_diff)
legal_actions = ale.getLegalActionSet()
for mode in avail_modes:
for diff in avail_diff:
ale.setDifficulty(diff)
ale.setMode(mode)
ale.reset_game()
print 'Mode {0} difficulty {1}:'.format(mode, diff)
total_reward = 0
while not ale.game_over():
a = legal_actions[randrange(len(legal_actions))]
reward = ale.act(a);
total_reward += reward
print 'Episode ended with score: ', total_reward