Exemple #1
0
 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
Exemple #2
0
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)))
Exemple #3
0
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)))
Exemple #4
0
 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