in minihack/scripts/play.py [0:0]
def main():
parser = argparse.ArgumentParser(description="Play tool.")
parser.add_argument(
"-d",
"--debug",
action="store_true",
help="Enables debug mode, which will drop stack into "
"an ipdb shell if an exception is raised.",
)
parser.add_argument(
"-m",
"--mode",
type=str,
default="human",
choices=["human", "random"],
help="Control mode. Defaults to 'human'.",
)
parser.add_argument(
"-e",
"--env",
type=str,
default="MiniHack-Room-Random-5x5-v0",
help="Gym environment spec. Defaults to 'MiniHack-Room-Random-5x5-v0'.",
)
parser.add_argument(
"-n",
"--ngames",
type=int,
default=1,
help="Number of games to be played before exiting. "
"NetHack will auto-restart if > 1.",
)
parser.add_argument(
"--max-steps",
type=int,
default=10000,
help="Number of maximum steps per episode.",
)
parser.add_argument(
"--seeds",
default=None,
help="Seeds to send to NetHack. Can be a dict or int. "
"Defaults to None (no seeding).",
)
parser.add_argument(
"--savedir",
default="nle_data/play_data",
help="Directory path where data will be saved. "
"Defaults to 'nle_data/play_data'.",
)
parser.add_argument(
"--no-render", action="store_true", help="Disables env.render()."
)
parser.add_argument(
"--render_mode",
type=str,
default="human",
choices=["human", "full", "ansi"],
help="Render mode. Defaults to 'human'.",
)
parser.add_argument(
"--save_gif",
dest="save_gif",
action="store_true",
help="Saving a GIF replay of the evaluated episodes.",
)
parser.add_argument(
"--no-save_gif",
dest="save_gif",
action="store_false",
help="Do not save GIF.",
)
parser.set_defaults(save_gif=False)
parser.add_argument(
"--gif_path",
type=str,
default="replay.gif",
help="Where to save the produced GIF file.",
)
parser.add_argument(
"--gif_duration",
type=int,
default=300,
help="The duration of each gif image.",
)
flags = parser.parse_args()
if flags.debug:
import ipdb
cm = ipdb.launch_ipdb_on_exception
else:
cm = dummy_context
with cm():
if flags.seeds is not None:
# to handle both int and dicts
flags.seeds = ast.literal_eval(flags.seeds)
if flags.savedir == "args":
flags.savedir = "{}_{}_{}.zip".format(
time.strftime("%Y%m%d-%H%M%S"), flags.mode, flags.env
)
play(**vars(flags))