전체 글 93

[개인 프로젝트] ProjectA - 인터페이스, 클래스

IState더보기public interface IState { public void Enter(); public void Update(); public void Exit(); }모든 상태들의 인터페이스 모든 상태는 진입 시점과 탈출 시점이 있으므로, Enter()와 Exit()를 추가했다. 모든 상태는 매 프레임마다 체크할 로직이 필요할 수 있으므로, Update()를 추가했다. BaseState더보기public class BaseState : IState{ // 공통 기능 컴포넌트 protected AnimationController animationController; public virtual void Enter() { } public virtual ..

[코딩테스트] Programmers - H Index (실패)

코딩테스트 연습 - H-Index | 프로그래머스 스쿨 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이[문제] H-Index는 과학자의 생산성과 영향력을 나타내는 지표 어느 과학자의 H_Index를 나타내는 값인 h를 구해야 한다. H_index 구하는 방법 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다. 이때 h의 최댓값이 H_index이다. [입력] - 논문의 인용 횟수 배열 citations [출력] - 과학자의 H_index 반환 [제한사항] - 1편 - 0회 [입출력 예] citations = [3, 0, 6, 1, 5]] 논문의 수 = 5 ..

[개인 프로젝트] ProjectA - 이동 구현 설계

하나의 스크립트에 이동 관련 코드를 모두 넣으면, 가독성과 유지보수성이 떨어진다. 이동 상태들을 여러 스크립트로 분리하고, 상태머신으로 각각의 상태들을 관리한다면, 추후 새로운 상태를 넣을 때 상태 스크립트를 작성하고 상태머신에 등록만 하면 된다. 이동은 상태패턴으로 구현하겠다. 상태패턴으로 상태 흐름을 관리하고, 실제 기능 수행은 기능 컴포넌트로 구현하겠다. 인터페이스/클래스 구조 인터페이스/클래스별 역할 정리IState상태가 기본적으로 가져야 할 기능 정의 BaseStateIState를 구현모든 상태가 가져야 할 기능 컴포넌트를 가진다. PlayerGroundStateBaseState를 상속받는 클래스 땅에서 공통적으로 처리해야 하는 기능 컴포넌트를 가진다. PlayerAirStat..