오늘의 교훈
- 생각보다 커밋-푸시-머지에서 충돌은 잘 나지 않는다. 새 파일 추가하거나 삭제할 때마다 vcxproj 충돌이 날 확률이 높은 것에는 주의
- 자손 클래스를 제대로 활용(업캐스팅 하면서) 하기 위헤선 필연적으로 포인터를 써야 하는데...데이터 안전을 위해
std::unique_pointer<Enemy>를 쓰게 되면 뭔가뭔가 너무너무 길어진다.
- 하지만 어쩔 수 없는 것인가...
- 복사가 안되는 데이터이다 보니
const & 형태를 많이 쓰게 된다.
- 클래스 설계를 할 때 입력값과 반환값 설정이 제일 중요한 것 같다.
협업 과정에서 파일을 넘나드는 수정이 제일 두려운데 이것을 해야 할 가장 큰 이유가 이 매개변수랑 반환자료형
- 비효율적이고 필요없을 수도 있어도
get함수와 set 함수를 만들어 두는 게 중요한 이유기도 하다.
state machine 은 게임을 관리함에 있어서 가장 편리한 방법. enum class 와 같이 쓰면 가독성이 최고다.
Dummy 를 설계해 두는 건 정말 중요. 어쨌든 프로그램 내에서 돌아가는 구조만 짜 두면 변수 찾아서 변경하기는 생각보다 쉽다.
코드 뭉치
- UI를 규격화, 파편화 한 후 StateMachine 에 넣고 돌리기 -> 통일성 있는 UI 출력 가능

- 랜덤 써서 원하는 범위 뽑아내는 방법
std::random_device rd;
std::mt19937 gen(rd());
std::uniform_int_distribution<int> normalDist(0, 8);