2024/10/27 4

상속구조를 이용한 유한 상태 기계 + Component Pattern을 곁들인...

얼마전에 책에서도 봤고, 최근 블로그에 정리해 놓기도 한 enum 쓰지않고 state 패턴 관리하는 방법을 현재 진행하는 프로젝트에 적용하고 싶어졌다. state를 클래스로 빼고 enum을 쓰지 않고 사용하면 다음과 같은 이점이 있다. state 패턴을 상속구조로 이용해 다양한 state 패턴을 만들 수 있다. 또한 클래스이기 때문에 코드 관리하기가 편하다. menuState, AIState, PlayerState .. 등등 을 하위 클래스로 관리하고 설계하게되면, 추후 코드가 더 깔끔하게 정돈되기 때문이다. 코드가 정돈이 되면 이로 인해 가독성도 높아진다. 클래스로 만들었기 때문에 재사용성도 높아져 효율도 좋아진다. 따라서 ActorClass에서 map으로 Component를 관리하고, StateCom..

네트워크 미시적으로 살펴보기

이번에 학습한 개념은 크게 세 가지 이다. 통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜통신이 일어나는 구조를 계층화한 네트워크 참조 모델통신 과정에서 이루어지는 캡슐화(역캡슐화)이다. 프로토콜네트워크에도 언어와 유사한 개념이 바로 프로토콜이다. 언어가 정보를 주고받기 위해 사회적으로 합의돈 의사소통 방식이라면,프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다. 현대 인터넷은 호스트 간 패킷을 교환하는 방식으로 대부분 패킷 교환 방식을 사용한다.패킷은 택배와 유사한 개념으로,  1. 우선 페이로드를 담고2. 도착지 정보인 헤더를 작성하고 첨부3. 네트워크 장비를 통해 발송 과정을 거친다. 즉, 서로 다른 통신 장치들이 정보를 주고받..

[백준 골드5] 2023 신기한 소수

https://www.acmicpc.net/problem/2023 자릿수가 한 개인 소수 2,3,5,7을 시작으로 탐색한다. 이어서 자릿수가 두 개인 현재 수 * 10 + a를 계산하여 이 수가 소수인지 판단하고,소수라면 재귀 함수로 자릿수를 하나 또 늘린다.단 a가 짝수인 경우 항상 2를 약수로 가지므로 가지치기로 a가 짝수인 경우를 제외한다.이런 방식으로 자릿수를 N까지 확장했을 때 그 값이 소수라면 해당 값을 출력한다. 이러한 방식으로 DFS를 이용한 탐색이 가능하다. #include #include #include #include #include #include #include #include #include #include #include using namespace std;int N;void ..

인공지능 - 상태 기계 설계 해시맵 이용하기

게임 인공지능 구현에 빠질 수 없는 것이 있다.State Machine Behaviors 상태 기계 행위이다. 아주 간단한 게임에서는 AI는 항상 같은 행위를 한다.다음과 같은 3가지 행위를 가지는 AI가 있다고 가정해보자. 플레이어 쫒아가기흩어지기플레이어로부터 멀어지기이러한 행위의 변화를 표현하는 한 가지 방법으로 각 행위가 하나의 상태를 가지는상태 기게 (State Machine)이란 것이 있다. 상태 기계 설계하기 상태 그 자체는 부분적으로 하나의 상태 기계만 정의한다.그래서 상태 기계 설계에 있어서 상태 기계를 변경하거나상태 기계 간 전이하는 방법을 결정하는 것이 중요하다. state 상태를 구분할 때는 주로 enum class를 사용한다.enum class 혹은 enum을 사용하면switch 문..

그래픽스/OpenGL 2024.10.27