C++: 내일배움캠프 2번 과제 - 캐릭터 전직 구현
내일배움캠프 2번 과제는 캐릭터의 전직과 전투를 구현하는 것이다. 클래스와 상속, 객체지향에 익숙해 지기 위한 과제로 만들어진 듯 하다. 조건 기본 클래스 정의: 순수 가상함수 Attack()을 포함하는 캐릭터 기존 클래스인 Player를 정의한다. 직업, 이름, 레벨, 체력, 공격력같은 기본적인 정보를 가진다. 직업 클래스: 전사, 마법사,...
내일배움캠프 2번 과제는 캐릭터의 전직과 전투를 구현하는 것이다. 클래스와 상속, 객체지향에 익숙해 지기 위한 과제로 만들어진 듯 하다. 조건 기본 클래스 정의: 순수 가상함수 Attack()을 포함하는 캐릭터 기존 클래스인 Player를 정의한다. 직업, 이름, 레벨, 체력, 공격력같은 기본적인 정보를 가진다. 직업 클래스: 전사, 마법사,...
스택(Stack) 들어간 순서의 반대대로 나오는(Last In First Out, LIFO) 자료구조로, 쌓는 행위 또는 쌓인 더미를 뜻하는 영단어 stack에서 유래했다. A, B, C 순서대로 삽입된다면, 나올 때는 C, B, A 순으로 삭제된다. Vector에서 push_ba...
내일배움캠프 언리얼 과정 C++ 학습에서 1번 과제로 캐릭터의 상태창을 간단하게 구현하는 문제가 나왔다. 크게 어려운 조건은 아니지만 다음과 같은 것들을 구현해야 한다. 실시간에 기반한 게임에선 사용하기 어려울 수도 있지만, 여기서 만든 기초적인 구조 자체는 턴제 게임, 카드게임, TRPG스러운 장르에서 충분히 응용하고 활용할 수 있을 것이다. 조건 ...
소프트웨어 디자인 패턴(Software Design Pattern) 소프트웨어 개발에 있어서 반복적인 문제를 해결하기 위한 해법으로서 이미 만들어 놓은 패턴들이다. 짧게 디자인 패턴이라고 부를 때가 더 많다. 큰 범주에 따라 3가지 큰 가지로 나뉜다. 생성 패턴(Creational Pattern...
객체 지향 설계(Object Oriented Design, OOD) OOP와 연관이 깊은 개념으로, OOP가 프로그램과 코드의 구현방식에 대한 개념과 이론이였다면, 객체 지향 설계(OOD)는 프로그램/시스템의 구조와 설계에 대한 방법론이다. 즉, 보다 거시적인 시각에서의 접근법이다. 어떤 객체와 책...
함수 오버로딩(Function Overloading) 동일한 이름의 함수를 여러개 정의하는 행위. C언어에서는 함수 이름만으로 구분 C++에서 매개변수까지 함께 고려하기에, 매개변수 자료형이나 갯수가 다르면 다른 함수로 인식. 클래스에서 여러 생성자로 초기화하는 ...
벡터(Vector) #include<vector> using namespace std; int main(){ //vector<자료형> 변수이름; vector<int> Nums; return 0; } 고정적인 기존 배열과는 다르게, 필요에...
2-1 자원 관리(Resource Management) 프로그램이 실행되는 과정에서 연산되고 참조되는 데이터는 모두 메모리 상에 존재. 데이터는 생성 시점이나 방식에 따라 운영체제의 관리 하에 수명에 따라 특정 메모리 영역(Segment)에 할당 되며, 크게 4개로 구별된다. 주소값이 낮은 곳 부터 차례대로 코드, 데이터...
1-5 클래스(Class) C++에서 도입된 객체 지향 프로그래밍의 객체(Object)를 구현하기 위한 구조로, 필요한 데이터와 기능을 서로 관련된 덩어리/집합인 객체로 묶고 세부적인 구현을 외부로부터 감추기 위해 사용. 사용자가 알아야 할 내용이 감소함으로서 보다 쉽고 간편한 사용 유도. ...
포인터(Pointer) 메모리상의 주소값을 저장하기 위한 자료형, 모든 자료형은 포인터로 만들 수 있다. 동적인 메모리 접근과 관리를 가능하게 하고, 큰 객체를 복사하지 않고 주소만 전달할 수 있게 int main(){ int val = 5; //선언: 포인터자료형* 이름 ...