def build(self): self.progress=self.load_progress() self.grid_screen=LevelChooser() self.grid_screen.bind(on_level=self.level_choice) self.grid_screen.bind(on_wtf=self.wtf) self.grid_screen.color_progress(self.progress) self.level_screen=Level() self.wtf_screen=Help() self.level_screen.bind(on_pass=self.success) self.root=ScreenManager() self.root.add_widget(self.grid_screen) self.root.add_widget(self.level_screen) self.root.add_widget(self.wtf_screen) self.bind(on_start = self.post_build_init) return self.root
class CaterpillarsApp(App): def build(self): self.progress=self.load_progress() self.grid_screen=LevelChooser() self.grid_screen.bind(on_level=self.level_choice) self.grid_screen.bind(on_wtf=self.wtf) self.grid_screen.color_progress(self.progress) self.level_screen=Level() self.wtf_screen=Help() self.level_screen.bind(on_pass=self.success) self.root=ScreenManager() self.root.add_widget(self.grid_screen) self.root.add_widget(self.level_screen) self.root.add_widget(self.wtf_screen) self.bind(on_start = self.post_build_init) return self.root def post_build_init(self,ev): if ANDROID: android.map_key(android.KEYCODE_BACK, 1001) win = self._app_window win.bind(on_keyboard=self.key_handler) def key_handler(self,keyboard,keycode, *args, **kwargs): if keycode==(1001 if ANDROID else 32): self.root.current="grid" def level_choice(self,instance,level_id,rule): self.cur_level=level_id self.root.current="level" self.level_screen.start_game(rule) # self.root.current="level" def success(self,instance): if not self.cur_level in self.progress: self.progress.append(self.cur_level) self.grid_screen.color_progress(self.progress) self.save_progress() self.root.current="grid" def wtf(self,*args): self.root.current="wtf" def load_progress(self): try: return map(int,open(os.path.join(CATALOG_ROOT,"progress.txt")).read().split()) except: return [] def save_progress(self): open(os.path.join(CATALOG_ROOT,"progress.txt"),"w").write(' '.join(map(str,self.progress)))
class CaterpillarsApp(App): def build(self): self.progress = self.load_progress() self.grid_screen = LevelChooser() self.grid_screen.bind(on_level=self.level_choice) self.grid_screen.bind(on_wtf=self.wtf) self.grid_screen.color_progress(self.progress) self.level_screen = Level() self.wtf_screen = Help() self.level_screen.bind(on_pass=self.success) self.root = ScreenManager() self.root.add_widget(self.grid_screen) self.root.add_widget(self.level_screen) self.root.add_widget(self.wtf_screen) self.bind(on_start=self.post_build_init) return self.root def post_build_init(self, ev): if ANDROID: android.map_key(android.KEYCODE_BACK, 1001) win = self._app_window win.bind(on_keyboard=self.key_handler) def key_handler(self, keyboard, keycode, *args, **kwargs): if keycode == (1001 if ANDROID else 32): self.root.current = "grid" def level_choice(self, instance, level_id, rule): self.cur_level = level_id self.root.current = "level" self.level_screen.start_game(rule) # self.root.current="level" def success(self, instance): if not self.cur_level in self.progress: self.progress.append(self.cur_level) self.grid_screen.color_progress(self.progress) self.save_progress() self.root.current = "grid" def wtf(self, *args): self.root.current = "wtf" def load_progress(self): try: return map(int, open(os.path.join(CATALOG_ROOT, "progress.txt")).read().split()) except: return [] def save_progress(self): open(os.path.join(CATALOG_ROOT, "progress.txt"), "w").write(" ".join(map(str, self.progress)))
def build(self): self.progress = self.load_progress() self.grid_screen = LevelChooser() self.grid_screen.bind(on_level=self.level_choice) self.grid_screen.bind(on_wtf=self.wtf) self.grid_screen.color_progress(self.progress) self.level_screen = Level() self.wtf_screen = Help() self.level_screen.bind(on_pass=self.success) self.root = ScreenManager() self.root.add_widget(self.grid_screen) self.root.add_widget(self.level_screen) self.root.add_widget(self.wtf_screen) self.bind(on_start=self.post_build_init) return self.root