rename
This commit is contained in:
parent
a0715f5be0
commit
78613ef615
@ -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:
|
||||||
|
@ -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):
|
Loading…
x
Reference in New Issue
Block a user