[TIL] 2025-06-04 알고리즘 문제, 다양한 기능 구현, 기존 코드 리팩토링
2025-06-04 TIL
알고리즘 문제
이번 문제에서는 그래프를 생성하는 것까지 직접 해보았지만, 이후에 문제를 풀기 위한 알고리즘을 구현해내지는 못했습니다.
다익스트라 알고리즘은 이전에 학습도 해보고 사용도 해보았는데, 이번 문제처럼 변형해서 사용하는 방법은 고려해보지 못했습니다.
기존에 학습했던 알고리즘을 잘 기억해두고, 응용하는 것들도 학습해두는게 중요한 것 같습니다.
[프로그래머스][C++] 등산코스 정하기
최종 프로젝트
다양한 기능 구현
보스를 처치했을 때 상호작용이 가능한 액터를 추가하여 던전에서 타이쿤으로 재료를 보낸 후 레벨을 이동할 수 있도록 구현해보았습니다.
우선 상호작용은 이전에 인터페이스를 사용하여 상호작용하는 기능은 구현했기 때문에 기존에 구현했던 것을 활용했습니다.
이외에 액터에서 재료를 보내기 위해 UI를 그려지게하는 것은 어렵지 않았습니다.
다만, 이 UI는 플레이어 컨트롤러에서 관리하지 않고 해당 액터에서 클래스를 가지고 생성하여 뷰포트에 추가해줍니다.
이렇게 한 이유는 UI 생성 타이밍 제어가 쉽고, 플레이어 컨트롤러를 참조하지 않기 때문에 의존성이 감소하여 이렇게 선택했습니다.
또한, UI의 책임 주체가 액터에 한정되므로, 관리에 용이하다 판단하여 액터가 관리하도록 해주었습니다.
다만, UI가 그려지고 레벨을 이동하는 기능과 UI를 제거하여 취소하는 기능까지만 구현하고, 던전에서 타이쿤으로 데이터를 저장하여 재료를 보낸다는 개념을 아직 구현하지는 않았습니다.
다른 우선적으로 작업해야할 부분이 많아서 해당 부분에 일부 기능을 누락하였습니다.
던전의 스테이지 진행 중에 특정 위치에 존재하는 보스방으로 이동하는 액터를 추가해주었습니다.
해당 액터 또한 기존에 구현했던 상호작용 시스템을 활용했고, 이동할 위치를 미리 함수로 설정하여 상호작용 됐을 때 설정된 위치로 이동하도록 구현했습니다.
해당 기능은 로직이 어렵거나 개념이 어렵지 않아서 빠르게 구현해낼 수 있었습니다.
던전에서 사용하는 재화를 구현해 주었습니다.
우선 재화 변수를 추가해 주었고, 해당 변수의 값을 변경하기 위한 Get/Set, 증가/감소 함수를 추가해주었습니다.
후에 UI갱신을 위한 델리게이트 추가해주었습니다.
이외에는 세이브와 로드까지 구현해주어야합니다.
기존 코드 리팩토링
기존에 구현된 유물 인벤토리 위젯의 코드 리팩토링을 진행해주었습니다.
해당 코드에서는 멤버 변수의 이름이 모호하고, 코드 컨벤션에 맞지 않은 부분이 굉장히 많기 때문에 본격적으로 작업을 수행하기전에 리팩토링을 진행해 주었습니다.
해당 클래스의 코드는 팀원이 작성해주었는데, 같은 문제가 발생하지 않도록 예방하기 위해 해당 팀원에게 코드 컨벤션에 맞지 않은 부분들을 설명해 주었습니다.
오늘은 리팩토링까지만 작업을 해주었기 때문에 내일 바로 본격적인 작업을 진행하고자합니다.
댓글남기기