본문 바로가기

카테고리124

백준 온라인 저지 | 10872번 팩토리얼 | C++ 백준 온라인 저지 | 10872번 팩토리얼 | C++ 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 접근 수학에서 팩토리얼(factorial)은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. 예를 들어 N!은 N × (N-1) × (N-2) × ... × 2 × 1을 나타낸다. 재귀 문제를 풀 때 생각해야 할 함수 인자, 기본 조건, 그리고 재귀 조건을 살펴보자. ■ 1.1 함수 인자 N! = N × (N-1) × (N-2) × ... × 2 × 1으로 미루어보아 팩토리얼을 계산하기 위해서 필요한 숫자는 양의 정수 N임을 알 수 있다. 그러므로 재귀 함수에 전달할 인자는 사용자가 입력할 양의 정수 .. 2022. 8. 4.
게임 프로그래밍 패턴 | Chapter 02 명령 패턴 2. 명령 패턴 명령 패턴(command pattern)은 메서드 호출을 실체화(reify)한 것이다. 실체화 혹은 일급(first-class)은 어떤 개념을 변수에 저장하거나 함수에 전달할 수 있도록 데이터, 즉 객체로 바꿀 수 있다는 것을 의미한다. 여기에서 명령 패턴은 메서드 호출을 객체로 만들었다는 의미이다. 2.1 예제: 입력 키 변경 모든 게임에서는 버튼이나 키보드, 마우스를 누르는 등의 사용자 입력을 읽는 코드가 있다. 이런 코드는 입력을 받아서 게임에서 의미 있는 행동으로 전환된다. 입력 단축키를 변경할 수 없게 하려면 다음과 같이 간단하게 구현하면 된다. void InputHandler::handleInput() { if (isPressed(BUTTON_X) jump(); else if .. 2022. 8. 4.
MMORPG 게임 개발 | Part 04 게임 서버 | 멀티스레드 프로그래밍(상) 보호되어 있는 글 입니다. 2022. 8. 4.
2022년 07월 25일 | 삼성 SDS Professional 코딩 테스트를 보다. 보호되어 있는 글 입니다. 2022. 7. 31.
2022년 07월 07일 | 아쉬운 A와 여름 방학 보호되어 있는 글 입니다. 2022. 7. 31.
게임 프로그래밍 패턴 | Chapter 01 구조, 성능, 그리고 게임 1. 구조, 성능, 그리고 게임 1.1 소프트웨어 구조 ■ 1.1.1 좋은 소프트웨어 구조 좋은 소프트웨어 구조란, 무언가를 고쳐야 할 때 그럴 줄 알았다는 듯이 코드가 준비되어 있는 것을 의미한다. 즉, 코드를 거의 건드리지 않고도 적당한 함수를 호출하면 원하는 작업을 할 수 있어야 한다. 먼저 구조는 변경과 관련이 있다. 얼마나 코드를 쉽게 변경할 수 있느냐가 코드 설계를 평가하는 척도가 된다. ■ 1.1.2 코드를 고치는 방법 무슨 이유에서든지 코드를 고쳐야 한다면 먼저 기존 코드를 이해해야 한다. 머릿속에 코드에 대한 큰 그림을 그리고 나면 해결책을 금방 찾을 수 있다. 컴파일이 성공하고 원하는 대로 코드가 돌아가면 코드 리뷰를 요청하기 전에 코드를 정리해야 한다. 추가한 코드를 나머지 코드와 깔.. 2022. 7. 30.
언리얼 C++ 게임 개발의 정석 | Chapter 05 폰의 제작과 조작 5장 폰의 제작과 조작 5.1 폰의 구성 요소 폰은 움직이는 액터에 조종당하는 기능이 추가된 액터로, 인간형 폰을 제작하기 위해 다음과 같은 요소를 고려해야 한다. 시각적 요소: 폰의 애니메이션을 재생하도록 리깅(rigging) 데이터를 추가한 메시를 스켈레탈 메시라고 한다. 충돌 요소: 충돌을 담당할 충돌 컴포넌트, 가령 캡슐 컴포넌트를 사용한다. 움직임 요소: 폰의 움직임을 위해 플레이어 입력에 따라 반응하는 폰 무브먼트 컴포넌트를 제공한다. 내비게이션: 폰은 내비게이션 시스템과 연동되어 있어서 스스로 목적지까지 이동하는 길 찾기 기능을 갖고 있다. 카메라 출력: 폰에 카메라 컴포넌트를 부착해 자동으로 플레이어 화면으로 전송한다. 스켈레탈 메시 애셋을 사용해 인간형 폰을 만들어본다. 언리얼 엔진 런처.. 2022. 7. 25.
백준 온라인 저지 | 10825번 국영수 | C++ 백준 온라인 저지 | 10825번 국영수 | C++ 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 1. 문제 접근 ■ 1.1 tuple 자료 구조 학생마다 이름과 국어, 영어, 수학 점수가 주어진다. 구조체(structure)를 사용하여 네 가지 데이터를 다룰 수도 있지만, 조금 더 편리한 tuple 자료 구조를 사용하려고 한다. #include 헤더 파일을 선언하고 이름과 국어, 영어, 수학 점수를 저장하는 데 가장 적절한 타입인 로 데이터를 받는다. ■ 1.2 compare 사용자 정.. 2022. 7. 24.
언리얼 C++ 게임 개발의 정석 | Chapter 04 게임플레이 프레임워크 4장 게임플레이 프레임워크 4.1 게임 모드 게임 규칙을 관리하는 게임 모드(GameMode)는 게임 플레이 중 다양한 사건이 발생할 때 게임 진행에 참고해야 할 핵심 요소이다. 게임 모드는 게임의 틀을 잡아주기도 하는데, 게임에 입장한 플레이어가 조종할 액터인 폰(Pawn)을 생성해 전달하는 역할도 한다. ■ 4.1.1 게임 모드 제작 직접 게임 모드와 폰을 제작해보자. 파일 > 현재 레벨을 다른 이름으로 저장 메뉴를 눌러 작업 중인 Step1 레벨을 Step2 레벨로 변경한다. 파일 > 새로운 C++ 클래스 메뉴를 누르고 GameModeBase 클래스를 상속받은 액터를 생성한다. 다음 버튼을 누르고 새로운 게임 모드의 이름을 ABGameMode로 정한다. 그리고 다시 언리얼 에디터로 돌아와 같은 메뉴.. 2022. 7. 16.
언리얼 C++ 게임 개발의 정석 | Chapter 03 움직이는 액터의 제작 3장 움직이는 액터의 제작 프로그래밍 환경을 편리하게 만들어줄 매크로를 설정한다. 또한, 무브먼트 컴포넌트를 사용해 액터에 움직임을 부여한다. 3.1 로깅 환경의 설정 ■ 3.1.1 출력 로그 윈도우 언리얼 엔진은 로깅 환경을 위해 UE_LOG 매크로를 제공하고 있다. 이 매크로를 사용해 생성한 로그는 에디터의 창 > 개발자 툴 > 출력 로그 메뉴를 선택하여 출력 로그 윈도우를 통해 확인하거나 Saved\Logs 폴더의 log 확장자 파일을 열면 된다. UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자 등) ① 로그 카테고리 모든 로그에는 분류를 위해 카테고리가 지정된다. 언리얼 엔진은 기능마다 로그를 구분하기 위해 서로 다른 카테고리를 선언한다. ② 로깅 수준 로그의 중요도를 나타내는 로깅 수준은.. 2022. 7. 3.
2022년 05월 24일 | TOPCIT 보호되어 있는 글 입니다. 2022. 5. 28.
2022년 05월 06일 | 푹 쉬고, 잘 놀고, 다시 열심히 보호되어 있는 글 입니다. 2022. 5. 16.