示例#1
0
    def test_move_down(self):
        map.read_map('map\map.txt')
        direction = 'down'
        map.set_object(self.player.position, self.player)

        maybe_new_position = list(self.player.position)
        maybe_new_position[1] += self.player.step

        self.player.move(direction)

        self.assertEqual(map.get_object(maybe_new_position),
                         map.get_object(self.player.position))
示例#2
0
    def test_move_bonus(self):
        map.read_map('map\map.txt')
        direction = 'right'
        self.player.position = [1, 1]
        bonus = Bonus([2, 1])
        map.set_object(self.player.position, self.player)
        map.set_object(bonus.position, bonus)

        maybe_new_position = list(self.player.position)
        maybe_new_position[0] += self.player.step

        self.player.move(direction)

        self.assertEqual(map.get_object(maybe_new_position),
                         map.get_object(self.player.position))
示例#3
0
    def test_move_wall(self):
        map.read_map('map\map.txt')
        direction = 'left'
        self.player.position = [1, 1]
        map.set_object(self.player.position, self.player)

        default_position = self.player.position

        maybe_new_position = list(self.player.position)
        maybe_new_position[0] -= self.player.step

        self.player.move(direction)

        self.assertEqual(map.get_object(default_position),
                         map.get_object(self.player.position))
示例#4
0
    def test_move_enemy(self):
        map.read_map('map\map.txt')
        direction = 'right'
        self.player.position = [1, 1]
        enemy = Lower([2, 1])
        map.set_object(self.player.position, self.player)
        map.set_object(enemy.position, enemy)

        default_position = self.player.position

        maybe_new_position = list(self.player.position)
        maybe_new_position[0] += self.player.step

        self.player.move(direction)

        self.assertEqual(map.get_object(default_position),
                         map.get_object(self.player.position))
示例#5
0
    def test_move_bomb(self):
        map.read_map('map\map.txt')
        direction = 'right'
        self.player.position = [1, 1]
        self.simple_bomb.position = [2, 1]
        map.set_object(self.player.position, self.player)
        map.set_object(self.simple_bomb.position, self.simple_bomb)

        default_position = self.player.position

        maybe_new_position = list(self.player.position)
        maybe_new_position[0] += self.player.step

        self.player.move(direction)

        self.assertEqual(map.get_object(default_position),
                         map.get_object(self.player.position))
示例#6
0
    def try_move(self, direction):
        """
        Метод пытается переместить Enemy по направлению direction с помощью метода map.can_move.
        Если map.can_move вернёт True, то заменяем объект по направлению direction на Enemy и делаем пустой
        позицию где стоял Enemy.
        :param direction: Параметр принимает направление, куда двигается Enemy.
        :return: None
        """
        new_position = list(self.position)

        if direction == 'left':
            new_position[0] -= self.step
        elif direction == 'right':
            new_position[0] += self.step
        elif direction == 'down':
            new_position[1] += self.step
        elif direction == 'up':
            new_position[1] -= self.step

        if not map.can_move(new_position):
            # Короче, если моб попадает в 'ловушку' пускай умирает, чтобы небыло рекурсии*
            try:
                self.choose_direction()
            except RecursionError:
                self.death()

            return

        if isinstance(map.get_object(self.position), Enemy):
            map.set_object(self.position, None)

        if not isinstance(map.get_object(new_position), Player):
            map.set_object(new_position, self)

        self.position = new_position  # узанть почему подчёркивает.

        return True
示例#7
0
    def try_move(self, new_position):
        """
        Метод пытается переместить Player на координату new_position с помощью метода map.can_move.
        Если map.can_move вернёт True, то заменяем объект по координате new_position на Player и делаем пустой
        позицию где стоял Player.
        :param new_position: Параметр принимает координату, куда хочет перейти Player.
        :return: None
        """
        if not map.can_move(new_position):
            return

        if isinstance(map.get_object(self.position), Player):
            map.set_object(self.position, None)
        map.set_object(new_position, self)
        if self.screen:
            self.screen.anime_player3(self.position, new_position)
        self.position = new_position
示例#8
0
 def drop_bomb(self):
     """
     Метод установки бомбы.
     :return: None
     """
     if isinstance(map.get_object(self.position),
                   Player) and self.count_bomb > 0.9:
         if self.type_bomb == 0:
             is_bomb = SimpleBomb(self.position,
                                  self,
                                  self.power_bomb,
                                  screen=self.screen)
         else:
             is_bomb = Mine(self.position, self, screen=self.screen)
         constants.SET_BOMBS.add(is_bomb)
         map.set_object(self.position, is_bomb)
         self.count_bomb -= 1
         print('Осталось: {} бомб(ы)'.format(self.count_bomb))
     else:
         return
示例#9
0
 def test_player_dead(self):
     current_position = self.player.position
     self.player.death()
     self.assertEqual(None, map.get_object(current_position))