Beispiel #1
0
    parser.add_argument("-n", "--name", required=True, help="Run name")
    parser.add_argument(
        "--mode",
        default='forest',
        choices=['forest', 'double_attack'],
        help=
        "GridWorld mode, could be 'forest' or 'double_attack', default='forest'"
    )
    args = parser.parse_args()

    config = args.mode
    # tweak count of agents in this mode to simplify exploration
    if args.mode == 'double_attack':
        COUNT_TIGERS = 20
        COUNT_DEERS = 512
        config = data.config_double_attack(MAP_SIZE)

    device = torch.device("cuda" if args.cuda else "cpu")
    saves_path = os.path.join("saves", args.name)
    os.makedirs(saves_path, exist_ok=True)

    m_env = magent.GridWorld(config, map_size=MAP_SIZE)

    # two groups of animal
    deer_handle, tiger_handle = m_env.get_handles()

    def reset_env():
        m_env.reset()
        m_env.add_walls(method="random", n=MAP_SIZE * MAP_SIZE * WALLS_DENSITY)
        m_env.add_agents(deer_handle, method="random", n=COUNT_DEERS)
        m_env.add_agents(tiger_handle, method="random", n=COUNT_TIGERS)
Beispiel #2
0
                        default=50,
                        help="Count of deers, default=50")
    parser.add_argument(
        "--mode",
        default='forest',
        choices=['forest', 'double_attack'],
        help=
        "GridWorld mode, could be 'forest' or 'double_attack', default='forest'"
    )

    args = parser.parse_args()

    if args.mode == 'forest':
        config = data.config_forest(args.map_size)
    elif args.mode == 'double_attack':
        config = data.config_double_attack(args.map_size)
    else:
        config = None

    env = magent.GridWorld(config, map_size=args.map_size)
    env.set_render_dir(args.render)
    deer_handle, tiger_handle = env.get_handles()

    env.reset()
    env.add_walls(method="random",
                  n=args.map_size * args.map_size * args.walls_density)
    env.add_agents(deer_handle, method="random", n=args.deers)
    env.add_agents(tiger_handle, method="random", n=args.tigers)

    v = env.get_view_space(tiger_handle)
    v = (v[-1], ) + v[:2]