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))
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))
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))
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))
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))
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
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
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
def test_player_dead(self): current_position = self.player.position self.player.death() self.assertEqual(None, map.get_object(current_position))