print 'Generating map', outer, '(', configurations, 'configuations )'
    sys.stdout.flush()

    world = info['map']
    rewards = info['rewards']
    terminal = info['terminal']
    instructions = info['instructions']
    values = []

    sprite = SpriteWorld(library.objects, library.background)
    sprite.makeGrid(world, args.vis_path + str(outer) + '_sprites')

    for inner in tqdm(range(configurations)):
        reward_map = rewards[inner]
        terminal_map = terminal[inner]
        instr = instructions[inner]

        mdp = MDP(world, reward_map, terminal_map)
        vi = ValueIteration(mdp)

        values_list, policy = vi.iterate()
        value_map = mdp.representValues(values_list)
        values.append(value_map)

        # visualize_values(mdp, values_list, policy, args.vis_path + str(outer) + '_' + str(inner) + '_values', title=instr)

    info['values'] = values
    filename = os.path.join(args.save_path, str(outer) + '.p')
    pickle.dump(info, open(filename, 'wb'))