Til 21

김정환·2025년 2월 27일

1️⃣ 코테

못 풀었던 양궁대회 문제를 다시 시도해보다가 막혀서
머리 식힐 겸 다른 문제를 풀었다.

3진법 뒤집기

  • 풀이 코드
  • 풀이 과정
    • 변수 n을 3으로 나눈 나머지를 이용해서 3진법으로 변환한다.
      • 이 과정은 n < 3이 될 때까지 반복한다.
      • 코드 상에서는 이미 역순으로 3진법 수를 구할 수 있으므로 따로 역순 처리를 하지 않았다.
    • 3진법으로 변환된 역순 문자열을 순회하며 10진법으로 변환했다.

이진 변환 반복하기

  • 풀이 코드
  • 풀이 과정
    • 입력받은 문자열이 1이 될 때까지 주어진 과정을 반복한다.
    • while 문을 작성하여 문자열이 1이 아니라면 계속 반복한다.
      • 문자열에서 0을 뺀다. 이때 제거한 0의 갯수를 센다.
      • 0이 빠진 문자열의 길이를 2진법으로 바꾼다.
      • 바꾼 이진법 문자열로 다시 반복한다.
    • 반복한 횟수와 제거한 0의 갯수를 반환한다.

2️⃣ 개인작업

스킬시스템 기반

애니메이션의 기반도 잡았으니 원래하려던 스킬 시스템을 만들어볼 차례다.
스킬도 캐릭터처럼 추가하기 용이하도록 구성해보려고 했다.

먼저 필요할 것으로 예상되는 내용을 정리했다.

구조

처음에는 스킬의 데이터 모델과 실제 행동을 분리하는 구조를 생각했다.

  • 스킬이 공격과 함께 디버프도 부여 가능하도록 하기 위함이다.

그래서 하나의 스킬은 내부적으로 여러 스킬 액션으로 기능을 구성할 수 있도록 구조를 잡았다.

스킬 데이터 모델은 엑셀로 데이터를 받을 수 있게 만들려했다.

여기서 액션은 리스트로 받도록했고 구성은 다음과 같다.

각각의 스킬 액션은 enum 값으로 가지고 있다가 SkillActionFactory를 통해서 받아온다.
반환한 스킬 액션은 모두 아래처럼 ISkillAction 인터페이스를 구현하고 있다.

세부적인 구현은 각각의 하위에서 맡도록한다.
다음은 공격 액션의 내용이다.

기반 작업은 이 정도로 해두고 일반 공격을 스킬 데이터로 처리하여 반영하도록 해야겠다.

profile
만성피로 개발자

0개의 댓글