26 lines
822 B
Python
26 lines
822 B
Python
from snake_up_movement_state import SnakeUpMovementState
|
|
from snake_down_movement_state import SnakeDownMovementState
|
|
from snake_left_movement_state import SnakeLeftMovementState
|
|
from snake_right_movement_state import SnakeRightMovementState
|
|
from input_manager import InputManager
|
|
|
|
|
|
class SnakeStateMachine:
|
|
def __init__(self):
|
|
self.__state = SnakeLeftMovementState()
|
|
|
|
self.__next_state_dict = {
|
|
InputManager.UP: SnakeUpMovementState(),
|
|
InputManager.DOWN: SnakeDownMovementState(),
|
|
InputManager.LEFT: SnakeLeftMovementState(),
|
|
InputManager.RIGHT: SnakeRightMovementState()
|
|
}
|
|
|
|
|
|
def update(self, user_input):
|
|
self.__state = self.__next_state_dict.get(user_input, self.__state)
|
|
|
|
|
|
def get_state(self):
|
|
return self.__state
|