[BOJ 알고리즘, C++] #25305_커트라인, 정렬 알고리즘, STL, 내림차순 BOJ 알고리즘 문제 풀이, 25305_커트라인 STL이 제공하는 정렬 알고리즘을 통해 커트라인 바로 위 점수를 출력하는 문제 문제 풀이 [Basic C++] #32-3_STL 정렬 알고리즘 [Basic C++] #32-3_STL 정렬 알고리즘 C++ 개발에서 표준 라이브러리(STL)에 대해 알아보겠습니다. "전문가를 위한 C"의 15 항목, "C++ 표준 라이브러리 살펴보기"에 해당하는 내용입니다. 정렬 알고리즘 webddevys.tistory.com // greater() : 내림차순 정렬 // less() : 오름차순 정렬, Default sort ( begin(v), end(v), less() or greater..
[BOJ 알고리즘, C++] #11050_이항 계수 1, 이항 계수 공식, 재귀 문 활용 BOJ 알고리즘 문제 풀이, 11050_이항 게수 1 이항 계수 공식을 재귀문을 구현하는 문제 문제 풀이 1. 이항 계수 공식 ( N ) ( K ) = N! / ( K! (N - k)! ) 2. 팩토리얼 재귀문 int Factorial( int num ) { if(n == 0 || n == 1) return 1; else return num * Factorial(num - 1); } 결과 코드 #include using namespace std; int N, K; // 재귀문을 활용한 Factorial 구현 int Factorial(int num) { if(num == 0 || num == 1) return 1; e..
[BOJ 알고리즘, C++] #2609_최대 공약수와 최소 공배수, 유클리드 호제법 BOJ 알고리즘 문제 풀이, 2609_최대 공약수와 최소 공배수유클리드 호제법 알고리즘을 통해 두 자연수의 최대 공약수와 최소 공배수를 구하는 문제 문제 풀이 1. 유클리드 호제법A = 106, B = 161.C = A % B = 106 % 16 = 10A 유클리드 호제법은 2개의 자연수의 최대공약수를 구하는 알고리즘의 하나입니다.A와 B를 나눈 나머지 값을 R이라고 한다면, A와 B의 최대 공약수는 B와 R의 최대 공약수와 같습니다!이 성질을 이용하여, B(혹은 Determinant)를 이전의 나머지 값으로 나누는 작업을 반복합니다.최종적으로, 나머지 값이 0이 되었을 때, "마지막 B" 값이 A와 B의 최대 공약수..
[디자인 패턴] #9_업데이트 패턴, Update Pattern 게임 디자인 패턴 중 "순서 패턴"에 대해 알아보겠습니다. "게임 프로그래밍 패턴"의 10 항목, "업데이트 메서드"에 해당하는 내용입니다. 업데이트 패턴 1. 개념 * 개념 : 객체 컬렉션에 들어 있는 객체별로 한 프레임 단위의 작업을 진행하라고 "알려줘서" 전체를 시뮬레이션한다. 2. 왜? // 메인 게임 루프 while(true) { //... // 몬스터 객체의 이동 거리 업데이트 if(bMonsterLeft == true) { x--; if(x == 0) bMosterLeft = false; }else { x++; if(x == 100) bMonsterLeft = true; } // 이동 거리 결과 업데이트 Monster.setPo..
[Unreal]#13_State Machine, 상태 기계 Unreal 개발 중 "Chracter Animation"에 대해 알아보겠습니다. "Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다. State Machine 1. 상태 기계 생성 1. Animation Blueprint 에디터 창에서 Anim Graph 위에 새로운 State Machine을 생성합니다. 2. Alive or Dead? 1. 새로 추가한 State Machine을 "Death"로 명명합니다. 2. "Death" 상태 기계 내부에 "Alive"와 "Dead" 상태를 각각 추가해줍니다. 3. "Alive" 상태와 "Dead" 상태를 서로 연결합니다. * 화살표는 "전이"를 의미하며, 각 ..
[Unreal]#12_Aim Offset(Pitch 값 설정), Delta Rotator 활용 Unreal 개발 중 "Chracter Animation"에 대해 알아보겠습니다. "Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다. Additive Settings 1. Additive Settings? * Additive Animation? : 주어진 Animation위에 추가적으로 설정하는 Animation! 2. Additive Animation 연결 방법 1. Additive Aniamtion을 추가할 Base Pose ( 원본이 되는 Animation )을 연결합니다. 2. Base Animation이 연결되었던 Blend Pose By Boolean 노드..
[Unreal]#11_Blend Pose By Boolean Unreal 개발 중 "Chracter Animation"에 대해 알아보겠습니다. "Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다. Blend Pose By Boolean 1. 개념 * Blend Pose By Boolean? : 이 노드는 사실상 "분기문"으로 입력받은 Boolean 값에 따라서, 두 개의 입력 포즈 중 하나를 선택합니다. 2. 사용 방법 1. Animation Blueprint 에디터 창 열기 2. Anim Graph에서 "bool로 포즈 블렌딩" 열기 1. 두 개의 입력 포즈를 각각 "True" 혹은 "False"로 설정 2. 해당 Blend Pose By Boolean 노드를..
[디자인 패턴] #8_게임 루프, Game Loop Pattern 게임 디자인 패턴 중 "순서 패턴"에 대해 알아보겠습니다. "게임 프로그래밍 패턴"의 9 항목, "게임 루프"에 해당하는 내용입니다. 게임 루프 1. 사용 목적 * Why? : 게임 시간 진행을 유저 입력과 프로세서의 속도와 디커플링 합니다. 2. 개념 사용자 입력을 기다리는 동안 루프가 계속 돌며 게임을 진행합니다. 루프가 얼마나 빠르게 돌았는지에 따라서 "FPS"가 측정되며, 어떠한 플랫폼에서도 일정한 속도를 유지하는 것이 주요합니다! 코드 예제 1. 게임 루프의 기본 형태 while(true) { processInput(); update(); render(); } 1. 사용자 입력 처리 2. 상태 업데이트 3. 화면에 그려내기 * 주..
[Unreal]#10_Damage + Health 구현 Unreal 개발 중 "Gun Actor"에 대해 알아보겠습니다. "Simple Shooter Game"의 Character Class 개발 과정 중 일부입니다. Health 1. AShooterCharacter.h // Character.h 내부... class Character : public ACharacter { //... public: virtual float TakeDamage(float DamageAmount, FDamageEvent const& DamageEvent, AController* EventInstigator, AActor* DamageCauser) override; // BlueprintPure와 const는 같이 갑니다. ..
[디자인 패턴] #7_이중 버퍼, Double Buffer 게임 디자인 패턴 중 "이중 버퍼 패턴"에 대해 알아보겠습니다. "게임 프로그래밍 패턴"의 8 항목, "이중 버퍼"에 해당하는 내용입니다. 이중 버퍼 1. 개념 * 이중 버퍼 패턴? : 어떠한 클래스는 변경이 가능한 상태를 캡슐화합니다. 해당 상태는 지속적으로 변경되지만, 외부에서 볼 때 한 번에 변경되는 것처럼 보이게 하고 싶습니다. 따라서, 해당 클래스를 "현재" 상태와 "다음" 상태를 갖도록 합니다! 이때, "현재" 상태는 항상 "읽기" 전용이며, "다음" 상태는 항상 "쓰기" 혹은 "변경"에 사용됩니다! 2. 그렇다면, 언제? 1. 순차적으로 변경해야 하는 상태가 있을 때 2. 변경 도중에도 접근 할 수 있는 상태가 있을 때 3. 외부에서..