Example #1
0
def test_update_state_three_times():
  sm = StateManager()
  new_state = sm.create({"game_id": "debug_testing"})
  updated_state = sm.update(new_state, {"coordinates": [1, 1]})
  assert updated_state.board == {'size': 3, 'status': [[0, 0, 0], [0, 1, 0], [0, 0, 0]]}
  assert updated_state.player_turn == 2
  updated_state = sm.update(updated_state, {"coordinates": [0, 1]})
  assert updated_state.board == {'size': 3, 'status': [[0, 2, 0], [0, 1, 0], [0, 0, 0]]}
  assert updated_state.player_turn == 1
Example #2
0
class Game:

    window = None
    running = False
    state_manager = None

    def __init__(self, is_server=False):
        self.running = True
        self.is_server = is_server
        self.state_manager = StateManager(is_server)
        if is_server:
            self.state_manager.change_state(self.state_manager.server_state)
        else:
            self.state_manager = StateManager()
            pygame.init()
            self.window = pygame.display.set_mode((1024, 768))
            pygame.display.set_caption("Snaky Snake")
            self.state_manager.change_state(self.state_manager.menu_state)
        self.mainloop()

    def mainloop(self):
        while self.running:
            if not self.is_server:
                events = pygame.event.get()
                for event in events:
                    if event.type == pygame.QUIT:
                        self.running = False
                self.state_manager.events = events

                self.update()
                self.render(self.window)
                pygame.display.update()
                pygame.time.delay(10)
                self.window.fill((0, 0, 0))

    def update(self):
        self.state_manager.update()

    def render(self, window):
        self.state_manager.render(window)
Example #3
0
def test_overwrite_state():
    sr = StateRepo()
    sm = StateManager()
    new_state = sm.create({
        "game_id":
        "debug_testing",
        "board_size":
        5,
        "board_status": [[1, 2, 3, 4, 5], [2, 3, 4, 5, 1], [3, 4, 5, 1, 2],
                         [4, 5, 1, 2, 3], [5, 1, 2, 3, 4]]
    })
    sr.write_state(new_state)
    read_data = sr.read_state("debug_testing")
    assert read_data.board == {
        "size":
        5,
        "status": [[1, 2, 3, 4, 5], [2, 3, 4, 5, 1], [3, 4, 5, 1, 2],
                   [4, 5, 1, 2, 3], [5, 1, 2, 3, 4]]
    }
    overwrite_state = sm.update(read_data, {
        "coordinates": [2, 2],
        "player_ids": ["debug", "testing"]
    })
    sr.write_state(overwrite_state)
    overwritten_read_data = sr.read_state("debug_testing")
    assert overwritten_read_data.board == {
        "size":
        5,
        "status": [[1, 2, 3, 4, 5], [2, 3, 4, 5, 1], [3, 4, 1, 1, 2],
                   [4, 5, 1, 2, 3], [5, 1, 2, 3, 4]]
    }
    print(overwritten_read_data.history)
    assert overwritten_read_data.history[0].board == {
        "size":
        5,
        "status": [[1, 2, 3, 4, 5], [2, 3, 4, 5, 1], [3, 4, 5, 1, 2],
                   [4, 5, 1, 2, 3], [5, 1, 2, 3, 4]]
    }