전체 글 216

[게임 프로그래머 입문 올인원] 함수와 디버깅 : 파일 분할 (16강)

A. 파일 분할 1. 파일 분할의 필요성 a. 파일 분할이 필요한 이유 당연히 파일이 방대해지는 이유도 있지만 공동 작업을 할 때도 필요하다 b. 선언 부재의 오류 2. 파일 분할하기 a.새 파일 생성 꿀팁 (클래스) 1) 소스파일 오른쪽 클릭 후 새 항목 클릭 2) C++에서는 헤더/c++파일 두개 짝을 맞춰서 작성해야하는데 3) 클래스로 생성하면 두개가 동시에 생성된다 b. 파일 분할하기 1) 각 Helper.h와 Helper.cpp 파일에 코드를 나눠주고 2) 메인 코드에서 실행 3) 위 컴파일 과정이 설명되어있음 https://modoocode.com/319 모두의 코드 씹어먹는 C++ - 작성일 : 2020-10-20 이 글은 17122 번 읽혔습니다. 에 대해서 다루어 보겠습니다. 여태까지 C..

[게임 프로그래머 입문 올인원] 함수와 디버깅 : TextRPG (15강)

A. TextRPG 연습하기 1. 게임 흐름 시작 로비 입장 직업 선택 123 필드 입장 12 몬스터 스폰 전투 12 후 결과에 따른 분기문... a. 게임의 기본 구조 게임의 기본 구조는 while문으로 작성되어있음 HTML 삽입 미리보기할 수 없는 소스 void EnterLobby() { while (true) { //입력 //로직 ----- 일부 로직이 서버에 분산되어 있다면 온라인 게임 / 싱글게임이면 X //출력 (아트 리소스) } } 2. 코드 작성하기 a. 필드 생성 입장 하자마자 로비로 들어가야 하기 때문에 바로 EnterLobby 실행 직업 생성 void EnterLobby(); int main() { EnterLobby();//1. } void EnterLobby() { while (t..

[게임 프로그래머 입문 올인원] 함수와 디버깅 : 디버깅 기초 (14강)

A. 디버깅 1. 브레이크 포인트 작은 버그가 의심되는 부분에 브레이크 포인트를 걸고 작업을 해야 함 큰 버그는 다 뜯어봐야 함 a. 브레이크 포인트 생성하기 f9, 왼쪽 클릭으로 설정할 수 있음 이 창은 브레이크 포인트를 걸고 실행 시 켜짐 b. 로컬 / 조사식 로컬 : 실행시 함수의 변수를 출력해줌 조사식 값을 넣어서 어느 포인트에서 버그가 나는지 알 수 있음 c. 코드가 넘어가는 단위를 설정하기 d. 브레이크 포인트에 조건 걸기 e. 코드가 잘 지나갔는지 확인로그 찍기 f. 함수가 호출된 흐름 보기 즉 이 호출 스텍은 스택 메모리가 어떻게 진행되고 있는지를 보여주는 것!! 출처 : https://www.inflearn.com/course/%EA%B2%8C%EC%9E%84-%ED%94%84%EB%A1..

[게임 프로그래머 입문 올인원] 함수와 디버깅 : 스택과 레지스터 (13강)

A. 스택 (STACK) 1. 스택 메모리 = 스택 a. 스택 메모리란? 🌟 컴퓨터 프로그램에서 사용되는 메모리 영역 중 하나 스택은 데이터를 선형 구조로 저장. 주로 함수가 사용하는 공용 공간 높은 주소에서 낮은 주소로 이동 크게 할당을 받아서 시작 (mb기준) 스택 메모리는 운영 체제나 컴파일러에 의해 관리 b. 스택의 메모리의 특징 전역 변수의 주소처럼 고정 주소가 없음 항상 상대 주소!! 기준점(함수의 이름)의 데이터(변수의 위치)를 계산하는 형태 1) LIFO (Last-In-First-Out) 구조 스택은 데이터를 LIFO 구조로 저장 = 후입선출 2) 함수 호출 및 복귀 스택은 함수 호출과 관련된 정보를 저장하는 데 사용 함수가 호출될 때 현재 상태의 스택 프레임이 생성, 함수가 반환할 때 ..

[게임 프로그래머 입문 올인원] 함수와 디버깅 : 함수, 변수의 범위 (12강)

A. 함수 1. 함수의 기초 a. 함수의 기본 구조 대부분 대문자로 시작함 b. 함수의 선언 C++은 호출 순서를 생각해야함 나중엔 헤더파일에 저렇게 선언을 먼저 하는 파일을 또 생성함 c. 함수의 종료 return 값을 만나면 어느 위치든 함수가 종료됨 d. 함수 오버로딩 아래와 같이 함수 인자가 다르거나, 타입이 다르면 다른 함수로 인식해서 오류가 나지 않음 💙 프로그래머스 코딩테스트 2. 변수의 범위 a. 전역 변수 data 메모리 영역에 저장되는 변수 b. 지역 변수 괄호 안에서 사용하는 변수. 함수의 매개변수도 stack 메모리 영역에 들어감 c. 함수와 Stack 메모리에 대한 이해 함수끼리 자기들 영역을 계속 돌려쓰는 구조로 되어있음 매개변수와 지역변수는 그 함수 데이터 안에 저장되어있음 출..

C++ 제어문 총정리

A. 제어문 1. 제어문 a. 제어문이란? C 프로그램은 절차적 프로그램(procedural program) 또는 명령형 프로그램(Imperative program) 따라서 C 프로그램은 수많은 명령문이 처음부터 끝까지 순서대로 실행되는데 🌟 이때 원하는 결과를 얻기 위해서는 순차적 흐름을 제어하는 명령문을 제어문이라고 함 b. 제어문의 특징 중괄호{} 에 둘러싸있음 (블록(block)이라고 칭함) c. 제어문의 종류 1) 조건문 2) 반복문 2. 조건문 🌟 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문 if ( / else if / else) 문, 삼항 연산자에 의한 조건문, switch문이 있음 a. if ( / else if / else) 문 🌟 if(else if) 문은 조..

[게임 프로그래머 입문 올인원] 데이터와 로직 : 조건문, 반복문, 연습문제 (8, 9, 10강)

A. 제어문 1. 조건문 a. if / else / else if 💙 else if가 생성되는 모습 코드는 한줄이게되면 {}을 생략할 수 있음. 이때 위 코드는 if / else문으로 전체가 한 줄로 취급되어 전체 코드를 위로 올리면 이렇게 됨! b. switch case 가독성이 좋아서 if문보다 더 권장 2. 반복문 a. while / do-while / for 어딘가에서 게임이 끝나지 않게 해주는 역할을 함 💙 for / while 문의 차이점 가독성 사용빈도는 for가 90%정도 더 많음 do-while은 거의 사용하지 않음 b. break 제어문에서 루프를 빠져나오고싶을 때 사용 (단일 루프만 빠져나옴) c. continue 아래 코드를 실행시키지 않고 다음 조건을 판별하는 곳으로 이동 whil..

C++ 연산자 총정리

A. 연산자(operator) 1. 연산자 기초 a. 연산자란? 🌟 프로그램의 산술식이나 연산식을 표현하고 처리하기 위해 제공되는 다양한 기호 b. 연산자의 종류 1) 산술 연산자 2) 대입 연산자 3) 증감 연산자 4) 비교 연산자 5) 논리 연산자 6) 비트 연산자 7) 기타 연산자 8) C++ 연산자 c. 연산자의 우선순위(operator precedence)와 결합 방향(associativity) 1) 연산자의 우선순위 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자가 먼저 처리될 것인가를 결정하는 것 2) 연산자의 결합 방향 수식 내에 우선순위가 같은 연산자가 둘 이상 있을 때, 먼저 어느 연산을 수행할 것인가를 결정 3) 연산자의 우선순위표 (참조표) 우선순위가 빠른 연산자가 가장 먼저..

[게임 프로그래머 입문 올인원] 데이터와 로직 : 연산 (6, 7강)

A. 연산 1. 연산자 a. 산술 연산 b. 대입연산 c. 증감연산 d. 시프트 연산 곱하기 2 / 나누기 2를 만들때나, 고유 ID, 암호학에서 사용함 🧡 오른쪽 시프트 연산시 주의사항 위와같이 최상위비트가 1일때 (음수가 포함될 경우일때 = signed일때) 오른쪽 시프트 연산을 한다고 가정하면 이렇게 최상위 비트가 1인 상태로 이동되어야 제대로된 /2가 됨 따라서 음수인 경우는 주의해야 함!! or unsigned를 사용해 최상위 비트가 음수가 아닌 경우를 만들어야 함 f. 비교 연산 i. 논리 연산 2. 연산자의 우선순위 a. 우선순위 수학과 같다, 괄호로 우선순위를 결정할 수 있음 👉 더 자세한 공부는 여기 연산자 총정리 -1 (산술, 대입, 증감) A. 연산자(operator) 1. 연산자 a..

C++ 자료형의 타입 변환

A. 자료형 변환(type conversion) 1. 자료형 변환 a. 자료형 변환이란? 하나의 자료형을 다른 자료형으로 바꾸는 행위 b. C++의 자동 타입 변환 C++에서는 다음 두 가지 경우 자동으로 타입 변환을 함 1) 다른 타입끼리의 대입, 산술 연산 시 2) 함수에 인수를 전달할 때 c. 자료형 변환의 유의점 표현 범위가 좁은 자료형 ➡ 표현 범위가 더 넓은 자료형으로의 타입 변환 👍 💥 반대의 경우에서는 자료형 변환에서는 데이터의 손실이 남 d. 자료형 변환의 종류 1) 묵시적 타입 변환(자동 타입 변환) 2) 명시적 타입 변환(강제 타입 변환) 2. 묵시적 타입 변환(자동 타입 변환, implicit type conversion) a. 묵시적 타입 변환이란? 🌟 대입 연산이나 산술 연산에서..