├── .gitignore ├── .replit ├── share └── readme.jpg ├── README.md ├── banner.dat ├── gen_game.py ├── printer.py ├── royal_rainbow.dat ├── main.py ├── levels.py ├── play.py ├── test_level.json ├── starter_house.json └── data.json /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | 3 | -------------------------------------------------------------------------------- /.replit: -------------------------------------------------------------------------------- 1 | language="python3" 2 | run="python main.py" 3 | -------------------------------------------------------------------------------- /share/readme.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwartzCr/katamari/HEAD/share/readme.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Katamari Adventure 2 | A text adventure de-make of Katamari Damacy inspired by [this post](http://katamari-damacy.livejournal.com/262676.html) 3 | 4 | [![Run on Repl.it](https://repl.it/badge/github/SwartzCr/katamari)](https://repl.it/github/SwartzCr/katamari) 5 | 6 | # Play! 7 | To play simply clone the directory and run `python main.py` 8 | Now with tab completion! (thanks @rolandshoemaker) 9 | 10 | # Contribute! 11 | There are a bunch of issues open - feel free to submit PRs 12 | 13 | ![](https://raw.githubusercontent.com/SwartzCr/katamari/master/share/readme.jpg) 14 | -------------------------------------------------------------------------------- /banner.dat: -------------------------------------------------------------------------------- 1 | {.RED}______ __ _____ _____{.ENDC} 2 | {.RED}___ //_/_____ __ /______ _______ _________ __________(_){.ENDC} 3 | {.YELLOW}__ ,< _ __ `/ __/ __ `/_ __ `__ \ __ `/_ ___/_ /{.ENDC} 4 | {.YELLOW}_ /| | / /_/ // /_ / /_/ /_ / / / / / /_/ /_ / _ /{.ENDC} 5 | {.GREEN}/_/ |_| \__,_/ \__/ \__,_/ /_/ /_/ /_/\__,_/ /_/ /_/{.ENDC} 6 | {.GREEN}________{.ENDC} 7 | {.BLUE}___ __ \_____ _______ _________ ___________ __{.ENDC} 8 | {.BLUE}__ / / / __ `/_ __ `__ \ __ `/ ___/_ / / /{.ENDC} 9 | {.PURPLE}_ /_/ // /_/ /_ / / / / / /_/ // /__ _ /_/ /{.ENDC} 10 | {.PURPLE}/_____/ \__,_/ /_/ /_/ /_/\__,_/ \___/ _\__, /{.ENDC} 11 | {.PURPLE} /____/{.ENDC} 12 | -------------------------------------------------------------------------------- /gen_game.py: -------------------------------------------------------------------------------- 1 | import json 2 | import levels 3 | 4 | def write_level(level, level_name): 5 | file_name = level_name + ".json" 6 | with open(file_name, 'w') as f: 7 | json.dump(level, f, sort_keys=True, indent=2) 8 | 9 | def save_game(data): 10 | with open("data.json", 'w') as f: 11 | json.dump(data, f, sort_keys=True, indent=2) 12 | 13 | def construct_level(level): 14 | grid = [] 15 | dimensions = level["dimensions"] 16 | for i in range(dimensions[1]): 17 | row = [] 18 | for i in range(dimensions[0]): 19 | row.append([]) 20 | grid.append(row) 21 | for item_tup in level["items"]: 22 | item, loc = item_tup 23 | grid[loc[0]][loc[1]].append(item) 24 | level["grid"] = grid 25 | write_level(level, level["name"]) 26 | return level 27 | 28 | def create_data(): 29 | data = {"playing": False, 30 | "playing_level": False, 31 | "level": {}, 32 | "progress": 1, 33 | "katamari": {}, 34 | "levels": []} 35 | for level in levels.levels: 36 | data["levels"].append(construct_level(level)) 37 | save_game(data) 38 | -------------------------------------------------------------------------------- /printer.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import os 3 | 4 | class PColors: 5 | """Define some colors up in this piece.""" 6 | 7 | RED = '\033[31m' 8 | YELLOW = '\033[33m' 9 | GREEN = '\033[32m' 10 | BLUE = '\033[34m' 11 | PURPLE = '\033[35m' 12 | ENDC = '\033[0m' 13 | 14 | def disable(self): 15 | """Disable colorization and revert to plain text.""" 16 | self.RED = '' 17 | self.YELLOW = '' 18 | self.GREEN = '' 19 | self.BLUE = '' 20 | self.PURPLE = '' 21 | self.ENDC = '' 22 | 23 | def banner(): 24 | """Welcome banner.""" 25 | banner_file = os.getcwd() + '/banner.dat' 26 | with open(banner_file, 'r') as b: 27 | for l in b: 28 | print(l.format(PColors, PColors), end='') 29 | print('\n') 30 | 31 | def prompt(actions): 32 | acts = ", ".join(actions) 33 | print("I'm sorry I didn't understand that, valid actions are: {0}".format(acts)) 34 | 35 | def pickup(item): 36 | print("Nice! You now have a {0} stuck to your katamari!".format(item)) 37 | 38 | def fail(item): 39 | print("You slam your katamari into the {0} and bounce right back off losing some items! Oh no!".format(item)) 40 | 41 | def royal_rainbow(): 42 | """Royal Rainbow.""" 43 | rainbow_file = os.getcwd() + '/royal_rainbow.dat' 44 | with open(rainbow_file, 'r') as r: 45 | for l in r: 46 | print(l.format(PColors, PColors, PColors, PColors, PColors, PColors, PColors, PColors, PColors, PColors, PColors, PColors), end='') 47 | print('\n') 48 | 49 | def bid_adieu(): 50 | print("sorry to see you go, play again soon!") 51 | 52 | def welcome(): 53 | banner() 54 | print("Na na nanana na na Katamari Damacy!") 55 | 56 | def move(direction): 57 | print("You push hard and roll your katamari {0}".format(direction)) 58 | 59 | def status(size): 60 | print("Your katamari is {0}cm".format(str(size))) 61 | 62 | def lose(item): 63 | print("Oh No! A {0} flies off of your katamari!".format(item)) 64 | 65 | def welcome_level(level): 66 | print("Welcome to {0}! You have {1} minutes to get your katamari from {2}cm to {3}cm, better hurry!".format(level["name"], level["time"]/60, level["katamari"], level["goal"])) 67 | 68 | def minute_warning(): 69 | print("Only one minute left! Better hurry!") 70 | 71 | def times_up(): 72 | print("That's all the time you have, time to see how you did") 73 | 74 | def win(): 75 | print("My what a beautiful katamari! I am very pleased with you") 76 | 77 | def failure(): 78 | print("NOT BIG ENOUGH! I AM VERY DISAPPOINTED") 79 | 80 | def final_size(size): 81 | print("Your final katamari size is {0}cm".format(str(size))) 82 | -------------------------------------------------------------------------------- /royal_rainbow.dat: -------------------------------------------------------------------------------- 1 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}R{.ENDC}{.GREEN}OYAL RAIN{.ENDC}{.BLUE}BOW{.ENDC}{.ENDC}{.ENDC} 2 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RR{.ENDC}{.GREEN}OYAL RAIN{.ENDC}{.BLUE}BOWW{.ENDC}{.ENDC}{.ENDC} 3 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RRO{.ENDC}{.GREEN}OYAL RAIN{.ENDC}{.BLUE}BOOWW{.ENDC}{.ENDC}{.ENDC} 4 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RROO{.ENDC}{.GREEN}YYAL RAIN{.ENDC}{.BLUE}BBOOWW{.ENDC}{.PURPLE}{.ENDC} 5 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RROOY{.ENDC}{.GREEN}YAAL RAIN{.ENDC}{.BLUE}NBBOOWW{.ENDC}{.ENDC}{.ENDC} 6 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RROOYY{.ENDC}{.GREEN}AALL RAII{.ENDC}{.BLUE}NNBBOOWW{.ENDC}{.ENDC}{.ENDC} 7 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RRROOYY{.ENDC}{.GREEN}AALL RAAI{.ENDC}{.BLUE}INNBBOOWW{.ENDC}{.PURPLE}{.ENDC} 8 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW} RRROOOYY{.ENDC}{.GREEN}AALL RRAA{.ENDC}{.BLUE}IINNBBOOW{.ENDC}{.PURPLE}W{.ENDC} 9 | {.ENDC}{.ENDC}{.RED}{.ENDC}{.YELLOW}RRROOOYYY{.ENDC}{.GREEN}AALL RRAA{.ENDC}{.BLUE}IINNBBOOW{.ENDC}{.PURPLE}WW{.ENDC} 10 | {.ENDC}{.ENDC}{.RED}R{.ENDC}{.YELLOW}RROOOYYYA{.ENDC}{.GREEN}AALL RRAA{.ENDC}{.BLUE}IINNBBOOO{.ENDC}{.PURPLE}WWW{.ENDC} 11 | {.ENDC}{.ENDC}{.RED}RR{.ENDC}{.YELLOW}ROOOYYYAA{.ENDC}{.GREEN}ALLL RRAA{.ENDC}{.BLUE}IINNBBBOO{.ENDC}{.PURPLE}OWWW{.ENDC} 12 | {.ENDC}{.ENDC}{.RED}RRR{.ENDC}{.YELLOW}ROOOYYYAA{.ENDC}{.GREEN}ALLL RRAA{.ENDC}{.BLUE}IINNNBBBO{.ENDC}{.PURPLE}OOWWW{.ENDC} 13 | {.ENDC}{.ENDC}{.RED}RRRR{.ENDC}{.YELLOW}OOOOYYYAA{.ENDC}{.GREEN}ALLL RRAA{.ENDC}{.BLUE}IIINNNBBB{.ENDC}{.PURPLE}OOOWWW{.ENDC} 14 | {.ENDC}{.ENDC}{.RED}RRRRO{.ENDC}{.YELLOW}OOOYYYYAA{.ENDC}{.GREEN}ALLL RRAA{.ENDC}{.BLUE}AIIINNNBB{.ENDC}{.PURPLE}BOOOWWW{.ENDC} 15 | {.ENDC}{.ENDC}{.RED}RRRROO{.ENDC}{.YELLOW}OOYYYYAAA{.ENDC}{.GREEN}ALLL RRRA{.ENDC}{.BLUE}AAIIINNNB{.ENDC}{.PURPLE}BBOOOWWW{.ENDC} 16 | {.ENDC}{.ENDC}{.RED}RRRROOO{.ENDC}{.YELLOW}OYYYYAAAA{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAIIINNNB{.ENDC}{.PURPLE}BBOOOWWWW{.ENDC} 17 | {.ENDC}{.ENDC}{.RED}RRRRROOO{.ENDC}{.YELLOW}OYYYYAAAA{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAIIINNNB{.ENDC}{.PURPLE}BBOOOOWWWW{.ENDC} 18 | {.ENDC}{.ENDC}{.RED}RRRRROOOO{.ENDC}{.YELLOW}OYYYYAAAA{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAIIINNNB{.ENDC}{.PURPLE}BBBOOOOWWWW{.ENDC} 19 | {.ENDC}{.ENDC}{.RED}RRRRROOOOO{.ENDC}{.YELLOW}YYYYYAAAA{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAIIINNNN{.ENDC}{.PURPLE}BBBBOOOOWWWW{.ENDC} 20 | {.ENDC}{.ENDC}{.RED}RRRRROOOOOY{.ENDC}{.YELLOW}YYYYAAAAA{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAIIIINNN{.ENDC}{.PURPLE}NBBBBOOOOWWWW{.ENDC} 21 | {.ENDC}{.ENDC}{.RED}RRRRROOOOOYY{.ENDC}{.YELLOW}YYYAAAAAL{.ENDC}{.GREEN}LLLL RRRA{.ENDC}{.BLUE}AAAIIIINN{.ENDC}{.PURPLE}NNBBBBOOOOWWWW{.ENDC} 22 | {.RED} ___ _____ __{.ENDC}{.YELLOW}_ _{.ENDC} {.GREEN}___ _{.ENDC} {.BLUE}___ _ _ {.ENDC}{.PURPLE}___ _____ __{.ENDC} 23 | {.RED}| _ \/ _ \ \ / /{.ENDC}{.YELLOW}_\ | |{.ENDC} {.GREEN}| _ \ /_\{.ENDC} {.BLUE}|_ _| \| |{.ENDC}{.PURPLE} _ )/ _ \ \ / /{.ENDC} 24 | {.RED}| / (_) \ V /{.ENDC}{.YELLOW} _ \| |__{.ENDC} {.GREEN}| / / _ \{.ENDC} {.BLUE}| || .` |{.ENDC}{.PURPLE} _ \ (_) \ \/\/ /{.ENDC} 25 | {.RED}|_|_\\___/ |_/{.ENDC}{.YELLOW}_/ \_\____|{.ENDC} {.GREEN}|_|_\/_/ \_\{.ENDC}{.BLUE}___|_|\_|{.ENDC}{.PURPLE}___/\___/ \_/\_/{.ENDC} -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | 2 | # each level is a grid of grids, maybe 3d 3 | 4 | # you are a size, in each area there are objects that have size, if you're large enough you absorb them 5 | 6 | # NSEW looks that direction 1-2 squares and describes objects 7 | 8 | # maybe there are also events? Like steep slopes or things that bump you? 9 | 10 | # small objects can be clustered 11 | 12 | # you can enter spin mode and move multiple squares? 13 | 14 | # time limit?? 15 | 16 | # royal rainbow ascii art to playo 17 | import gen_game 18 | import printer 19 | import play 20 | import json 21 | import readline 22 | 23 | try: 24 | input = raw_input 25 | except NameError: 26 | pass 27 | 28 | def load_game(): 29 | with open("data.json", 'r') as f: 30 | data = json.load(f) 31 | return data 32 | 33 | def load_level(level): 34 | file_name = level + ".json" 35 | with open(file_name, 'r') as f: 36 | out = json.load(f) 37 | return out 38 | 39 | class actionCompleter(object): 40 | 41 | def __init__(self): 42 | return 43 | 44 | def set_actions(self, actions): 45 | self.actions = sorted(actions) 46 | 47 | def complete(self, action, index): 48 | buf = readline.get_line_buffer() 49 | if index == 0: 50 | if buf != "": 51 | self.matches = [a for a in self.actions if a.startswith(buf)] 52 | else: 53 | self.matches = self.actions[:] 54 | response = self.matches[index] 55 | if response: 56 | if action != buf: 57 | response = response[len(buf)-len(action):] 58 | return response 59 | 60 | def try_level(data): 61 | levels = [level for level in data["levels"] if level["number"] <= data["progress"]] 62 | names = [level["name"] for level in levels] 63 | data["completer"].set_actions(names) 64 | print("available levels are: {0}".format(", ".join(names))) 65 | inp = input("which level would you like to play? ").lower().strip() 66 | if inp in names: 67 | level = [level for level in levels if level["name"] == inp][0] 68 | data["level"] = load_level(inp) 69 | print("Transporting you to {0}".format(inp)) 70 | printer.royal_rainbow() 71 | play.play_level(level, data) 72 | else: 73 | print("I'm sorry that's not an available level") 74 | 75 | def progress(data): 76 | print("You're on level {0}, keep going! You can do it!".format(data["progress"])) 77 | 78 | def save(data): 79 | del data["completer"] 80 | gen_game.save_game(data) 81 | 82 | def quit(data): 83 | data["playing"] = False 84 | save(data) 85 | printer.bid_adieu() 86 | 87 | def main(): 88 | data = load_game() 89 | data["playing"] = True 90 | printer.welcome() 91 | data["completer"] = actionCompleter() 92 | readline.set_completer(data["completer"].complete) 93 | readline.parse_and_bind('tab: complete') 94 | actions = {"play": try_level, 95 | "progress": progress, 96 | "save": save, 97 | "quit": quit} 98 | print("Time to start playing, what would you like to do? Valid commands are {0}".format(", ".join(actions.keys()))) 99 | while data["playing"]: 100 | data["completer"].set_actions(actions.keys()) 101 | try: 102 | inp = input("> ").lower().strip() 103 | if inp in actions.keys(): 104 | actions[inp](data) 105 | continue 106 | else: 107 | printer.prompt(actions.keys()) 108 | except EOFError: 109 | quit(data) 110 | 111 | 112 | if __name__ == "__main__": 113 | main() 114 | 115 | -------------------------------------------------------------------------------- /levels.py: -------------------------------------------------------------------------------- 1 | 2 | 3 | banana = {"name": "banana", 4 | "size": 10.0, 5 | "description": "You don't need to be a monkey to eat this."} 6 | eraser = {"name": "eraser", 7 | "size": 8.0, 8 | "description": "Rub and erase. But it makes a mess."} 9 | strawberry = {"name": "strawberry", 10 | "size": 10.8, 11 | "description": "Don't try to eat the whole thing in one bite!"} 12 | wcrayon = {"name": "white crayon", 13 | "size": 5.9, 14 | "description": "A white crayon. Using this on white paper is pointless"} 15 | bcrayon = {"name": "black crayon", 16 | "size": 3.7, 17 | "description": "A black crayon. Good for drawing the night sky."} 18 | rcrayon = {"name": "red crayon", 19 | "size": 4.2, 20 | "description": "A red crayon. This is not lipstick. Girls, be careful."} 21 | coin = {"name": "5yen coin", 22 | "size": 2.8, 23 | "description": "People believe this will bring them good luck."} 24 | hairpin = {"name": "hairpin", 25 | "size": 4.5, 26 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head."} 27 | pachinko = {"name": "pachinko ball", 28 | "size": 4.7, 29 | "description": "These usually disappear very quickly when playing Pachinko..."} 30 | mahjong = {"name": "mah-jong tile", 31 | "size": 5.1, 32 | "description": "This is from a game where you do a lot of loud shuffling"} 33 | match = {"name": "match", 34 | "size": 1.6, 35 | "description": "Some people are so skilful that they can build a small house with this."} 36 | frog = {"name": "tree frog", 37 | "size": 7.4, 38 | "description": "A little frog. When it was young, it didn't have arms."} 39 | screw = {"name": "short screw", 40 | "size": 2.5, 41 | "description": "You turn this thing, and it will hold other things."} 42 | 43 | test_level = {"dimensions": (6, 6), 44 | "name": "test_level", 45 | "number": 0, 46 | "status": "unbeaten", 47 | "location": (3, 3), 48 | "time": 3600, 49 | "goal": 12, 50 | "katamari": 10, 51 | "items" : [(banana, (2,2)), 52 | (match, (3, 3)), 53 | (match, (3, 3)), 54 | (match, (3, 3)), 55 | (coin, (2,2)), 56 | (coin, (2,1)), 57 | (coin, (2,0)), 58 | (coin, (1,2)), 59 | (wcrayon, (3,4)), 60 | (rcrayon, (4,4)), 61 | (rcrayon, (4,4)), 62 | (rcrayon, (4,3)), 63 | (hairpin, (1,1)), 64 | (hairpin, (1,2)), 65 | (hairpin, (1,3)), 66 | (pachinko, (3,3)), 67 | (pachinko, (3,3)), 68 | (pachinko, (3,3)), 69 | (eraser, (3,3))]} 70 | 71 | starter_house = {"dimensions": (6, 6), 72 | "name": "starter_house", 73 | "number": 1, 74 | "status": "unbeaten", 75 | "location": (4, 4), 76 | "time": 120, 77 | "goal": 15, 78 | "katamari": 10, 79 | "items" : [(banana, (2,2)), 80 | (wcrayon, (0,0)), 81 | (bcrayon, (0,0)), 82 | (bcrayon, (0,1)), 83 | (bcrayon, (0,1)), 84 | (bcrayon, (0,2)), 85 | (eraser, (0,2)), 86 | (eraser, (0,3)), 87 | (wcrayon, (0,4)), 88 | (wcrayon, (0,4)), 89 | (hairpin, (0,5)), 90 | (hairpin, (0,5)), 91 | (bcrayon, (1,0)), 92 | (hairpin, (1,1)), 93 | (hairpin, (1,1)), 94 | (hairpin, (1,2)), 95 | (coin, (1,2)), 96 | (coin, (1,2)), 97 | (bcrayon, (1,3)), 98 | (hairpin, (1,3)), 99 | (bcrayon, (1,4)), 100 | (bcrayon, (1,4)), 101 | (bcrayon, (1,4)), 102 | (coin, (1,5)), 103 | (coin, (2,0)), 104 | (coin, (2,1)), 105 | (coin, (2,2)), 106 | (coin, (2,2)), 107 | (coin, (2,3)), 108 | (coin, (2,3)), 109 | (strawberry, (2,3)), 110 | (bcrayon, (2,4)), 111 | (mahjong, (2,5)), 112 | (mahjong, (2,5)), 113 | (mahjong, (2,5)), 114 | (match, (3, 0)), 115 | (bcrayon, (3,1)), 116 | (match, (3, 2)), 117 | (match, (3, 3)), 118 | (match, (3, 3)), 119 | (pachinko, (3,2)), 120 | (pachinko, (3,2)), 121 | (pachinko, (3,2)), 122 | (pachinko, (3,3)), 123 | (pachinko, (3,3)), 124 | (pachinko, (3,3)), 125 | (wcrayon, (3,4)), 126 | (rcrayon, (3,4)), 127 | (wcrayon, (3,5)), 128 | (wcrayon, (3,5)), 129 | (rcrayon, (4,0)), 130 | (rcrayon, (4,0)), 131 | (bcrayon, (4,1)), 132 | (bcrayon, (4,1)), 133 | (bcrayon, (4,2)), 134 | (bcrayon, (4,2)), 135 | (bcrayon, (4,2)), 136 | (rcrayon, (4,3)), 137 | (rcrayon, (4,3)), 138 | (strawberry, (4,3)), 139 | (frog, (4,4)), 140 | (mahjong, (4,4)), 141 | (bcrayon, (4,4)), 142 | (frog, (4,4)), 143 | (frog, (4,5)), 144 | (rcrayon, (5,0)), 145 | (wcrayon, (5,0)), 146 | (bcrayon, (5,1)), 147 | (rcrayon, (5,1)), 148 | (bcrayon, (5,2)), 149 | (bcrayon, (5,2)), 150 | (match, (5, 3)), 151 | (match, (5, 3)), 152 | (screw, (5,5)), 153 | (bcrayon, (5,4)), 154 | (screw, (5,5)), 155 | (screw, (5,5)), 156 | (eraser, (3,3))]} 157 | 158 | levels = [test_level, starter_house] 159 | -------------------------------------------------------------------------------- /play.py: -------------------------------------------------------------------------------- 1 | import printer 2 | import random 3 | 4 | try: 5 | input = raw_input 6 | except NameError: 7 | pass 8 | 9 | def play_level(level, data): 10 | data["katamari"] = {"size": level["katamari"], 11 | "items": []} 12 | data["playing_level"] = True 13 | data["level"] = level 14 | actions = {"north": north, 15 | "south": south, 16 | "east": east, 17 | "west": west, 18 | "look": look, 19 | "time left": time, 20 | "roll up": roll, 21 | "quit": quit} 22 | alt_actions = {"n": north, 23 | "s": south, 24 | "e": east, 25 | "w": west, 26 | "roll": roll, 27 | "pick": roll, 28 | "pick up": roll, 29 | "time": time, 30 | "t": time, 31 | "q": quit, 32 | "r": roll, 33 | "l": look, 34 | "examine": look} 35 | printer.welcome_level(level) 36 | while data["playing_level"]: 37 | data["completer"].set_actions(actions.keys()) 38 | inp = input("> ").lower().strip() 39 | if inp in actions.keys(): 40 | actions[inp](data) 41 | continue 42 | elif inp in alt_actions.keys(): 43 | alt_actions[inp](data) 44 | continue 45 | else: 46 | printer.prompt(actions.keys()) 47 | 48 | def quit(data): 49 | announce_win(data) 50 | print("exiting level") 51 | printer.royal_rainbow() 52 | data["playing_level"] = False 53 | data["level"] = {} 54 | data["katamari"] = {} 55 | 56 | def tick_time(data): 57 | data["level"]["time"] -= 1 58 | if data["level"]["time"] == 60: 59 | printer.minute_warning() 60 | elif data["level"]["time"] == 0: 61 | printer.times_up() 62 | quit(data) 63 | 64 | def announce_win(data): 65 | size = recalc_katamari(data) 66 | printer.final_size(size) 67 | if check_win(data): 68 | printer.win() 69 | if data["progress"] == data["level"]["number"]: 70 | data["progress"] += 1 71 | else: 72 | printer.failure() 73 | 74 | def check_win(data): 75 | size = recalc_katamari(data) 76 | if size > data["level"]["goal"]: 77 | return True 78 | else: 79 | return False 80 | 81 | 82 | def move_to(place, data): 83 | katamari = data["katamari"] 84 | if in_bounds(place, data): 85 | data["level"]["location"] = place 86 | look_at((0, 0), data) 87 | tick_time(data) 88 | else: 89 | print("Ahh but you can't move there! Sorry, that's not in bounds") 90 | 91 | def time(data): 92 | time_left = data["level"]["time"] 93 | goal = data["level"]["goal"] 94 | if check_win(data): 95 | print("You're over your goal of {0}cm, phew! But you still have {1}m{2}s to make your Katamari as big as possible! Get to it!".format(goal, time_left/60, time_left%60)) 96 | else: 97 | print("You have {0}m{1}s left to get your katamari up to {2}cm, better hurry!".format(time_left/60, time_left%60, goal)) 98 | 99 | def roll(data): 100 | place = data["level"]["location"] 101 | items = data["level"]["grid"][place[1]][place[0]] 102 | item_names = [item["name"].lower() for item in items] 103 | data["completer"].set_actions(item_names) 104 | to_roll = input("Roll what? ").lower().strip() 105 | targets = [item for item in items if item["name"].lower() == to_roll] 106 | if len(targets) > 0: 107 | item = targets[0] 108 | if item["size"] <= recalc_katamari(data) / 2.0: 109 | items.remove(item) 110 | data["katamari"]["items"].append(item) 111 | printer.pickup(item["name"]) 112 | printer.status(recalc_katamari(data)) 113 | else: 114 | printer.fail(item["name"]) 115 | smash_katamari(data) 116 | tick_time(data) 117 | else: 118 | print("I'm sorry, I don't see that item here") 119 | 120 | def recalc_katamari(data): 121 | katamari = data["katamari"] 122 | sizes = [(4.19 * (item["size"]/2.0)**3) for item in katamari["items"]] 123 | sizes.append((4.1887 * (data["level"]["katamari"]/2.0) ** 3)) 124 | volume = sum(sizes) 125 | size = ((volume / 4.1887) ** (1.0/3.0))*2 126 | return size 127 | 128 | def smash_katamari(data): 129 | katamari = data["katamari"] 130 | for i in range(random.randint(0,min(3, len(katamari["items"])))): 131 | item = random.choice(katamari["items"]) 132 | printer.lose(item["name"]) 133 | katamari["items"].remove(item) 134 | loc = data["level"]["location"] 135 | data["level"]["grid"][loc[1]][loc[0]].append(item) 136 | printer.status(recalc_katamari(data)) 137 | 138 | def north(data): 139 | printer.move("north") 140 | loc = data["level"]["location"] 141 | place = (loc[0], loc[1] - 1) 142 | move_to(place, data) 143 | 144 | def south(data): 145 | printer.move("south") 146 | loc = data["level"]["location"] 147 | place = (loc[0], loc[1] + 1) 148 | move_to(place, data) 149 | 150 | def east(data): 151 | printer.move("east") 152 | loc = data["level"]["location"] 153 | place = (loc[0] + 1, loc[1]) 154 | move_to(place, data) 155 | 156 | def west(data): 157 | printer.move("west") 158 | loc = data["level"]["location"] 159 | place = (loc[0] - 1, loc[1]) 160 | move_to(place, data) 161 | 162 | def desc_katamari(data): 163 | katamari = data["katamari"] 164 | print("What a beautiful katamari!") 165 | print("Your katamari is {0}cm".format(str(recalc_katamari(data)))) 166 | if len(katamari["items"]): 167 | print("Your katamari is made up of {0}".format(", ".join([item["name"] for item in katamari["items"]]))) 168 | else: 169 | print("Your katamari is totally empty! It's a blank slate!") 170 | goal = data["level"]["goal"] 171 | if katamari["size"] < goal: 172 | print("Your katamari needs to be {0}cm before the end of the round, better hurry!".format(goal)) 173 | print("Move with N, S, E, W, and use Roll Up to add items to your Katamari") 174 | 175 | def look(data): 176 | options = {"n": (0, -1), 177 | "s": (0, 1), 178 | "e": (1, 0), 179 | "w": (-1, 0), 180 | "here": (0,0)} 181 | alt_options = {"north": (0, -1), 182 | "south": (0, 1), 183 | "east": (1, 0), 184 | "west": (-1, 0), 185 | "h": (0, 0)} 186 | katamari = {"katamari" : ""} 187 | prompt = "N, S, E, W, Here, or Katamari" 188 | data["completer"].set_actions(options.keys()) 189 | inp = input("look which direction? ({0}) ".format(prompt)).lower().strip() 190 | if inp in options.keys(): 191 | look_at(options[inp], data) 192 | elif inp in alt_options.keys(): 193 | look_at(alt_options[inp], data) 194 | elif inp in katamari.keys(): 195 | desc_katamari(data) 196 | else: 197 | print("Please choose a valid option, options are {0}".format(prompt)) 198 | 199 | def look_at(transform, data): 200 | loc = data["level"]["location"] 201 | place = (loc[0] + transform[0], loc[1] + transform[1]) 202 | if in_bounds(place, data): 203 | space = data["level"]["grid"][place[1]][place[0]] 204 | if transform == (0, 0): 205 | print("You're standing firmly on the ground, with {0} items around you".format(str(len(space)))) 206 | else: 207 | print("When you look that direction you see {0} items".format(str(len(space)))) 208 | for item in space: 209 | print("You see a {0}".format(item["name"])) 210 | 211 | def in_bounds(place, data): 212 | if 0 <= place[0] < data["level"]["dimensions"][0] and 0 <= place[1] < data["level"]["dimensions"][1]: 213 | return True 214 | else: 215 | return False 216 | -------------------------------------------------------------------------------- /test_level.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | 6, 4 | 6 5 | ], 6 | "goal": 12, 7 | "grid": [ 8 | [ 9 | [], 10 | [], 11 | [], 12 | [], 13 | [], 14 | [] 15 | ], 16 | [ 17 | [], 18 | [ 19 | { 20 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 21 | "name": "hairpin", 22 | "size": 4.5 23 | } 24 | ], 25 | [ 26 | { 27 | "description": "People believe this will bring them good luck.", 28 | "name": "5yen coin", 29 | "size": 2.8 30 | }, 31 | { 32 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 33 | "name": "hairpin", 34 | "size": 4.5 35 | } 36 | ], 37 | [ 38 | { 39 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 40 | "name": "hairpin", 41 | "size": 4.5 42 | } 43 | ], 44 | [], 45 | [] 46 | ], 47 | [ 48 | [ 49 | { 50 | "description": "People believe this will bring them good luck.", 51 | "name": "5yen coin", 52 | "size": 2.8 53 | } 54 | ], 55 | [ 56 | { 57 | "description": "People believe this will bring them good luck.", 58 | "name": "5yen coin", 59 | "size": 2.8 60 | } 61 | ], 62 | [ 63 | { 64 | "description": "You don't need to be a monkey to eat this.", 65 | "name": "banana", 66 | "size": 10.0 67 | }, 68 | { 69 | "description": "People believe this will bring them good luck.", 70 | "name": "5yen coin", 71 | "size": 2.8 72 | } 73 | ], 74 | [], 75 | [], 76 | [] 77 | ], 78 | [ 79 | [], 80 | [], 81 | [], 82 | [ 83 | { 84 | "description": "Some people are so skilful that they can build a small house with this.", 85 | "name": "match", 86 | "size": 1.6 87 | }, 88 | { 89 | "description": "Some people are so skilful that they can build a small house with this.", 90 | "name": "match", 91 | "size": 1.6 92 | }, 93 | { 94 | "description": "Some people are so skilful that they can build a small house with this.", 95 | "name": "match", 96 | "size": 1.6 97 | }, 98 | { 99 | "description": "These usually disappear very quickly when playing Pachinko...", 100 | "name": "pachinko ball", 101 | "size": 4.7 102 | }, 103 | { 104 | "description": "These usually disappear very quickly when playing Pachinko...", 105 | "name": "pachinko ball", 106 | "size": 4.7 107 | }, 108 | { 109 | "description": "These usually disappear very quickly when playing Pachinko...", 110 | "name": "pachinko ball", 111 | "size": 4.7 112 | }, 113 | { 114 | "description": "Rub and erase. But it makes a mess.", 115 | "name": "eraser", 116 | "size": 8.0 117 | } 118 | ], 119 | [ 120 | { 121 | "description": "A white crayon. Using this on white paper is pointless", 122 | "name": "white crayon", 123 | "size": 5.9 124 | } 125 | ], 126 | [] 127 | ], 128 | [ 129 | [], 130 | [], 131 | [], 132 | [ 133 | { 134 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 135 | "name": "red crayon", 136 | "size": 4.2 137 | } 138 | ], 139 | [ 140 | { 141 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 142 | "name": "red crayon", 143 | "size": 4.2 144 | }, 145 | { 146 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 147 | "name": "red crayon", 148 | "size": 4.2 149 | } 150 | ], 151 | [] 152 | ], 153 | [ 154 | [], 155 | [], 156 | [], 157 | [], 158 | [], 159 | [] 160 | ] 161 | ], 162 | "items": [ 163 | [ 164 | { 165 | "description": "You don't need to be a monkey to eat this.", 166 | "name": "banana", 167 | "size": 10.0 168 | }, 169 | [ 170 | 2, 171 | 2 172 | ] 173 | ], 174 | [ 175 | { 176 | "description": "Some people are so skilful that they can build a small house with this.", 177 | "name": "match", 178 | "size": 1.6 179 | }, 180 | [ 181 | 3, 182 | 3 183 | ] 184 | ], 185 | [ 186 | { 187 | "description": "Some people are so skilful that they can build a small house with this.", 188 | "name": "match", 189 | "size": 1.6 190 | }, 191 | [ 192 | 3, 193 | 3 194 | ] 195 | ], 196 | [ 197 | { 198 | "description": "Some people are so skilful that they can build a small house with this.", 199 | "name": "match", 200 | "size": 1.6 201 | }, 202 | [ 203 | 3, 204 | 3 205 | ] 206 | ], 207 | [ 208 | { 209 | "description": "People believe this will bring them good luck.", 210 | "name": "5yen coin", 211 | "size": 2.8 212 | }, 213 | [ 214 | 2, 215 | 2 216 | ] 217 | ], 218 | [ 219 | { 220 | "description": "People believe this will bring them good luck.", 221 | "name": "5yen coin", 222 | "size": 2.8 223 | }, 224 | [ 225 | 2, 226 | 1 227 | ] 228 | ], 229 | [ 230 | { 231 | "description": "People believe this will bring them good luck.", 232 | "name": "5yen coin", 233 | "size": 2.8 234 | }, 235 | [ 236 | 2, 237 | 0 238 | ] 239 | ], 240 | [ 241 | { 242 | "description": "People believe this will bring them good luck.", 243 | "name": "5yen coin", 244 | "size": 2.8 245 | }, 246 | [ 247 | 1, 248 | 2 249 | ] 250 | ], 251 | [ 252 | { 253 | "description": "A white crayon. Using this on white paper is pointless", 254 | "name": "white crayon", 255 | "size": 5.9 256 | }, 257 | [ 258 | 3, 259 | 4 260 | ] 261 | ], 262 | [ 263 | { 264 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 265 | "name": "red crayon", 266 | "size": 4.2 267 | }, 268 | [ 269 | 4, 270 | 4 271 | ] 272 | ], 273 | [ 274 | { 275 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 276 | "name": "red crayon", 277 | "size": 4.2 278 | }, 279 | [ 280 | 4, 281 | 4 282 | ] 283 | ], 284 | [ 285 | { 286 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 287 | "name": "red crayon", 288 | "size": 4.2 289 | }, 290 | [ 291 | 4, 292 | 3 293 | ] 294 | ], 295 | [ 296 | { 297 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 298 | "name": "hairpin", 299 | "size": 4.5 300 | }, 301 | [ 302 | 1, 303 | 1 304 | ] 305 | ], 306 | [ 307 | { 308 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 309 | "name": "hairpin", 310 | "size": 4.5 311 | }, 312 | [ 313 | 1, 314 | 2 315 | ] 316 | ], 317 | [ 318 | { 319 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 320 | "name": "hairpin", 321 | "size": 4.5 322 | }, 323 | [ 324 | 1, 325 | 3 326 | ] 327 | ], 328 | [ 329 | { 330 | "description": "These usually disappear very quickly when playing Pachinko...", 331 | "name": "pachinko ball", 332 | "size": 4.7 333 | }, 334 | [ 335 | 3, 336 | 3 337 | ] 338 | ], 339 | [ 340 | { 341 | "description": "These usually disappear very quickly when playing Pachinko...", 342 | "name": "pachinko ball", 343 | "size": 4.7 344 | }, 345 | [ 346 | 3, 347 | 3 348 | ] 349 | ], 350 | [ 351 | { 352 | "description": "These usually disappear very quickly when playing Pachinko...", 353 | "name": "pachinko ball", 354 | "size": 4.7 355 | }, 356 | [ 357 | 3, 358 | 3 359 | ] 360 | ], 361 | [ 362 | { 363 | "description": "Rub and erase. But it makes a mess.", 364 | "name": "eraser", 365 | "size": 8.0 366 | }, 367 | [ 368 | 3, 369 | 3 370 | ] 371 | ] 372 | ], 373 | "katamari": 10, 374 | "location": [ 375 | 3, 376 | 3 377 | ], 378 | "name": "test_level", 379 | "number": 0, 380 | "status": "unbeaten", 381 | "time": 3600 382 | } -------------------------------------------------------------------------------- /starter_house.json: -------------------------------------------------------------------------------- 1 | { 2 | "dimensions": [ 3 | 6, 4 | 6 5 | ], 6 | "goal": 15, 7 | "grid": [ 8 | [ 9 | [ 10 | { 11 | "description": "A white crayon. Using this on white paper is pointless", 12 | "name": "white crayon", 13 | "size": 5.9 14 | }, 15 | { 16 | "description": "A black crayon. Good for drawing the night sky.", 17 | "name": "black crayon", 18 | "size": 3.7 19 | } 20 | ], 21 | [ 22 | { 23 | "description": "A black crayon. Good for drawing the night sky.", 24 | "name": "black crayon", 25 | "size": 3.7 26 | }, 27 | { 28 | "description": "A black crayon. Good for drawing the night sky.", 29 | "name": "black crayon", 30 | "size": 3.7 31 | } 32 | ], 33 | [ 34 | { 35 | "description": "A black crayon. Good for drawing the night sky.", 36 | "name": "black crayon", 37 | "size": 3.7 38 | }, 39 | { 40 | "description": "Rub and erase. But it makes a mess.", 41 | "name": "eraser", 42 | "size": 8.0 43 | } 44 | ], 45 | [ 46 | { 47 | "description": "Rub and erase. But it makes a mess.", 48 | "name": "eraser", 49 | "size": 8.0 50 | } 51 | ], 52 | [ 53 | { 54 | "description": "A white crayon. Using this on white paper is pointless", 55 | "name": "white crayon", 56 | "size": 5.9 57 | }, 58 | { 59 | "description": "A white crayon. Using this on white paper is pointless", 60 | "name": "white crayon", 61 | "size": 5.9 62 | } 63 | ], 64 | [ 65 | { 66 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 67 | "name": "hairpin", 68 | "size": 4.5 69 | }, 70 | { 71 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 72 | "name": "hairpin", 73 | "size": 4.5 74 | } 75 | ] 76 | ], 77 | [ 78 | [ 79 | { 80 | "description": "A black crayon. Good for drawing the night sky.", 81 | "name": "black crayon", 82 | "size": 3.7 83 | } 84 | ], 85 | [ 86 | { 87 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 88 | "name": "hairpin", 89 | "size": 4.5 90 | }, 91 | { 92 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 93 | "name": "hairpin", 94 | "size": 4.5 95 | } 96 | ], 97 | [ 98 | { 99 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 100 | "name": "hairpin", 101 | "size": 4.5 102 | }, 103 | { 104 | "description": "People believe this will bring them good luck.", 105 | "name": "5yen coin", 106 | "size": 2.8 107 | }, 108 | { 109 | "description": "People believe this will bring them good luck.", 110 | "name": "5yen coin", 111 | "size": 2.8 112 | } 113 | ], 114 | [ 115 | { 116 | "description": "A black crayon. Good for drawing the night sky.", 117 | "name": "black crayon", 118 | "size": 3.7 119 | }, 120 | { 121 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 122 | "name": "hairpin", 123 | "size": 4.5 124 | } 125 | ], 126 | [ 127 | { 128 | "description": "A black crayon. Good for drawing the night sky.", 129 | "name": "black crayon", 130 | "size": 3.7 131 | }, 132 | { 133 | "description": "A black crayon. Good for drawing the night sky.", 134 | "name": "black crayon", 135 | "size": 3.7 136 | }, 137 | { 138 | "description": "A black crayon. Good for drawing the night sky.", 139 | "name": "black crayon", 140 | "size": 3.7 141 | } 142 | ], 143 | [ 144 | { 145 | "description": "People believe this will bring them good luck.", 146 | "name": "5yen coin", 147 | "size": 2.8 148 | } 149 | ] 150 | ], 151 | [ 152 | [ 153 | { 154 | "description": "People believe this will bring them good luck.", 155 | "name": "5yen coin", 156 | "size": 2.8 157 | } 158 | ], 159 | [ 160 | { 161 | "description": "People believe this will bring them good luck.", 162 | "name": "5yen coin", 163 | "size": 2.8 164 | } 165 | ], 166 | [ 167 | { 168 | "description": "You don't need to be a monkey to eat this.", 169 | "name": "banana", 170 | "size": 10.0 171 | }, 172 | { 173 | "description": "People believe this will bring them good luck.", 174 | "name": "5yen coin", 175 | "size": 2.8 176 | }, 177 | { 178 | "description": "People believe this will bring them good luck.", 179 | "name": "5yen coin", 180 | "size": 2.8 181 | } 182 | ], 183 | [ 184 | { 185 | "description": "People believe this will bring them good luck.", 186 | "name": "5yen coin", 187 | "size": 2.8 188 | }, 189 | { 190 | "description": "People believe this will bring them good luck.", 191 | "name": "5yen coin", 192 | "size": 2.8 193 | }, 194 | { 195 | "description": "Don't try to eat the whole thing in one bite!", 196 | "name": "strawberry", 197 | "size": 10.8 198 | } 199 | ], 200 | [ 201 | { 202 | "description": "A black crayon. Good for drawing the night sky.", 203 | "name": "black crayon", 204 | "size": 3.7 205 | } 206 | ], 207 | [ 208 | { 209 | "description": "This is from a game where you do a lot of loud shuffling", 210 | "name": "mah-jong tile", 211 | "size": 5.1 212 | }, 213 | { 214 | "description": "This is from a game where you do a lot of loud shuffling", 215 | "name": "mah-jong tile", 216 | "size": 5.1 217 | }, 218 | { 219 | "description": "This is from a game where you do a lot of loud shuffling", 220 | "name": "mah-jong tile", 221 | "size": 5.1 222 | } 223 | ] 224 | ], 225 | [ 226 | [ 227 | { 228 | "description": "Some people are so skilful that they can build a small house with this.", 229 | "name": "match", 230 | "size": 1.6 231 | } 232 | ], 233 | [ 234 | { 235 | "description": "A black crayon. Good for drawing the night sky.", 236 | "name": "black crayon", 237 | "size": 3.7 238 | } 239 | ], 240 | [ 241 | { 242 | "description": "Some people are so skilful that they can build a small house with this.", 243 | "name": "match", 244 | "size": 1.6 245 | }, 246 | { 247 | "description": "These usually disappear very quickly when playing Pachinko...", 248 | "name": "pachinko ball", 249 | "size": 4.7 250 | }, 251 | { 252 | "description": "These usually disappear very quickly when playing Pachinko...", 253 | "name": "pachinko ball", 254 | "size": 4.7 255 | }, 256 | { 257 | "description": "These usually disappear very quickly when playing Pachinko...", 258 | "name": "pachinko ball", 259 | "size": 4.7 260 | } 261 | ], 262 | [ 263 | { 264 | "description": "Some people are so skilful that they can build a small house with this.", 265 | "name": "match", 266 | "size": 1.6 267 | }, 268 | { 269 | "description": "Some people are so skilful that they can build a small house with this.", 270 | "name": "match", 271 | "size": 1.6 272 | }, 273 | { 274 | "description": "These usually disappear very quickly when playing Pachinko...", 275 | "name": "pachinko ball", 276 | "size": 4.7 277 | }, 278 | { 279 | "description": "These usually disappear very quickly when playing Pachinko...", 280 | "name": "pachinko ball", 281 | "size": 4.7 282 | }, 283 | { 284 | "description": "These usually disappear very quickly when playing Pachinko...", 285 | "name": "pachinko ball", 286 | "size": 4.7 287 | }, 288 | { 289 | "description": "Rub and erase. But it makes a mess.", 290 | "name": "eraser", 291 | "size": 8.0 292 | } 293 | ], 294 | [ 295 | { 296 | "description": "A white crayon. Using this on white paper is pointless", 297 | "name": "white crayon", 298 | "size": 5.9 299 | }, 300 | { 301 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 302 | "name": "red crayon", 303 | "size": 4.2 304 | } 305 | ], 306 | [ 307 | { 308 | "description": "A white crayon. Using this on white paper is pointless", 309 | "name": "white crayon", 310 | "size": 5.9 311 | }, 312 | { 313 | "description": "A white crayon. Using this on white paper is pointless", 314 | "name": "white crayon", 315 | "size": 5.9 316 | } 317 | ] 318 | ], 319 | [ 320 | [ 321 | { 322 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 323 | "name": "red crayon", 324 | "size": 4.2 325 | }, 326 | { 327 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 328 | "name": "red crayon", 329 | "size": 4.2 330 | } 331 | ], 332 | [ 333 | { 334 | "description": "A black crayon. Good for drawing the night sky.", 335 | "name": "black crayon", 336 | "size": 3.7 337 | }, 338 | { 339 | "description": "A black crayon. Good for drawing the night sky.", 340 | "name": "black crayon", 341 | "size": 3.7 342 | } 343 | ], 344 | [ 345 | { 346 | "description": "A black crayon. Good for drawing the night sky.", 347 | "name": "black crayon", 348 | "size": 3.7 349 | }, 350 | { 351 | "description": "A black crayon. Good for drawing the night sky.", 352 | "name": "black crayon", 353 | "size": 3.7 354 | }, 355 | { 356 | "description": "A black crayon. Good for drawing the night sky.", 357 | "name": "black crayon", 358 | "size": 3.7 359 | } 360 | ], 361 | [ 362 | { 363 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 364 | "name": "red crayon", 365 | "size": 4.2 366 | }, 367 | { 368 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 369 | "name": "red crayon", 370 | "size": 4.2 371 | }, 372 | { 373 | "description": "Don't try to eat the whole thing in one bite!", 374 | "name": "strawberry", 375 | "size": 10.8 376 | } 377 | ], 378 | [ 379 | { 380 | "description": "A little frog. When it was young, it didn't have arms.", 381 | "name": "tree frog", 382 | "size": 7.4 383 | }, 384 | { 385 | "description": "This is from a game where you do a lot of loud shuffling", 386 | "name": "mah-jong tile", 387 | "size": 5.1 388 | }, 389 | { 390 | "description": "A black crayon. Good for drawing the night sky.", 391 | "name": "black crayon", 392 | "size": 3.7 393 | }, 394 | { 395 | "description": "A little frog. When it was young, it didn't have arms.", 396 | "name": "tree frog", 397 | "size": 7.4 398 | } 399 | ], 400 | [ 401 | { 402 | "description": "A little frog. When it was young, it didn't have arms.", 403 | "name": "tree frog", 404 | "size": 7.4 405 | } 406 | ] 407 | ], 408 | [ 409 | [ 410 | { 411 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 412 | "name": "red crayon", 413 | "size": 4.2 414 | }, 415 | { 416 | "description": "A white crayon. Using this on white paper is pointless", 417 | "name": "white crayon", 418 | "size": 5.9 419 | } 420 | ], 421 | [ 422 | { 423 | "description": "A black crayon. Good for drawing the night sky.", 424 | "name": "black crayon", 425 | "size": 3.7 426 | }, 427 | { 428 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 429 | "name": "red crayon", 430 | "size": 4.2 431 | } 432 | ], 433 | [ 434 | { 435 | "description": "A black crayon. Good for drawing the night sky.", 436 | "name": "black crayon", 437 | "size": 3.7 438 | }, 439 | { 440 | "description": "A black crayon. Good for drawing the night sky.", 441 | "name": "black crayon", 442 | "size": 3.7 443 | } 444 | ], 445 | [ 446 | { 447 | "description": "Some people are so skilful that they can build a small house with this.", 448 | "name": "match", 449 | "size": 1.6 450 | }, 451 | { 452 | "description": "Some people are so skilful that they can build a small house with this.", 453 | "name": "match", 454 | "size": 1.6 455 | } 456 | ], 457 | [ 458 | { 459 | "description": "A black crayon. Good for drawing the night sky.", 460 | "name": "black crayon", 461 | "size": 3.7 462 | } 463 | ], 464 | [ 465 | { 466 | "description": "You turn this thing, and it will hold other things.", 467 | "name": "short screw", 468 | "size": 2.5 469 | }, 470 | { 471 | "description": "You turn this thing, and it will hold other things.", 472 | "name": "short screw", 473 | "size": 2.5 474 | }, 475 | { 476 | "description": "You turn this thing, and it will hold other things.", 477 | "name": "short screw", 478 | "size": 2.5 479 | } 480 | ] 481 | ] 482 | ], 483 | "items": [ 484 | [ 485 | { 486 | "description": "You don't need to be a monkey to eat this.", 487 | "name": "banana", 488 | "size": 10.0 489 | }, 490 | [ 491 | 2, 492 | 2 493 | ] 494 | ], 495 | [ 496 | { 497 | "description": "A white crayon. Using this on white paper is pointless", 498 | "name": "white crayon", 499 | "size": 5.9 500 | }, 501 | [ 502 | 0, 503 | 0 504 | ] 505 | ], 506 | [ 507 | { 508 | "description": "A black crayon. Good for drawing the night sky.", 509 | "name": "black crayon", 510 | "size": 3.7 511 | }, 512 | [ 513 | 0, 514 | 0 515 | ] 516 | ], 517 | [ 518 | { 519 | "description": "A black crayon. Good for drawing the night sky.", 520 | "name": "black crayon", 521 | "size": 3.7 522 | }, 523 | [ 524 | 0, 525 | 1 526 | ] 527 | ], 528 | [ 529 | { 530 | "description": "A black crayon. Good for drawing the night sky.", 531 | "name": "black crayon", 532 | "size": 3.7 533 | }, 534 | [ 535 | 0, 536 | 1 537 | ] 538 | ], 539 | [ 540 | { 541 | "description": "A black crayon. Good for drawing the night sky.", 542 | "name": "black crayon", 543 | "size": 3.7 544 | }, 545 | [ 546 | 0, 547 | 2 548 | ] 549 | ], 550 | [ 551 | { 552 | "description": "Rub and erase. But it makes a mess.", 553 | "name": "eraser", 554 | "size": 8.0 555 | }, 556 | [ 557 | 0, 558 | 2 559 | ] 560 | ], 561 | [ 562 | { 563 | "description": "Rub and erase. But it makes a mess.", 564 | "name": "eraser", 565 | "size": 8.0 566 | }, 567 | [ 568 | 0, 569 | 3 570 | ] 571 | ], 572 | [ 573 | { 574 | "description": "A white crayon. Using this on white paper is pointless", 575 | "name": "white crayon", 576 | "size": 5.9 577 | }, 578 | [ 579 | 0, 580 | 4 581 | ] 582 | ], 583 | [ 584 | { 585 | "description": "A white crayon. Using this on white paper is pointless", 586 | "name": "white crayon", 587 | "size": 5.9 588 | }, 589 | [ 590 | 0, 591 | 4 592 | ] 593 | ], 594 | [ 595 | { 596 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 597 | "name": "hairpin", 598 | "size": 4.5 599 | }, 600 | [ 601 | 0, 602 | 5 603 | ] 604 | ], 605 | [ 606 | { 607 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 608 | "name": "hairpin", 609 | "size": 4.5 610 | }, 611 | [ 612 | 0, 613 | 5 614 | ] 615 | ], 616 | [ 617 | { 618 | "description": "A black crayon. Good for drawing the night sky.", 619 | "name": "black crayon", 620 | "size": 3.7 621 | }, 622 | [ 623 | 1, 624 | 0 625 | ] 626 | ], 627 | [ 628 | { 629 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 630 | "name": "hairpin", 631 | "size": 4.5 632 | }, 633 | [ 634 | 1, 635 | 1 636 | ] 637 | ], 638 | [ 639 | { 640 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 641 | "name": "hairpin", 642 | "size": 4.5 643 | }, 644 | [ 645 | 1, 646 | 1 647 | ] 648 | ], 649 | [ 650 | { 651 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 652 | "name": "hairpin", 653 | "size": 4.5 654 | }, 655 | [ 656 | 1, 657 | 2 658 | ] 659 | ], 660 | [ 661 | { 662 | "description": "People believe this will bring them good luck.", 663 | "name": "5yen coin", 664 | "size": 2.8 665 | }, 666 | [ 667 | 1, 668 | 2 669 | ] 670 | ], 671 | [ 672 | { 673 | "description": "People believe this will bring them good luck.", 674 | "name": "5yen coin", 675 | "size": 2.8 676 | }, 677 | [ 678 | 1, 679 | 2 680 | ] 681 | ], 682 | [ 683 | { 684 | "description": "A black crayon. Good for drawing the night sky.", 685 | "name": "black crayon", 686 | "size": 3.7 687 | }, 688 | [ 689 | 1, 690 | 3 691 | ] 692 | ], 693 | [ 694 | { 695 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 696 | "name": "hairpin", 697 | "size": 4.5 698 | }, 699 | [ 700 | 1, 701 | 3 702 | ] 703 | ], 704 | [ 705 | { 706 | "description": "A black crayon. Good for drawing the night sky.", 707 | "name": "black crayon", 708 | "size": 3.7 709 | }, 710 | [ 711 | 1, 712 | 4 713 | ] 714 | ], 715 | [ 716 | { 717 | "description": "A black crayon. Good for drawing the night sky.", 718 | "name": "black crayon", 719 | "size": 3.7 720 | }, 721 | [ 722 | 1, 723 | 4 724 | ] 725 | ], 726 | [ 727 | { 728 | "description": "A black crayon. Good for drawing the night sky.", 729 | "name": "black crayon", 730 | "size": 3.7 731 | }, 732 | [ 733 | 1, 734 | 4 735 | ] 736 | ], 737 | [ 738 | { 739 | "description": "People believe this will bring them good luck.", 740 | "name": "5yen coin", 741 | "size": 2.8 742 | }, 743 | [ 744 | 1, 745 | 5 746 | ] 747 | ], 748 | [ 749 | { 750 | "description": "People believe this will bring them good luck.", 751 | "name": "5yen coin", 752 | "size": 2.8 753 | }, 754 | [ 755 | 2, 756 | 0 757 | ] 758 | ], 759 | [ 760 | { 761 | "description": "People believe this will bring them good luck.", 762 | "name": "5yen coin", 763 | "size": 2.8 764 | }, 765 | [ 766 | 2, 767 | 1 768 | ] 769 | ], 770 | [ 771 | { 772 | "description": "People believe this will bring them good luck.", 773 | "name": "5yen coin", 774 | "size": 2.8 775 | }, 776 | [ 777 | 2, 778 | 2 779 | ] 780 | ], 781 | [ 782 | { 783 | "description": "People believe this will bring them good luck.", 784 | "name": "5yen coin", 785 | "size": 2.8 786 | }, 787 | [ 788 | 2, 789 | 2 790 | ] 791 | ], 792 | [ 793 | { 794 | "description": "People believe this will bring them good luck.", 795 | "name": "5yen coin", 796 | "size": 2.8 797 | }, 798 | [ 799 | 2, 800 | 3 801 | ] 802 | ], 803 | [ 804 | { 805 | "description": "People believe this will bring them good luck.", 806 | "name": "5yen coin", 807 | "size": 2.8 808 | }, 809 | [ 810 | 2, 811 | 3 812 | ] 813 | ], 814 | [ 815 | { 816 | "description": "Don't try to eat the whole thing in one bite!", 817 | "name": "strawberry", 818 | "size": 10.8 819 | }, 820 | [ 821 | 2, 822 | 3 823 | ] 824 | ], 825 | [ 826 | { 827 | "description": "A black crayon. Good for drawing the night sky.", 828 | "name": "black crayon", 829 | "size": 3.7 830 | }, 831 | [ 832 | 2, 833 | 4 834 | ] 835 | ], 836 | [ 837 | { 838 | "description": "This is from a game where you do a lot of loud shuffling", 839 | "name": "mah-jong tile", 840 | "size": 5.1 841 | }, 842 | [ 843 | 2, 844 | 5 845 | ] 846 | ], 847 | [ 848 | { 849 | "description": "This is from a game where you do a lot of loud shuffling", 850 | "name": "mah-jong tile", 851 | "size": 5.1 852 | }, 853 | [ 854 | 2, 855 | 5 856 | ] 857 | ], 858 | [ 859 | { 860 | "description": "This is from a game where you do a lot of loud shuffling", 861 | "name": "mah-jong tile", 862 | "size": 5.1 863 | }, 864 | [ 865 | 2, 866 | 5 867 | ] 868 | ], 869 | [ 870 | { 871 | "description": "Some people are so skilful that they can build a small house with this.", 872 | "name": "match", 873 | "size": 1.6 874 | }, 875 | [ 876 | 3, 877 | 0 878 | ] 879 | ], 880 | [ 881 | { 882 | "description": "A black crayon. Good for drawing the night sky.", 883 | "name": "black crayon", 884 | "size": 3.7 885 | }, 886 | [ 887 | 3, 888 | 1 889 | ] 890 | ], 891 | [ 892 | { 893 | "description": "Some people are so skilful that they can build a small house with this.", 894 | "name": "match", 895 | "size": 1.6 896 | }, 897 | [ 898 | 3, 899 | 2 900 | ] 901 | ], 902 | [ 903 | { 904 | "description": "Some people are so skilful that they can build a small house with this.", 905 | "name": "match", 906 | "size": 1.6 907 | }, 908 | [ 909 | 3, 910 | 3 911 | ] 912 | ], 913 | [ 914 | { 915 | "description": "Some people are so skilful that they can build a small house with this.", 916 | "name": "match", 917 | "size": 1.6 918 | }, 919 | [ 920 | 3, 921 | 3 922 | ] 923 | ], 924 | [ 925 | { 926 | "description": "These usually disappear very quickly when playing Pachinko...", 927 | "name": "pachinko ball", 928 | "size": 4.7 929 | }, 930 | [ 931 | 3, 932 | 2 933 | ] 934 | ], 935 | [ 936 | { 937 | "description": "These usually disappear very quickly when playing Pachinko...", 938 | "name": "pachinko ball", 939 | "size": 4.7 940 | }, 941 | [ 942 | 3, 943 | 2 944 | ] 945 | ], 946 | [ 947 | { 948 | "description": "These usually disappear very quickly when playing Pachinko...", 949 | "name": "pachinko ball", 950 | "size": 4.7 951 | }, 952 | [ 953 | 3, 954 | 2 955 | ] 956 | ], 957 | [ 958 | { 959 | "description": "These usually disappear very quickly when playing Pachinko...", 960 | "name": "pachinko ball", 961 | "size": 4.7 962 | }, 963 | [ 964 | 3, 965 | 3 966 | ] 967 | ], 968 | [ 969 | { 970 | "description": "These usually disappear very quickly when playing Pachinko...", 971 | "name": "pachinko ball", 972 | "size": 4.7 973 | }, 974 | [ 975 | 3, 976 | 3 977 | ] 978 | ], 979 | [ 980 | { 981 | "description": "These usually disappear very quickly when playing Pachinko...", 982 | "name": "pachinko ball", 983 | "size": 4.7 984 | }, 985 | [ 986 | 3, 987 | 3 988 | ] 989 | ], 990 | [ 991 | { 992 | "description": "A white crayon. Using this on white paper is pointless", 993 | "name": "white crayon", 994 | "size": 5.9 995 | }, 996 | [ 997 | 3, 998 | 4 999 | ] 1000 | ], 1001 | [ 1002 | { 1003 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1004 | "name": "red crayon", 1005 | "size": 4.2 1006 | }, 1007 | [ 1008 | 3, 1009 | 4 1010 | ] 1011 | ], 1012 | [ 1013 | { 1014 | "description": "A white crayon. Using this on white paper is pointless", 1015 | "name": "white crayon", 1016 | "size": 5.9 1017 | }, 1018 | [ 1019 | 3, 1020 | 5 1021 | ] 1022 | ], 1023 | [ 1024 | { 1025 | "description": "A white crayon. Using this on white paper is pointless", 1026 | "name": "white crayon", 1027 | "size": 5.9 1028 | }, 1029 | [ 1030 | 3, 1031 | 5 1032 | ] 1033 | ], 1034 | [ 1035 | { 1036 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1037 | "name": "red crayon", 1038 | "size": 4.2 1039 | }, 1040 | [ 1041 | 4, 1042 | 0 1043 | ] 1044 | ], 1045 | [ 1046 | { 1047 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1048 | "name": "red crayon", 1049 | "size": 4.2 1050 | }, 1051 | [ 1052 | 4, 1053 | 0 1054 | ] 1055 | ], 1056 | [ 1057 | { 1058 | "description": "A black crayon. Good for drawing the night sky.", 1059 | "name": "black crayon", 1060 | "size": 3.7 1061 | }, 1062 | [ 1063 | 4, 1064 | 1 1065 | ] 1066 | ], 1067 | [ 1068 | { 1069 | "description": "A black crayon. Good for drawing the night sky.", 1070 | "name": "black crayon", 1071 | "size": 3.7 1072 | }, 1073 | [ 1074 | 4, 1075 | 1 1076 | ] 1077 | ], 1078 | [ 1079 | { 1080 | "description": "A black crayon. Good for drawing the night sky.", 1081 | "name": "black crayon", 1082 | "size": 3.7 1083 | }, 1084 | [ 1085 | 4, 1086 | 2 1087 | ] 1088 | ], 1089 | [ 1090 | { 1091 | "description": "A black crayon. Good for drawing the night sky.", 1092 | "name": "black crayon", 1093 | "size": 3.7 1094 | }, 1095 | [ 1096 | 4, 1097 | 2 1098 | ] 1099 | ], 1100 | [ 1101 | { 1102 | "description": "A black crayon. Good for drawing the night sky.", 1103 | "name": "black crayon", 1104 | "size": 3.7 1105 | }, 1106 | [ 1107 | 4, 1108 | 2 1109 | ] 1110 | ], 1111 | [ 1112 | { 1113 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1114 | "name": "red crayon", 1115 | "size": 4.2 1116 | }, 1117 | [ 1118 | 4, 1119 | 3 1120 | ] 1121 | ], 1122 | [ 1123 | { 1124 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1125 | "name": "red crayon", 1126 | "size": 4.2 1127 | }, 1128 | [ 1129 | 4, 1130 | 3 1131 | ] 1132 | ], 1133 | [ 1134 | { 1135 | "description": "Don't try to eat the whole thing in one bite!", 1136 | "name": "strawberry", 1137 | "size": 10.8 1138 | }, 1139 | [ 1140 | 4, 1141 | 3 1142 | ] 1143 | ], 1144 | [ 1145 | { 1146 | "description": "A little frog. When it was young, it didn't have arms.", 1147 | "name": "tree frog", 1148 | "size": 7.4 1149 | }, 1150 | [ 1151 | 4, 1152 | 4 1153 | ] 1154 | ], 1155 | [ 1156 | { 1157 | "description": "This is from a game where you do a lot of loud shuffling", 1158 | "name": "mah-jong tile", 1159 | "size": 5.1 1160 | }, 1161 | [ 1162 | 4, 1163 | 4 1164 | ] 1165 | ], 1166 | [ 1167 | { 1168 | "description": "A black crayon. Good for drawing the night sky.", 1169 | "name": "black crayon", 1170 | "size": 3.7 1171 | }, 1172 | [ 1173 | 4, 1174 | 4 1175 | ] 1176 | ], 1177 | [ 1178 | { 1179 | "description": "A little frog. When it was young, it didn't have arms.", 1180 | "name": "tree frog", 1181 | "size": 7.4 1182 | }, 1183 | [ 1184 | 4, 1185 | 4 1186 | ] 1187 | ], 1188 | [ 1189 | { 1190 | "description": "A little frog. When it was young, it didn't have arms.", 1191 | "name": "tree frog", 1192 | "size": 7.4 1193 | }, 1194 | [ 1195 | 4, 1196 | 5 1197 | ] 1198 | ], 1199 | [ 1200 | { 1201 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1202 | "name": "red crayon", 1203 | "size": 4.2 1204 | }, 1205 | [ 1206 | 5, 1207 | 0 1208 | ] 1209 | ], 1210 | [ 1211 | { 1212 | "description": "A white crayon. Using this on white paper is pointless", 1213 | "name": "white crayon", 1214 | "size": 5.9 1215 | }, 1216 | [ 1217 | 5, 1218 | 0 1219 | ] 1220 | ], 1221 | [ 1222 | { 1223 | "description": "A black crayon. Good for drawing the night sky.", 1224 | "name": "black crayon", 1225 | "size": 3.7 1226 | }, 1227 | [ 1228 | 5, 1229 | 1 1230 | ] 1231 | ], 1232 | [ 1233 | { 1234 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1235 | "name": "red crayon", 1236 | "size": 4.2 1237 | }, 1238 | [ 1239 | 5, 1240 | 1 1241 | ] 1242 | ], 1243 | [ 1244 | { 1245 | "description": "A black crayon. Good for drawing the night sky.", 1246 | "name": "black crayon", 1247 | "size": 3.7 1248 | }, 1249 | [ 1250 | 5, 1251 | 2 1252 | ] 1253 | ], 1254 | [ 1255 | { 1256 | "description": "A black crayon. Good for drawing the night sky.", 1257 | "name": "black crayon", 1258 | "size": 3.7 1259 | }, 1260 | [ 1261 | 5, 1262 | 2 1263 | ] 1264 | ], 1265 | [ 1266 | { 1267 | "description": "Some people are so skilful that they can build a small house with this.", 1268 | "name": "match", 1269 | "size": 1.6 1270 | }, 1271 | [ 1272 | 5, 1273 | 3 1274 | ] 1275 | ], 1276 | [ 1277 | { 1278 | "description": "Some people are so skilful that they can build a small house with this.", 1279 | "name": "match", 1280 | "size": 1.6 1281 | }, 1282 | [ 1283 | 5, 1284 | 3 1285 | ] 1286 | ], 1287 | [ 1288 | { 1289 | "description": "You turn this thing, and it will hold other things.", 1290 | "name": "short screw", 1291 | "size": 2.5 1292 | }, 1293 | [ 1294 | 5, 1295 | 5 1296 | ] 1297 | ], 1298 | [ 1299 | { 1300 | "description": "A black crayon. Good for drawing the night sky.", 1301 | "name": "black crayon", 1302 | "size": 3.7 1303 | }, 1304 | [ 1305 | 5, 1306 | 4 1307 | ] 1308 | ], 1309 | [ 1310 | { 1311 | "description": "You turn this thing, and it will hold other things.", 1312 | "name": "short screw", 1313 | "size": 2.5 1314 | }, 1315 | [ 1316 | 5, 1317 | 5 1318 | ] 1319 | ], 1320 | [ 1321 | { 1322 | "description": "You turn this thing, and it will hold other things.", 1323 | "name": "short screw", 1324 | "size": 2.5 1325 | }, 1326 | [ 1327 | 5, 1328 | 5 1329 | ] 1330 | ], 1331 | [ 1332 | { 1333 | "description": "Rub and erase. But it makes a mess.", 1334 | "name": "eraser", 1335 | "size": 8.0 1336 | }, 1337 | [ 1338 | 3, 1339 | 3 1340 | ] 1341 | ] 1342 | ], 1343 | "katamari": 10, 1344 | "location": [ 1345 | 4, 1346 | 4 1347 | ], 1348 | "name": "starter_house", 1349 | "number": 1, 1350 | "status": "unbeaten", 1351 | "time": 120 1352 | } -------------------------------------------------------------------------------- /data.json: -------------------------------------------------------------------------------- 1 | { 2 | "katamari": {}, 3 | "level": {}, 4 | "levels": [ 5 | { 6 | "dimensions": [ 7 | 6, 8 | 6 9 | ], 10 | "goal": 12, 11 | "grid": [ 12 | [ 13 | [], 14 | [], 15 | [], 16 | [], 17 | [], 18 | [] 19 | ], 20 | [ 21 | [], 22 | [ 23 | { 24 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 25 | "name": "hairpin", 26 | "size": 4.5 27 | } 28 | ], 29 | [ 30 | { 31 | "description": "People believe this will bring them good luck.", 32 | "name": "5yen coin", 33 | "size": 2.8 34 | }, 35 | { 36 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 37 | "name": "hairpin", 38 | "size": 4.5 39 | } 40 | ], 41 | [ 42 | { 43 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 44 | "name": "hairpin", 45 | "size": 4.5 46 | } 47 | ], 48 | [], 49 | [] 50 | ], 51 | [ 52 | [ 53 | { 54 | "description": "People believe this will bring them good luck.", 55 | "name": "5yen coin", 56 | "size": 2.8 57 | } 58 | ], 59 | [ 60 | { 61 | "description": "People believe this will bring them good luck.", 62 | "name": "5yen coin", 63 | "size": 2.8 64 | } 65 | ], 66 | [ 67 | { 68 | "description": "You don't need to be a monkey to eat this.", 69 | "name": "banana", 70 | "size": 10.0 71 | }, 72 | { 73 | "description": "People believe this will bring them good luck.", 74 | "name": "5yen coin", 75 | "size": 2.8 76 | } 77 | ], 78 | [], 79 | [], 80 | [] 81 | ], 82 | [ 83 | [], 84 | [], 85 | [], 86 | [ 87 | { 88 | "description": "Some people are so skilful that they can build a small house with this.", 89 | "name": "match", 90 | "size": 1.6 91 | }, 92 | { 93 | "description": "Some people are so skilful that they can build a small house with this.", 94 | "name": "match", 95 | "size": 1.6 96 | }, 97 | { 98 | "description": "Some people are so skilful that they can build a small house with this.", 99 | "name": "match", 100 | "size": 1.6 101 | }, 102 | { 103 | "description": "These usually disappear very quickly when playing Pachinko...", 104 | "name": "pachinko ball", 105 | "size": 4.7 106 | }, 107 | { 108 | "description": "These usually disappear very quickly when playing Pachinko...", 109 | "name": "pachinko ball", 110 | "size": 4.7 111 | }, 112 | { 113 | "description": "These usually disappear very quickly when playing Pachinko...", 114 | "name": "pachinko ball", 115 | "size": 4.7 116 | }, 117 | { 118 | "description": "Rub and erase. But it makes a mess.", 119 | "name": "eraser", 120 | "size": 8.0 121 | } 122 | ], 123 | [ 124 | { 125 | "description": "A white crayon. Using this on white paper is pointless", 126 | "name": "white crayon", 127 | "size": 5.9 128 | } 129 | ], 130 | [] 131 | ], 132 | [ 133 | [], 134 | [], 135 | [], 136 | [ 137 | { 138 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 139 | "name": "red crayon", 140 | "size": 4.2 141 | } 142 | ], 143 | [ 144 | { 145 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 146 | "name": "red crayon", 147 | "size": 4.2 148 | }, 149 | { 150 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 151 | "name": "red crayon", 152 | "size": 4.2 153 | } 154 | ], 155 | [] 156 | ], 157 | [ 158 | [], 159 | [], 160 | [], 161 | [], 162 | [], 163 | [] 164 | ] 165 | ], 166 | "items": [ 167 | [ 168 | { 169 | "description": "You don't need to be a monkey to eat this.", 170 | "name": "banana", 171 | "size": 10.0 172 | }, 173 | [ 174 | 2, 175 | 2 176 | ] 177 | ], 178 | [ 179 | { 180 | "description": "Some people are so skilful that they can build a small house with this.", 181 | "name": "match", 182 | "size": 1.6 183 | }, 184 | [ 185 | 3, 186 | 3 187 | ] 188 | ], 189 | [ 190 | { 191 | "description": "Some people are so skilful that they can build a small house with this.", 192 | "name": "match", 193 | "size": 1.6 194 | }, 195 | [ 196 | 3, 197 | 3 198 | ] 199 | ], 200 | [ 201 | { 202 | "description": "Some people are so skilful that they can build a small house with this.", 203 | "name": "match", 204 | "size": 1.6 205 | }, 206 | [ 207 | 3, 208 | 3 209 | ] 210 | ], 211 | [ 212 | { 213 | "description": "People believe this will bring them good luck.", 214 | "name": "5yen coin", 215 | "size": 2.8 216 | }, 217 | [ 218 | 2, 219 | 2 220 | ] 221 | ], 222 | [ 223 | { 224 | "description": "People believe this will bring them good luck.", 225 | "name": "5yen coin", 226 | "size": 2.8 227 | }, 228 | [ 229 | 2, 230 | 1 231 | ] 232 | ], 233 | [ 234 | { 235 | "description": "People believe this will bring them good luck.", 236 | "name": "5yen coin", 237 | "size": 2.8 238 | }, 239 | [ 240 | 2, 241 | 0 242 | ] 243 | ], 244 | [ 245 | { 246 | "description": "People believe this will bring them good luck.", 247 | "name": "5yen coin", 248 | "size": 2.8 249 | }, 250 | [ 251 | 1, 252 | 2 253 | ] 254 | ], 255 | [ 256 | { 257 | "description": "A white crayon. Using this on white paper is pointless", 258 | "name": "white crayon", 259 | "size": 5.9 260 | }, 261 | [ 262 | 3, 263 | 4 264 | ] 265 | ], 266 | [ 267 | { 268 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 269 | "name": "red crayon", 270 | "size": 4.2 271 | }, 272 | [ 273 | 4, 274 | 4 275 | ] 276 | ], 277 | [ 278 | { 279 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 280 | "name": "red crayon", 281 | "size": 4.2 282 | }, 283 | [ 284 | 4, 285 | 4 286 | ] 287 | ], 288 | [ 289 | { 290 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 291 | "name": "red crayon", 292 | "size": 4.2 293 | }, 294 | [ 295 | 4, 296 | 3 297 | ] 298 | ], 299 | [ 300 | { 301 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 302 | "name": "hairpin", 303 | "size": 4.5 304 | }, 305 | [ 306 | 1, 307 | 1 308 | ] 309 | ], 310 | [ 311 | { 312 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 313 | "name": "hairpin", 314 | "size": 4.5 315 | }, 316 | [ 317 | 1, 318 | 2 319 | ] 320 | ], 321 | [ 322 | { 323 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 324 | "name": "hairpin", 325 | "size": 4.5 326 | }, 327 | [ 328 | 1, 329 | 3 330 | ] 331 | ], 332 | [ 333 | { 334 | "description": "These usually disappear very quickly when playing Pachinko...", 335 | "name": "pachinko ball", 336 | "size": 4.7 337 | }, 338 | [ 339 | 3, 340 | 3 341 | ] 342 | ], 343 | [ 344 | { 345 | "description": "These usually disappear very quickly when playing Pachinko...", 346 | "name": "pachinko ball", 347 | "size": 4.7 348 | }, 349 | [ 350 | 3, 351 | 3 352 | ] 353 | ], 354 | [ 355 | { 356 | "description": "These usually disappear very quickly when playing Pachinko...", 357 | "name": "pachinko ball", 358 | "size": 4.7 359 | }, 360 | [ 361 | 3, 362 | 3 363 | ] 364 | ], 365 | [ 366 | { 367 | "description": "Rub and erase. But it makes a mess.", 368 | "name": "eraser", 369 | "size": 8.0 370 | }, 371 | [ 372 | 3, 373 | 3 374 | ] 375 | ] 376 | ], 377 | "katamari": 10, 378 | "location": [ 379 | 3, 380 | 3 381 | ], 382 | "name": "test_level", 383 | "number": 0, 384 | "status": "unbeaten", 385 | "time": 3600 386 | }, 387 | { 388 | "dimensions": [ 389 | 6, 390 | 6 391 | ], 392 | "goal": 15, 393 | "grid": [ 394 | [ 395 | [ 396 | { 397 | "description": "A white crayon. Using this on white paper is pointless", 398 | "name": "white crayon", 399 | "size": 5.9 400 | }, 401 | { 402 | "description": "A black crayon. Good for drawing the night sky.", 403 | "name": "black crayon", 404 | "size": 3.7 405 | } 406 | ], 407 | [ 408 | { 409 | "description": "A black crayon. Good for drawing the night sky.", 410 | "name": "black crayon", 411 | "size": 3.7 412 | }, 413 | { 414 | "description": "A black crayon. Good for drawing the night sky.", 415 | "name": "black crayon", 416 | "size": 3.7 417 | } 418 | ], 419 | [ 420 | { 421 | "description": "A black crayon. Good for drawing the night sky.", 422 | "name": "black crayon", 423 | "size": 3.7 424 | }, 425 | { 426 | "description": "Rub and erase. But it makes a mess.", 427 | "name": "eraser", 428 | "size": 8.0 429 | } 430 | ], 431 | [ 432 | { 433 | "description": "Rub and erase. But it makes a mess.", 434 | "name": "eraser", 435 | "size": 8.0 436 | } 437 | ], 438 | [ 439 | { 440 | "description": "A white crayon. Using this on white paper is pointless", 441 | "name": "white crayon", 442 | "size": 5.9 443 | }, 444 | { 445 | "description": "A white crayon. Using this on white paper is pointless", 446 | "name": "white crayon", 447 | "size": 5.9 448 | } 449 | ], 450 | [ 451 | { 452 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 453 | "name": "hairpin", 454 | "size": 4.5 455 | }, 456 | { 457 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 458 | "name": "hairpin", 459 | "size": 4.5 460 | } 461 | ] 462 | ], 463 | [ 464 | [ 465 | { 466 | "description": "A black crayon. Good for drawing the night sky.", 467 | "name": "black crayon", 468 | "size": 3.7 469 | } 470 | ], 471 | [ 472 | { 473 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 474 | "name": "hairpin", 475 | "size": 4.5 476 | }, 477 | { 478 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 479 | "name": "hairpin", 480 | "size": 4.5 481 | } 482 | ], 483 | [ 484 | { 485 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 486 | "name": "hairpin", 487 | "size": 4.5 488 | }, 489 | { 490 | "description": "People believe this will bring them good luck.", 491 | "name": "5yen coin", 492 | "size": 2.8 493 | }, 494 | { 495 | "description": "People believe this will bring them good luck.", 496 | "name": "5yen coin", 497 | "size": 2.8 498 | } 499 | ], 500 | [ 501 | { 502 | "description": "A black crayon. Good for drawing the night sky.", 503 | "name": "black crayon", 504 | "size": 3.7 505 | }, 506 | { 507 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 508 | "name": "hairpin", 509 | "size": 4.5 510 | } 511 | ], 512 | [ 513 | { 514 | "description": "A black crayon. Good for drawing the night sky.", 515 | "name": "black crayon", 516 | "size": 3.7 517 | }, 518 | { 519 | "description": "A black crayon. Good for drawing the night sky.", 520 | "name": "black crayon", 521 | "size": 3.7 522 | }, 523 | { 524 | "description": "A black crayon. Good for drawing the night sky.", 525 | "name": "black crayon", 526 | "size": 3.7 527 | } 528 | ], 529 | [ 530 | { 531 | "description": "People believe this will bring them good luck.", 532 | "name": "5yen coin", 533 | "size": 2.8 534 | } 535 | ] 536 | ], 537 | [ 538 | [ 539 | { 540 | "description": "People believe this will bring them good luck.", 541 | "name": "5yen coin", 542 | "size": 2.8 543 | } 544 | ], 545 | [ 546 | { 547 | "description": "People believe this will bring them good luck.", 548 | "name": "5yen coin", 549 | "size": 2.8 550 | } 551 | ], 552 | [ 553 | { 554 | "description": "You don't need to be a monkey to eat this.", 555 | "name": "banana", 556 | "size": 10.0 557 | }, 558 | { 559 | "description": "People believe this will bring them good luck.", 560 | "name": "5yen coin", 561 | "size": 2.8 562 | }, 563 | { 564 | "description": "People believe this will bring them good luck.", 565 | "name": "5yen coin", 566 | "size": 2.8 567 | } 568 | ], 569 | [ 570 | { 571 | "description": "People believe this will bring them good luck.", 572 | "name": "5yen coin", 573 | "size": 2.8 574 | }, 575 | { 576 | "description": "People believe this will bring them good luck.", 577 | "name": "5yen coin", 578 | "size": 2.8 579 | }, 580 | { 581 | "description": "Don't try to eat the whole thing in one bite!", 582 | "name": "strawberry", 583 | "size": 10.8 584 | } 585 | ], 586 | [ 587 | { 588 | "description": "A black crayon. Good for drawing the night sky.", 589 | "name": "black crayon", 590 | "size": 3.7 591 | } 592 | ], 593 | [ 594 | { 595 | "description": "This is from a game where you do a lot of loud shuffling", 596 | "name": "mah-jong tile", 597 | "size": 5.1 598 | }, 599 | { 600 | "description": "This is from a game where you do a lot of loud shuffling", 601 | "name": "mah-jong tile", 602 | "size": 5.1 603 | }, 604 | { 605 | "description": "This is from a game where you do a lot of loud shuffling", 606 | "name": "mah-jong tile", 607 | "size": 5.1 608 | } 609 | ] 610 | ], 611 | [ 612 | [ 613 | { 614 | "description": "Some people are so skilful that they can build a small house with this.", 615 | "name": "match", 616 | "size": 1.6 617 | } 618 | ], 619 | [ 620 | { 621 | "description": "A black crayon. Good for drawing the night sky.", 622 | "name": "black crayon", 623 | "size": 3.7 624 | } 625 | ], 626 | [ 627 | { 628 | "description": "Some people are so skilful that they can build a small house with this.", 629 | "name": "match", 630 | "size": 1.6 631 | }, 632 | { 633 | "description": "These usually disappear very quickly when playing Pachinko...", 634 | "name": "pachinko ball", 635 | "size": 4.7 636 | }, 637 | { 638 | "description": "These usually disappear very quickly when playing Pachinko...", 639 | "name": "pachinko ball", 640 | "size": 4.7 641 | }, 642 | { 643 | "description": "These usually disappear very quickly when playing Pachinko...", 644 | "name": "pachinko ball", 645 | "size": 4.7 646 | } 647 | ], 648 | [ 649 | { 650 | "description": "Some people are so skilful that they can build a small house with this.", 651 | "name": "match", 652 | "size": 1.6 653 | }, 654 | { 655 | "description": "Some people are so skilful that they can build a small house with this.", 656 | "name": "match", 657 | "size": 1.6 658 | }, 659 | { 660 | "description": "These usually disappear very quickly when playing Pachinko...", 661 | "name": "pachinko ball", 662 | "size": 4.7 663 | }, 664 | { 665 | "description": "These usually disappear very quickly when playing Pachinko...", 666 | "name": "pachinko ball", 667 | "size": 4.7 668 | }, 669 | { 670 | "description": "These usually disappear very quickly when playing Pachinko...", 671 | "name": "pachinko ball", 672 | "size": 4.7 673 | }, 674 | { 675 | "description": "Rub and erase. But it makes a mess.", 676 | "name": "eraser", 677 | "size": 8.0 678 | } 679 | ], 680 | [ 681 | { 682 | "description": "A white crayon. Using this on white paper is pointless", 683 | "name": "white crayon", 684 | "size": 5.9 685 | }, 686 | { 687 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 688 | "name": "red crayon", 689 | "size": 4.2 690 | } 691 | ], 692 | [ 693 | { 694 | "description": "A white crayon. Using this on white paper is pointless", 695 | "name": "white crayon", 696 | "size": 5.9 697 | }, 698 | { 699 | "description": "A white crayon. Using this on white paper is pointless", 700 | "name": "white crayon", 701 | "size": 5.9 702 | } 703 | ] 704 | ], 705 | [ 706 | [ 707 | { 708 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 709 | "name": "red crayon", 710 | "size": 4.2 711 | }, 712 | { 713 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 714 | "name": "red crayon", 715 | "size": 4.2 716 | } 717 | ], 718 | [ 719 | { 720 | "description": "A black crayon. Good for drawing the night sky.", 721 | "name": "black crayon", 722 | "size": 3.7 723 | }, 724 | { 725 | "description": "A black crayon. Good for drawing the night sky.", 726 | "name": "black crayon", 727 | "size": 3.7 728 | } 729 | ], 730 | [ 731 | { 732 | "description": "A black crayon. Good for drawing the night sky.", 733 | "name": "black crayon", 734 | "size": 3.7 735 | }, 736 | { 737 | "description": "A black crayon. Good for drawing the night sky.", 738 | "name": "black crayon", 739 | "size": 3.7 740 | }, 741 | { 742 | "description": "A black crayon. Good for drawing the night sky.", 743 | "name": "black crayon", 744 | "size": 3.7 745 | } 746 | ], 747 | [ 748 | { 749 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 750 | "name": "red crayon", 751 | "size": 4.2 752 | }, 753 | { 754 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 755 | "name": "red crayon", 756 | "size": 4.2 757 | }, 758 | { 759 | "description": "Don't try to eat the whole thing in one bite!", 760 | "name": "strawberry", 761 | "size": 10.8 762 | } 763 | ], 764 | [ 765 | { 766 | "description": "A little frog. When it was young, it didn't have arms.", 767 | "name": "tree frog", 768 | "size": 7.4 769 | }, 770 | { 771 | "description": "This is from a game where you do a lot of loud shuffling", 772 | "name": "mah-jong tile", 773 | "size": 5.1 774 | }, 775 | { 776 | "description": "A black crayon. Good for drawing the night sky.", 777 | "name": "black crayon", 778 | "size": 3.7 779 | }, 780 | { 781 | "description": "A little frog. When it was young, it didn't have arms.", 782 | "name": "tree frog", 783 | "size": 7.4 784 | } 785 | ], 786 | [ 787 | { 788 | "description": "A little frog. When it was young, it didn't have arms.", 789 | "name": "tree frog", 790 | "size": 7.4 791 | } 792 | ] 793 | ], 794 | [ 795 | [ 796 | { 797 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 798 | "name": "red crayon", 799 | "size": 4.2 800 | }, 801 | { 802 | "description": "A white crayon. Using this on white paper is pointless", 803 | "name": "white crayon", 804 | "size": 5.9 805 | } 806 | ], 807 | [ 808 | { 809 | "description": "A black crayon. Good for drawing the night sky.", 810 | "name": "black crayon", 811 | "size": 3.7 812 | }, 813 | { 814 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 815 | "name": "red crayon", 816 | "size": 4.2 817 | } 818 | ], 819 | [ 820 | { 821 | "description": "A black crayon. Good for drawing the night sky.", 822 | "name": "black crayon", 823 | "size": 3.7 824 | }, 825 | { 826 | "description": "A black crayon. Good for drawing the night sky.", 827 | "name": "black crayon", 828 | "size": 3.7 829 | } 830 | ], 831 | [ 832 | { 833 | "description": "Some people are so skilful that they can build a small house with this.", 834 | "name": "match", 835 | "size": 1.6 836 | }, 837 | { 838 | "description": "Some people are so skilful that they can build a small house with this.", 839 | "name": "match", 840 | "size": 1.6 841 | } 842 | ], 843 | [ 844 | { 845 | "description": "A black crayon. Good for drawing the night sky.", 846 | "name": "black crayon", 847 | "size": 3.7 848 | } 849 | ], 850 | [ 851 | { 852 | "description": "You turn this thing, and it will hold other things.", 853 | "name": "short screw", 854 | "size": 2.5 855 | }, 856 | { 857 | "description": "You turn this thing, and it will hold other things.", 858 | "name": "short screw", 859 | "size": 2.5 860 | }, 861 | { 862 | "description": "You turn this thing, and it will hold other things.", 863 | "name": "short screw", 864 | "size": 2.5 865 | } 866 | ] 867 | ] 868 | ], 869 | "items": [ 870 | [ 871 | { 872 | "description": "You don't need to be a monkey to eat this.", 873 | "name": "banana", 874 | "size": 10.0 875 | }, 876 | [ 877 | 2, 878 | 2 879 | ] 880 | ], 881 | [ 882 | { 883 | "description": "A white crayon. Using this on white paper is pointless", 884 | "name": "white crayon", 885 | "size": 5.9 886 | }, 887 | [ 888 | 0, 889 | 0 890 | ] 891 | ], 892 | [ 893 | { 894 | "description": "A black crayon. Good for drawing the night sky.", 895 | "name": "black crayon", 896 | "size": 3.7 897 | }, 898 | [ 899 | 0, 900 | 0 901 | ] 902 | ], 903 | [ 904 | { 905 | "description": "A black crayon. Good for drawing the night sky.", 906 | "name": "black crayon", 907 | "size": 3.7 908 | }, 909 | [ 910 | 0, 911 | 1 912 | ] 913 | ], 914 | [ 915 | { 916 | "description": "A black crayon. Good for drawing the night sky.", 917 | "name": "black crayon", 918 | "size": 3.7 919 | }, 920 | [ 921 | 0, 922 | 1 923 | ] 924 | ], 925 | [ 926 | { 927 | "description": "A black crayon. Good for drawing the night sky.", 928 | "name": "black crayon", 929 | "size": 3.7 930 | }, 931 | [ 932 | 0, 933 | 2 934 | ] 935 | ], 936 | [ 937 | { 938 | "description": "Rub and erase. But it makes a mess.", 939 | "name": "eraser", 940 | "size": 8.0 941 | }, 942 | [ 943 | 0, 944 | 2 945 | ] 946 | ], 947 | [ 948 | { 949 | "description": "Rub and erase. But it makes a mess.", 950 | "name": "eraser", 951 | "size": 8.0 952 | }, 953 | [ 954 | 0, 955 | 3 956 | ] 957 | ], 958 | [ 959 | { 960 | "description": "A white crayon. Using this on white paper is pointless", 961 | "name": "white crayon", 962 | "size": 5.9 963 | }, 964 | [ 965 | 0, 966 | 4 967 | ] 968 | ], 969 | [ 970 | { 971 | "description": "A white crayon. Using this on white paper is pointless", 972 | "name": "white crayon", 973 | "size": 5.9 974 | }, 975 | [ 976 | 0, 977 | 4 978 | ] 979 | ], 980 | [ 981 | { 982 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 983 | "name": "hairpin", 984 | "size": 4.5 985 | }, 986 | [ 987 | 0, 988 | 5 989 | ] 990 | ], 991 | [ 992 | { 993 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 994 | "name": "hairpin", 995 | "size": 4.5 996 | }, 997 | [ 998 | 0, 999 | 5 1000 | ] 1001 | ], 1002 | [ 1003 | { 1004 | "description": "A black crayon. Good for drawing the night sky.", 1005 | "name": "black crayon", 1006 | "size": 3.7 1007 | }, 1008 | [ 1009 | 1, 1010 | 0 1011 | ] 1012 | ], 1013 | [ 1014 | { 1015 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 1016 | "name": "hairpin", 1017 | "size": 4.5 1018 | }, 1019 | [ 1020 | 1, 1021 | 1 1022 | ] 1023 | ], 1024 | [ 1025 | { 1026 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 1027 | "name": "hairpin", 1028 | "size": 4.5 1029 | }, 1030 | [ 1031 | 1, 1032 | 1 1033 | ] 1034 | ], 1035 | [ 1036 | { 1037 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 1038 | "name": "hairpin", 1039 | "size": 4.5 1040 | }, 1041 | [ 1042 | 1, 1043 | 2 1044 | ] 1045 | ], 1046 | [ 1047 | { 1048 | "description": "People believe this will bring them good luck.", 1049 | "name": "5yen coin", 1050 | "size": 2.8 1051 | }, 1052 | [ 1053 | 1, 1054 | 2 1055 | ] 1056 | ], 1057 | [ 1058 | { 1059 | "description": "People believe this will bring them good luck.", 1060 | "name": "5yen coin", 1061 | "size": 2.8 1062 | }, 1063 | [ 1064 | 1, 1065 | 2 1066 | ] 1067 | ], 1068 | [ 1069 | { 1070 | "description": "A black crayon. Good for drawing the night sky.", 1071 | "name": "black crayon", 1072 | "size": 3.7 1073 | }, 1074 | [ 1075 | 1, 1076 | 3 1077 | ] 1078 | ], 1079 | [ 1080 | { 1081 | "description": "Used to fix hairstyles. Also the name for a sharp curve, but you can't put that on your head.", 1082 | "name": "hairpin", 1083 | "size": 4.5 1084 | }, 1085 | [ 1086 | 1, 1087 | 3 1088 | ] 1089 | ], 1090 | [ 1091 | { 1092 | "description": "A black crayon. Good for drawing the night sky.", 1093 | "name": "black crayon", 1094 | "size": 3.7 1095 | }, 1096 | [ 1097 | 1, 1098 | 4 1099 | ] 1100 | ], 1101 | [ 1102 | { 1103 | "description": "A black crayon. Good for drawing the night sky.", 1104 | "name": "black crayon", 1105 | "size": 3.7 1106 | }, 1107 | [ 1108 | 1, 1109 | 4 1110 | ] 1111 | ], 1112 | [ 1113 | { 1114 | "description": "A black crayon. Good for drawing the night sky.", 1115 | "name": "black crayon", 1116 | "size": 3.7 1117 | }, 1118 | [ 1119 | 1, 1120 | 4 1121 | ] 1122 | ], 1123 | [ 1124 | { 1125 | "description": "People believe this will bring them good luck.", 1126 | "name": "5yen coin", 1127 | "size": 2.8 1128 | }, 1129 | [ 1130 | 1, 1131 | 5 1132 | ] 1133 | ], 1134 | [ 1135 | { 1136 | "description": "People believe this will bring them good luck.", 1137 | "name": "5yen coin", 1138 | "size": 2.8 1139 | }, 1140 | [ 1141 | 2, 1142 | 0 1143 | ] 1144 | ], 1145 | [ 1146 | { 1147 | "description": "People believe this will bring them good luck.", 1148 | "name": "5yen coin", 1149 | "size": 2.8 1150 | }, 1151 | [ 1152 | 2, 1153 | 1 1154 | ] 1155 | ], 1156 | [ 1157 | { 1158 | "description": "People believe this will bring them good luck.", 1159 | "name": "5yen coin", 1160 | "size": 2.8 1161 | }, 1162 | [ 1163 | 2, 1164 | 2 1165 | ] 1166 | ], 1167 | [ 1168 | { 1169 | "description": "People believe this will bring them good luck.", 1170 | "name": "5yen coin", 1171 | "size": 2.8 1172 | }, 1173 | [ 1174 | 2, 1175 | 2 1176 | ] 1177 | ], 1178 | [ 1179 | { 1180 | "description": "People believe this will bring them good luck.", 1181 | "name": "5yen coin", 1182 | "size": 2.8 1183 | }, 1184 | [ 1185 | 2, 1186 | 3 1187 | ] 1188 | ], 1189 | [ 1190 | { 1191 | "description": "People believe this will bring them good luck.", 1192 | "name": "5yen coin", 1193 | "size": 2.8 1194 | }, 1195 | [ 1196 | 2, 1197 | 3 1198 | ] 1199 | ], 1200 | [ 1201 | { 1202 | "description": "Don't try to eat the whole thing in one bite!", 1203 | "name": "strawberry", 1204 | "size": 10.8 1205 | }, 1206 | [ 1207 | 2, 1208 | 3 1209 | ] 1210 | ], 1211 | [ 1212 | { 1213 | "description": "A black crayon. Good for drawing the night sky.", 1214 | "name": "black crayon", 1215 | "size": 3.7 1216 | }, 1217 | [ 1218 | 2, 1219 | 4 1220 | ] 1221 | ], 1222 | [ 1223 | { 1224 | "description": "This is from a game where you do a lot of loud shuffling", 1225 | "name": "mah-jong tile", 1226 | "size": 5.1 1227 | }, 1228 | [ 1229 | 2, 1230 | 5 1231 | ] 1232 | ], 1233 | [ 1234 | { 1235 | "description": "This is from a game where you do a lot of loud shuffling", 1236 | "name": "mah-jong tile", 1237 | "size": 5.1 1238 | }, 1239 | [ 1240 | 2, 1241 | 5 1242 | ] 1243 | ], 1244 | [ 1245 | { 1246 | "description": "This is from a game where you do a lot of loud shuffling", 1247 | "name": "mah-jong tile", 1248 | "size": 5.1 1249 | }, 1250 | [ 1251 | 2, 1252 | 5 1253 | ] 1254 | ], 1255 | [ 1256 | { 1257 | "description": "Some people are so skilful that they can build a small house with this.", 1258 | "name": "match", 1259 | "size": 1.6 1260 | }, 1261 | [ 1262 | 3, 1263 | 0 1264 | ] 1265 | ], 1266 | [ 1267 | { 1268 | "description": "A black crayon. Good for drawing the night sky.", 1269 | "name": "black crayon", 1270 | "size": 3.7 1271 | }, 1272 | [ 1273 | 3, 1274 | 1 1275 | ] 1276 | ], 1277 | [ 1278 | { 1279 | "description": "Some people are so skilful that they can build a small house with this.", 1280 | "name": "match", 1281 | "size": 1.6 1282 | }, 1283 | [ 1284 | 3, 1285 | 2 1286 | ] 1287 | ], 1288 | [ 1289 | { 1290 | "description": "Some people are so skilful that they can build a small house with this.", 1291 | "name": "match", 1292 | "size": 1.6 1293 | }, 1294 | [ 1295 | 3, 1296 | 3 1297 | ] 1298 | ], 1299 | [ 1300 | { 1301 | "description": "Some people are so skilful that they can build a small house with this.", 1302 | "name": "match", 1303 | "size": 1.6 1304 | }, 1305 | [ 1306 | 3, 1307 | 3 1308 | ] 1309 | ], 1310 | [ 1311 | { 1312 | "description": "These usually disappear very quickly when playing Pachinko...", 1313 | "name": "pachinko ball", 1314 | "size": 4.7 1315 | }, 1316 | [ 1317 | 3, 1318 | 2 1319 | ] 1320 | ], 1321 | [ 1322 | { 1323 | "description": "These usually disappear very quickly when playing Pachinko...", 1324 | "name": "pachinko ball", 1325 | "size": 4.7 1326 | }, 1327 | [ 1328 | 3, 1329 | 2 1330 | ] 1331 | ], 1332 | [ 1333 | { 1334 | "description": "These usually disappear very quickly when playing Pachinko...", 1335 | "name": "pachinko ball", 1336 | "size": 4.7 1337 | }, 1338 | [ 1339 | 3, 1340 | 2 1341 | ] 1342 | ], 1343 | [ 1344 | { 1345 | "description": "These usually disappear very quickly when playing Pachinko...", 1346 | "name": "pachinko ball", 1347 | "size": 4.7 1348 | }, 1349 | [ 1350 | 3, 1351 | 3 1352 | ] 1353 | ], 1354 | [ 1355 | { 1356 | "description": "These usually disappear very quickly when playing Pachinko...", 1357 | "name": "pachinko ball", 1358 | "size": 4.7 1359 | }, 1360 | [ 1361 | 3, 1362 | 3 1363 | ] 1364 | ], 1365 | [ 1366 | { 1367 | "description": "These usually disappear very quickly when playing Pachinko...", 1368 | "name": "pachinko ball", 1369 | "size": 4.7 1370 | }, 1371 | [ 1372 | 3, 1373 | 3 1374 | ] 1375 | ], 1376 | [ 1377 | { 1378 | "description": "A white crayon. Using this on white paper is pointless", 1379 | "name": "white crayon", 1380 | "size": 5.9 1381 | }, 1382 | [ 1383 | 3, 1384 | 4 1385 | ] 1386 | ], 1387 | [ 1388 | { 1389 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1390 | "name": "red crayon", 1391 | "size": 4.2 1392 | }, 1393 | [ 1394 | 3, 1395 | 4 1396 | ] 1397 | ], 1398 | [ 1399 | { 1400 | "description": "A white crayon. Using this on white paper is pointless", 1401 | "name": "white crayon", 1402 | "size": 5.9 1403 | }, 1404 | [ 1405 | 3, 1406 | 5 1407 | ] 1408 | ], 1409 | [ 1410 | { 1411 | "description": "A white crayon. Using this on white paper is pointless", 1412 | "name": "white crayon", 1413 | "size": 5.9 1414 | }, 1415 | [ 1416 | 3, 1417 | 5 1418 | ] 1419 | ], 1420 | [ 1421 | { 1422 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1423 | "name": "red crayon", 1424 | "size": 4.2 1425 | }, 1426 | [ 1427 | 4, 1428 | 0 1429 | ] 1430 | ], 1431 | [ 1432 | { 1433 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1434 | "name": "red crayon", 1435 | "size": 4.2 1436 | }, 1437 | [ 1438 | 4, 1439 | 0 1440 | ] 1441 | ], 1442 | [ 1443 | { 1444 | "description": "A black crayon. Good for drawing the night sky.", 1445 | "name": "black crayon", 1446 | "size": 3.7 1447 | }, 1448 | [ 1449 | 4, 1450 | 1 1451 | ] 1452 | ], 1453 | [ 1454 | { 1455 | "description": "A black crayon. Good for drawing the night sky.", 1456 | "name": "black crayon", 1457 | "size": 3.7 1458 | }, 1459 | [ 1460 | 4, 1461 | 1 1462 | ] 1463 | ], 1464 | [ 1465 | { 1466 | "description": "A black crayon. Good for drawing the night sky.", 1467 | "name": "black crayon", 1468 | "size": 3.7 1469 | }, 1470 | [ 1471 | 4, 1472 | 2 1473 | ] 1474 | ], 1475 | [ 1476 | { 1477 | "description": "A black crayon. Good for drawing the night sky.", 1478 | "name": "black crayon", 1479 | "size": 3.7 1480 | }, 1481 | [ 1482 | 4, 1483 | 2 1484 | ] 1485 | ], 1486 | [ 1487 | { 1488 | "description": "A black crayon. Good for drawing the night sky.", 1489 | "name": "black crayon", 1490 | "size": 3.7 1491 | }, 1492 | [ 1493 | 4, 1494 | 2 1495 | ] 1496 | ], 1497 | [ 1498 | { 1499 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1500 | "name": "red crayon", 1501 | "size": 4.2 1502 | }, 1503 | [ 1504 | 4, 1505 | 3 1506 | ] 1507 | ], 1508 | [ 1509 | { 1510 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1511 | "name": "red crayon", 1512 | "size": 4.2 1513 | }, 1514 | [ 1515 | 4, 1516 | 3 1517 | ] 1518 | ], 1519 | [ 1520 | { 1521 | "description": "Don't try to eat the whole thing in one bite!", 1522 | "name": "strawberry", 1523 | "size": 10.8 1524 | }, 1525 | [ 1526 | 4, 1527 | 3 1528 | ] 1529 | ], 1530 | [ 1531 | { 1532 | "description": "A little frog. When it was young, it didn't have arms.", 1533 | "name": "tree frog", 1534 | "size": 7.4 1535 | }, 1536 | [ 1537 | 4, 1538 | 4 1539 | ] 1540 | ], 1541 | [ 1542 | { 1543 | "description": "This is from a game where you do a lot of loud shuffling", 1544 | "name": "mah-jong tile", 1545 | "size": 5.1 1546 | }, 1547 | [ 1548 | 4, 1549 | 4 1550 | ] 1551 | ], 1552 | [ 1553 | { 1554 | "description": "A black crayon. Good for drawing the night sky.", 1555 | "name": "black crayon", 1556 | "size": 3.7 1557 | }, 1558 | [ 1559 | 4, 1560 | 4 1561 | ] 1562 | ], 1563 | [ 1564 | { 1565 | "description": "A little frog. When it was young, it didn't have arms.", 1566 | "name": "tree frog", 1567 | "size": 7.4 1568 | }, 1569 | [ 1570 | 4, 1571 | 4 1572 | ] 1573 | ], 1574 | [ 1575 | { 1576 | "description": "A little frog. When it was young, it didn't have arms.", 1577 | "name": "tree frog", 1578 | "size": 7.4 1579 | }, 1580 | [ 1581 | 4, 1582 | 5 1583 | ] 1584 | ], 1585 | [ 1586 | { 1587 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1588 | "name": "red crayon", 1589 | "size": 4.2 1590 | }, 1591 | [ 1592 | 5, 1593 | 0 1594 | ] 1595 | ], 1596 | [ 1597 | { 1598 | "description": "A white crayon. Using this on white paper is pointless", 1599 | "name": "white crayon", 1600 | "size": 5.9 1601 | }, 1602 | [ 1603 | 5, 1604 | 0 1605 | ] 1606 | ], 1607 | [ 1608 | { 1609 | "description": "A black crayon. Good for drawing the night sky.", 1610 | "name": "black crayon", 1611 | "size": 3.7 1612 | }, 1613 | [ 1614 | 5, 1615 | 1 1616 | ] 1617 | ], 1618 | [ 1619 | { 1620 | "description": "A red crayon. This is not lipstick. Girls, be careful.", 1621 | "name": "red crayon", 1622 | "size": 4.2 1623 | }, 1624 | [ 1625 | 5, 1626 | 1 1627 | ] 1628 | ], 1629 | [ 1630 | { 1631 | "description": "A black crayon. Good for drawing the night sky.", 1632 | "name": "black crayon", 1633 | "size": 3.7 1634 | }, 1635 | [ 1636 | 5, 1637 | 2 1638 | ] 1639 | ], 1640 | [ 1641 | { 1642 | "description": "A black crayon. Good for drawing the night sky.", 1643 | "name": "black crayon", 1644 | "size": 3.7 1645 | }, 1646 | [ 1647 | 5, 1648 | 2 1649 | ] 1650 | ], 1651 | [ 1652 | { 1653 | "description": "Some people are so skilful that they can build a small house with this.", 1654 | "name": "match", 1655 | "size": 1.6 1656 | }, 1657 | [ 1658 | 5, 1659 | 3 1660 | ] 1661 | ], 1662 | [ 1663 | { 1664 | "description": "Some people are so skilful that they can build a small house with this.", 1665 | "name": "match", 1666 | "size": 1.6 1667 | }, 1668 | [ 1669 | 5, 1670 | 3 1671 | ] 1672 | ], 1673 | [ 1674 | { 1675 | "description": "You turn this thing, and it will hold other things.", 1676 | "name": "short screw", 1677 | "size": 2.5 1678 | }, 1679 | [ 1680 | 5, 1681 | 5 1682 | ] 1683 | ], 1684 | [ 1685 | { 1686 | "description": "A black crayon. Good for drawing the night sky.", 1687 | "name": "black crayon", 1688 | "size": 3.7 1689 | }, 1690 | [ 1691 | 5, 1692 | 4 1693 | ] 1694 | ], 1695 | [ 1696 | { 1697 | "description": "You turn this thing, and it will hold other things.", 1698 | "name": "short screw", 1699 | "size": 2.5 1700 | }, 1701 | [ 1702 | 5, 1703 | 5 1704 | ] 1705 | ], 1706 | [ 1707 | { 1708 | "description": "You turn this thing, and it will hold other things.", 1709 | "name": "short screw", 1710 | "size": 2.5 1711 | }, 1712 | [ 1713 | 5, 1714 | 5 1715 | ] 1716 | ], 1717 | [ 1718 | { 1719 | "description": "Rub and erase. But it makes a mess.", 1720 | "name": "eraser", 1721 | "size": 8.0 1722 | }, 1723 | [ 1724 | 3, 1725 | 3 1726 | ] 1727 | ] 1728 | ], 1729 | "katamari": 10, 1730 | "location": [ 1731 | 4, 1732 | 4 1733 | ], 1734 | "name": "starter_house", 1735 | "number": 1, 1736 | "status": "unbeaten", 1737 | "time": 120 1738 | } 1739 | ], 1740 | "playing": false, 1741 | "playing_level": false, 1742 | "progress": 1 1743 | } --------------------------------------------------------------------------------