프로그래밍 공부

서울게임아카데미 교육과정 6개월 C++ ~ DirectX2D 76

카테고리 설명
  • 서론 DirectX11을 구성하기 위해 Framework 와 UnitTest로 두개의 프로젝트로 나누어 관리한다. Framework는 각 라이브러리를 가져와서 연동시키는 역활을 하고, UnitTest는 연동된 라이브러리를 활용하는 직접적인 알고리즘 부분을 맡게 된다. [ 위와같은 방법으로 사용하지 않고 자유롭게 구축하여도 무방하다. ] DirectX 라이브러리 연동하기 이와같이 두개의 프로젝트를 구성하여, Framework 의 프로젝트를 UnitTest에 연동시키기 위해, VS에서는 다음과 같은 설정을 진행한다. 위 항목에서 포함 디렉터리, 라이브러리 디렉터리 를 수정한다. 상속된 값, 에 해당하는 기록들도 같이 복사 붙여넣기 해준다. 위 경로는, DirectX경로의 Include 를 프로젝트 폴더에 복..

  • Queue_by_LinkedList 큐는 선형 데이터 저장방식 중 하나로, FIFO구조를 따르며, 선입선출 방식으로 데이터를 기입하고 호출하게 된다. 이러한 큐 구조를 리스트 방식으로 제작할 수 있다. 이러한 큐의 저장방식은 연결리스트 를 통하여 구현하고, Queue라는 Class를 만들어서, 전체 큐의 사이즈, 연결된 부위, 삭제, 기입, 추출 등의 작업을 수행한다. #include using namespace std; template class Queue { public: struct Node { T Data; // 단일연결 리스트 를 통해 구현 Node* Next; //큐 에서는 넣고 빼고 지우고 가능하다. 구현한다. }; private: int count = 0; // 보관 개수 Node* fro..

  • Stack 스텍은 데이터를 후입선출(FIFO) 방식으로 관리하는 자료구조 로, 데이터를 저장하고 검색작업을 수행하는데 사용된다. 스텍의 특징 삽입과 삭제가 제한적이다. 한쪽끝에서만 삽입 삭제가 가능한데, 이것은FIFO구조로 관리하기 때문이다. 스택은 맨위에 추가되며, 가장 위의 요소만을 제거할 수 있다. 접근이 제한적이다. 스택은 가장 위에있는 요소에만 접근, 추가, 삭제 할 수 있다. 스텍의 장점 구조가 직관적이고 단순하다. 메모리를 효율적으로 활용할 수 있다. 재귀 알고리즘을 구현하는데 사용할 수 있다. 재귀호출 상태를 스택에 저장하여, 알고리즘의 진행과 복귀를 관리할 수 있다. 스텍의 단점 고정된 크기를 가지고 있어, 데이터의 개수가 스텍의 크기를 초과하면, 오버플로우가 발생한다. 중간요소에 접근하..

  • Breadth_First_Search 너비우선 탐색은, 그래프 탐색 알고리즘 중 하나로, 그래프의 노드들을 너비 우선으로 탐색하는 방법이다. BFS는, 그래프의 구조를 확인한 뒤, 임의의 두 노드 간의 최단경로를 찾는 등의 문제를 해결하는데 사용된다. BFS의 장점 그래프 상의 최단거리를 찾는데 효과적이다. 재귀적으로 동작하지 않고, 큐를 통해 구현됨으로 메모리관리 측면에서 효율적이다. 그래프에 순환경로가 없다면, 모든 노드 방문이 가능할 수 있다. BFS의 단점 모든 인접 노드를 방문해야 하기 때문에, 그래프가 매우 큰 경우 탐색시간과 메모리 사용량이 증가할 수 있다. BFS는 깊이 우선 탐색(DFS)에 비해, 경로를 찾는데에 더 많은 메모리를 요구한다. 큐에 모든 인접노드 정보를 저장해야하기 때문, ..

  • BruteForce 무차별 대입법(BruteForce) 은 완전탐색 알고리즘 으로, 가능한 모든 경우의 수를 전부 탐색하여 정확한 해답을 찾는 방법이다. 이 방법은 모든 가능한 조합을 검사하기 때문에, 시간이 오래걸림으로 큰 입력값, 매우 넓은 범위를 탐색하는것 에 대해서는 매우 비효율적이다. 그러나, 직관적인 방식으로 탐색하기 때문에 쉽게 문제를 해결할 수 있다. 다음은 BruteForce를 구현한 알고리즘으로, 10개의 숫자중 8개의 숫자를 더했을 때 100이 나오는 경우를 구하는 코드 이다. #include #include using namespace std; // 무식하게 탐색한다. // 완전탐색 알고리즘. // 모든 경우의 수를 전부 탐색한다. // 백트래킹 = 의미없는 경우는 제외하고 전부 탐..

  • 충돌체 처리를 위해, Physics 를 활용하여 QuadColider, CircleColider 을 제작한다. #pragma once #include "Engine/Input.h" #include "Engine/Physics.h" #include "Engine/Quadrangle.h" #include "Engine/Rendering.h" #include "Engine/Time.h" struct QuadColider { QuadColider() { Skin.Length = { 250, 250 }; Skin.Location = { 300, 0 }; Skin.Name = "Image/GBB"; Body.Length = { 250, 250 }; // 충돌체의 모양 Body.Center = { 300, 0 }; ..