This commit is contained in:
adrienmalin 2019-09-28 14:54:11 +02:00
parent a0715f5be0
commit 78613ef615
2 changed files with 12 additions and 13 deletions

View File

@ -13,7 +13,7 @@ python -m pip install --user arcade
""" """
) )
from tetris import Tetris, Status, AbstractScheduler from tetrislogic import TetrisLogic, Status, AbstractScheduler
# Constants # Constants
@ -105,8 +105,7 @@ class ArcadeScheduler(AbstractScheduler):
self._tasks = {} self._tasks = {}
def start(self, task, period): def start(self, task, period):
def _task(delta_time): _task = lambda _: task()
task()
self._tasks[task] = _task self._tasks[task] = _task
arcade.schedule(_task, period) arcade.schedule(_task, period)
@ -120,7 +119,7 @@ class ArcadeScheduler(AbstractScheduler):
del self._tasks[task] del self._tasks[task]
class TetrArcade(Tetris, arcade.Window): class TetrArcade(TetrisLogic, arcade.Window):
scheduler = ArcadeScheduler() scheduler = ArcadeScheduler()
@ -129,7 +128,7 @@ class TetrArcade(Tetris, arcade.Window):
locale.setlocale(locale.LC_ALL, '') locale.setlocale(locale.LC_ALL, '')
self.actions = { self.KEY_MAP = {
Status.STARTING: { Status.STARTING: {
arcade.key.ENTER: self.new_game arcade.key.ENTER: self.new_game
}, },
@ -217,7 +216,7 @@ class TetrArcade(Tetris, arcade.Window):
def on_key_press(self, key, modifiers): def on_key_press(self, key, modifiers):
for key_or_modifier in (key, modifiers): for key_or_modifier in (key, modifiers):
try: try:
action = self.actions[self.status][key_or_modifier] action = self.KEY_MAP[self.status][key_or_modifier]
except KeyError: except KeyError:
pass pass
else: else:
@ -225,7 +224,7 @@ class TetrArcade(Tetris, arcade.Window):
def on_key_release(self, key, modifiers): def on_key_release(self, key, modifiers):
try: try:
action = self.actions[self.status][key] action = self.KEY_MAP[self.status][key]
except KeyError: except KeyError:
pass pass
else: else:

View File

@ -182,7 +182,7 @@ class Tetromino:
return cls.random_bag.pop()() return cls.random_bag.pop()()
class Tetris(): class TetrisLogic():
T_SLOT = (Coord(-1, 1), Coord(1, 1), Coord(1, -1), Coord(-1, -1)) T_SLOT = (Coord(-1, 1), Coord(1, 1), Coord(1, -1), Coord(-1, -1))
@ -227,7 +227,7 @@ class Tetris():
self.current_piece = None self.current_piece = None
self.held_piece = None self.held_piece = None
self.status = Status.PLAYING self.status = Status.PLAYING
self.scheduler.start(self.clock, 1) self.scheduler.start(self.update_time, 1)
self.new_level() self.new_level()
def new_level(self): def new_level(self):
@ -460,7 +460,7 @@ class Tetris():
self.status = Status.PAUSED self.status = Status.PAUSED
self.scheduler.stop(self.drop) self.scheduler.stop(self.drop)
self.scheduler.stop(self.lock) self.scheduler.stop(self.lock)
self.scheduler.stop(self.clock) self.scheduler.stop(self.update_time)
self.pressed_actions = [] self.pressed_actions = []
self.stop_autorepeat() self.stop_autorepeat()
@ -469,15 +469,15 @@ class Tetris():
self.scheduler.start(self.drop, self.fall_delay) self.scheduler.start(self.drop, self.fall_delay)
if self.current_piece.prelocked: if self.current_piece.prelocked:
self.scheduler.start(self.lock, self.lock_delay) self.scheduler.start(self.lock, self.lock_delay)
self.scheduler.start(self.clock, 1) self.scheduler.start(self.update_time, 1)
def game_over(self): def game_over(self):
self.status = Status.OVER self.status = Status.OVER
self.scheduler.stop(self.drop) self.scheduler.stop(self.drop)
self.scheduler.stop(self.clock) self.scheduler.stop(self.update_time)
self.scheduler.stop(self.repeat_action) self.scheduler.stop(self.repeat_action)
def clock(self, delta_time=1): def update_time(self, delta_time=1):
self.time += delta_time self.time += delta_time
def do_action(self, action): def do_action(self, action):