|
import numpy as np |
|
|
|
SIZE_TINY = 5 |
|
SIZE_SMALL = 10 |
|
SIZE_LARGE = 30 |
|
SIZE_XLARGE = 50 |
|
|
|
locations = [ |
|
"attic", |
|
"back_yard", |
|
"basement", |
|
"bathroom", |
|
"bedroom", |
|
"cellar", |
|
"closet", |
|
"crawlspace", |
|
"den", |
|
"dining_room", |
|
"front_yard", |
|
"garage", |
|
"garden", |
|
"hall", |
|
"hallway", |
|
"kitchen", |
|
"laundry", |
|
"living_room", |
|
"lounge", |
|
"master_bedroom", |
|
"office", |
|
"pantry", |
|
"patio", |
|
"playroom", |
|
"porch", |
|
"staircase", |
|
"study", |
|
"sunroom", |
|
"TV_room", |
|
"workshop", |
|
] |
|
|
|
clothing = [ |
|
"belt", |
|
"boots", |
|
"cap", |
|
"coat", |
|
"dress", |
|
"gloves", |
|
"hat", |
|
"jacket", |
|
"jeans", |
|
"pajamas", |
|
"pants", |
|
"raincoat", |
|
"scarf", |
|
"shirt", |
|
"shoes", |
|
"skirt", |
|
"slacks", |
|
"slippers", |
|
"socks", |
|
"stockings", |
|
"suit", |
|
"sweater", |
|
"sweatshirt", |
|
"t-shirt", |
|
"tie", |
|
"trousers", |
|
"underclothes", |
|
"underpants", |
|
"undershirt", |
|
] |
|
|
|
fruit = [ |
|
"apple", |
|
"banana", |
|
"cherry", |
|
"grapefruit", |
|
"grapes", |
|
"lemon", |
|
"lime", |
|
"melon", |
|
"orange", |
|
"peach", |
|
"pear", |
|
"persimmon", |
|
"pineapple", |
|
"plum", |
|
"strawberry", |
|
"tangerine", |
|
"watermelon", |
|
] |
|
|
|
vegetables = [ |
|
"asparagus", |
|
"beans", |
|
"broccoli", |
|
"cabbage", |
|
"carrot", |
|
"celery", |
|
"corn", |
|
"cucumber", |
|
"eggplant", |
|
"green_pepper", |
|
"lettuce", |
|
"onion", |
|
"peas", |
|
"potato", |
|
"pumpkin", |
|
"radish", |
|
"spinach", |
|
"sweet_potato", |
|
"tomato", |
|
"turnip", |
|
] |
|
|
|
objects = fruit + vegetables |
|
|
|
containers = [ |
|
"box", |
|
"pantry", |
|
"bathtub", |
|
"envelope", |
|
"drawer", |
|
"bottle", |
|
"cupboard", |
|
"basket", |
|
"crate", |
|
"suitcase", |
|
"bucket", |
|
"container", |
|
"treasure_chest", |
|
] |
|
|
|
colors = ['green', 'blue', 'red'] |
|
|
|
containers = ['_'.join([color, container]) |
|
for container in containers |
|
for color in colors] |
|
|
|
names = [ |
|
"Oliver", |
|
"Ethan", |
|
"Liam", |
|
"Benjamin", |
|
"Lucas", |
|
"Alexander", |
|
"Jacob", |
|
"Mason", |
|
"William", |
|
"Gracie", |
|
"James", |
|
"Logan", |
|
"Owen", |
|
"Noah", |
|
"Carter", |
|
"Nathan", |
|
"Jack", |
|
"Aiden", |
|
"Jackson", |
|
"Jayden", |
|
"Emma", |
|
"Olivia", |
|
"Emily", |
|
"Sophia", |
|
"Ava", |
|
"Chloe", |
|
"Charlotte", |
|
"Abigail", |
|
"Amelia", |
|
"Ella", |
|
"Hannah", |
|
"Isabella", |
|
"Aria", |
|
"Lily", |
|
"Mia", |
|
"Isla", |
|
"Avery", |
|
"Elizabeth", |
|
"Mila", |
|
"Evelyn", |
|
] |
|
|
|
assert len(locations) >= SIZE_LARGE |
|
assert len(objects) >= SIZE_LARGE |
|
assert len(containers) >= SIZE_LARGE |
|
assert len(names) >= SIZE_LARGE |
|
|
|
|
|
def write_world(filepath, locs, objs, conts, nams): |
|
|
|
with open(filepath, 'w') as f: |
|
|
|
f.write('# locations\n') |
|
|
|
for loc in locs: |
|
|
|
f.write('\n') |
|
f.write('create %s\n' % loc) |
|
f.write('set %s is_thing\n' % loc) |
|
f.write('set %s is_location\n' % loc) |
|
|
|
f.write('\n') |
|
f.write('# objects\n') |
|
|
|
for obj in objs: |
|
|
|
f.write('\n') |
|
f.write('create %s\n' % obj) |
|
f.write('set %s is_thing\n' % obj) |
|
f.write('set %s is_gettable\n' % obj) |
|
|
|
f.write('\n') |
|
f.write('# containers\n') |
|
|
|
for cont in conts: |
|
|
|
f.write('\n') |
|
f.write('create %s\n' % cont) |
|
f.write('set %s is_thing\n' % cont) |
|
f.write('set %s is_container\n' % cont) |
|
|
|
f.write('\n') |
|
f.write('# actors\n') |
|
|
|
for nam in nams: |
|
|
|
f.write('\n') |
|
f.write('create %s\n' % nam) |
|
f.write('set %s is_actor\n' % nam) |
|
f.write('set %s is_god\n' % nam) |
|
|
|
write_world('world_tiny.txt', |
|
np.random.choice(locations, SIZE_TINY, replace=False), |
|
np.random.choice(objects, SIZE_TINY, replace=False), |
|
np.random.choice(containers, SIZE_TINY, replace=False), |
|
np.random.choice(names, SIZE_TINY, replace=False)) |
|
|
|
write_world('world_small.txt', |
|
np.random.choice(locations, SIZE_SMALL, replace=False), |
|
np.random.choice(objects, SIZE_SMALL, replace=False), |
|
np.random.choice(containers, SIZE_SMALL, replace=False), |
|
np.random.choice(names, SIZE_SMALL, replace=False)) |
|
|
|
write_world('world_large.txt', |
|
np.random.choice(locations, SIZE_LARGE, replace=False), |
|
np.random.choice(objects, SIZE_LARGE, replace=False), |
|
np.random.choice(containers, SIZE_LARGE, replace=False), |
|
np.random.choice(names, SIZE_LARGE, replace=False)) |
|
|