| 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)) |
|
|