Beispiel #1
0
 def change_tetri(self):
     for canv in self.next_tetri_canv:
         canv.delete('all')
     self.current_tetri = Tetrimino((4, -1), self.canvas, form=self.next_tetri[0].form)
     self.update_predict()
     for i in range(len(self.next_tetri) - 1):
         self.next_tetri[i] = Tetrimino((0, 0), self.next_tetri_canv[i], form=self.next_tetri[i + 1].form, previsualization=True)
     self.next_tetri[-1] = Tetrimino((0, 0), self.next_tetri_canv[-1], previsualization=True)
Beispiel #2
0
 def hold(self):
     """Permet de sauvegarder le tetrimino actuel pour l'echanger avec celui sauvegarder avant (passe au suivant si il n'y a pas eu de sauvegarde avant)"""
     if not self.holded:
         self.hold_canvas.delete('all')
         self.holded = True
         if not self.hold_tetri:
             self.current_tetri.destroy()
             self.hold_tetri = Tetrimino((0,0), self.hold_canvas, form=self.current_tetri.base_form, previsualization=True)
             self.next()
         else:
             hold_form = self.hold_tetri.form
             pos = self.current_tetri.position
             self.hold_tetri = Tetrimino((0,0), self.hold_canvas, form=self.current_tetri.base_form, previsualization=True)
             self.current_tetri.destroy()
             self.current_tetri = Tetrimino(pos, self.canvas, form=hold_form)
Beispiel #3
0
 def start_game(self):
     self.playing = True
     self.music.play()
     self.master.bind("<Key>", self.__controls)
     self.master.bind("<KeyRelease>", self.__controls_released)
     self.board = self.__create_board(Config.GRID_WIDTH, Config.GRID_HEIGHT)
     self.message_queue = list()
     self.message_up = False
     self.message_timer = 0
     self.predict = None
     self.next_tetri = [Tetrimino((0, 0), self.next_tetri_canv[i], previsualization=True) for i in range(5)]
     self.change_tetri()
     self.soft_droping = False
     self.spining = False
     self.holded = False
     self.hold_tetri = None
     self.spin_count = 0
     self.tetri_count = 0
     self.speed = Config.SPEED
     self.level = 0
     self.level_var.set("Level : " + str(self.level))
     self.score = 0
     self.score_var.set(str(self.score))
     self.turn = 0
     self.__draw_grid()
     self.update()
     self.master.mainloop()
Beispiel #4
0
 def controls(self, inp, shift=False, control=False):
     delta = 2 if shift else 1
     if control:
         if inp == 'w':
             self.jump(np.array([-1, 0]))
         elif inp == 'a':
             self.jump(np.array([0, -1]))
         elif inp == 's':
             self.jump(np.array([1, 0]))
         elif inp == 'd':
             self.jump(np.array([0, 1]))
     elif inp == 'a':
         if not self.stop_check(rng=delta, direction=np.array([0, -1])):
             self.move_tetrimino(np.array([0, -delta]))
     elif inp == 'd':
         if not self.stop_check(rng=delta, direction=np.array([0, 1])):
             self.move_tetrimino(np.array([0, delta]))
     elif inp == 'e':
         rotated = self.tetrimino.rotate(clockwise=True)
         if shift: rotated = Tetrimino(rotated).rotate(clockwise=True)
         if len(
                 list(
                     filter(lambda x: x[1] + self.focus[1] in [-1, 10],
                            rotated))) == 0:
             self.draw_tetrimino(clean=True)
             self.tetrimino.squares = rotated
             self.draw_tetrimino()
     elif inp == 'q':
         rotated = self.tetrimino.rotate(clockwise=False)
         if shift: rotated = Tetrimino(rotated).rotate(clockwise=False)
         if len(
                 list(
                     filter(lambda x: x[1] + self.focus[1] in [-1, 10],
                            rotated))) == 0:
             self.draw_tetrimino(clean=True)
             self.tetrimino.squares = rotated
             self.draw_tetrimino()
     elif inp == 's':
         self.jump(np.array([1, 0]))
     elif inp == 'f':
         self.draw_tetrimino(clean=True)
         self.set_tetrimino(random.choice(DEFAULTS)())
Beispiel #5
0
 def update_predict(self):
     if self.predict:
         self.canvas.delete('predict')
     self.predict = Tetrimino(self.current_tetri.pos, self.canvas, form=self.current_tetri.form, predict=True, predictParent=self.current_tetri)
     self.predict.go_down()