def test_it_should_draw_a_screen_around_a_point(self): s = Screen() map_size = [10, 10] screen_size = [3, 3] selected_point = [1, 1] expected = [ [(0, 0), (1, 0), (2, 0)], [(0, 1), (1, 1), (2, 1)], [(0, 2), (1, 2), (2, 2)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def test_it_should_not_draw_past_the_top_left(self): s = Screen() map_size = [10, 10] screen_size = [3, 3] selected_point = [0, 9] expected = [ [(0, 7), (1, 7), (2, 7)], [(0, 8), (1, 8), (2, 8)], [(0, 9), (1, 9), (2, 9)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def test_it_should_draw_an_even_size_screen(self): s = Screen() map_size = [4, 4] screen_size = [4, 4] selected_point = [0, 0] expected = [ [(0, 0), (1, 0), (2, 0), (3, 0)], [(0, 1), (1, 1), (2, 1), (3, 1)], [(0, 2), (1, 2), (2, 2), (3, 2)], [(0, 3), (1, 3), (2, 3), (3, 3)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def test_it_should_not_draw_past_the_bottom_right(self): s = Screen() map_size = [10, 10] screen_size = [3, 3] selected_point = [9, 9] expected = [ [(7, 7), (8, 7), (9, 7)], [(7, 8), (8, 8), (9, 8)], [(7, 9), (8, 9), (9, 9)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def test_it_should_not_draw_past_the_top_right(self): s = Screen() map_size = [10, 10] screen_size = [3, 3] selected_point = [9, 0] expected = [ [(7, 0), (8, 0), (9, 0)], [(7, 1), (8, 1), (9, 1)], [(7, 2), (8, 2), (9, 2)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def test_it_should_draw_an_even_size_sub_screen(self): s = Screen() map_size = [6, 6] screen_size = [4, 4] selected_point = [5, 5] expected = [ [(2, 2), (3, 2), (4, 2), (5, 2)], [(2, 3), (3, 3), (4, 3), (5, 3)], [(2, 4), (3, 4), (4, 4), (5, 4)], [(2, 5), (3, 5), (4, 5), (5, 5)], ] assert expected == s.draw(map_size, screen_size, selected_point)
def __init__(self): Scene.__init__(self) self._screen = Screen() self._player = PlayerCharacter() self._floor = CurrentFloor() self._sight = Sight(self._player) self._floor.put_monster(Monster())
class DungeonScene(Scene): def __init__(self): Scene.__init__(self) self._screen = Screen() self._player = PlayerCharacter() self._floor = CurrentFloor() self._sight = Sight(self._player) self._floor.put_monster(Monster()) def initialize(self): self._screen.clear() def update(self): self._floor.update_monsters() self.draw() self.control(self._screen.read_key()) def control(self, key): if key == 'l': self.walk_player(Direction.EAST) elif key == 'h': self.walk_player(Direction.WEST) elif key == 'k': self.walk_player(Direction.NORTH) elif key == 'j': self.walk_player(Direction.SOUTH) elif key == 'y': self.walk_player(Direction.NORTH_WEST) elif key == 'u': self.walk_player(Direction.NORTH_EAST) elif key == 'b': self.walk_player(Direction.SOUTH_WEST) elif key == 'n': self.walk_player(Direction.SOUTH_EAST) elif key == '>': self.down_stairs() def walk_player(self, direction): self._floor.walk_character(direction, self._player) def down_stairs(self): if not self._floor.is_down_stairs_at(self._player.position()): return if not self._floor.is_last_floor(): self._floor.next() self._screen.clear() else: GameScene.change(EndingScene()) def draw(self): self._sight.draw(self._screen) self._player.draw(self._screen)
class TitleScene(Scene): def __init__(self): Scene.__init__(self) self._screen = Screen() def initialize(self): self._screen.clear() self._screen.write('*** Rogue Rebuild ***') self._screen.move((0, 0)) def update(self): key = self._screen.read_key() GameScene.change(DungeonScene())
def __init__(self): Scene.__init__(self) self._screen = Screen()
class EndingScene(Scene): def __init__(self): Scene.__init__(self) self._screen = Screen() def initialize(self): self._screen.clear() self._screen.set_color(Color.RED) self._screen.write('You Won!!') self._screen.move((0, 1)) self._screen.set_color(Color.YELLOW) self._screen.write('-- Press Any Key --') def update(self): key = self._screen.read_key() Game.over()