본문 바로가기

전체 글

내일배움캠프 언리얼트랙 13일차 오늘의 학습 - C++ 강의Class 세부사항을 제어할 수 있게 하면 문제가 발생한다.사용성이 떨어진다.사용자가 알아야 할 정보가 많아지기 때문에, 고려해야 할 예외가 증가하기 때문.구현 난이도가 상승한다.발생할 수 있는 예외를 모두 고려해야 하기 때문에 코드가 복잡해짐.즉, 코드를 작성할 때에는 필수적인 기능을 제외하고 세부 사항을 숨기는 것이 사용자/개발자에게 모두 좋다.class가 없는 언어에서는 구현했던 함수와 변수간에는 모든 정보가 공유되었지만C++에서는 이 단위가 class가 되었다고 보면 된다.멤버 함수필요한 동작은 멤버 함수로 정의한다.보통 멤버 함수는 외부에서도 접근하게 하는 경우가 많다.멤버 변수세부 데이터는 멤버 변수로 관리한다.멤버 함수에서 필요한 정보, class자체에서 내부 연산.. 더보기
내일배움캠프 언리얼트랙 12일차 오늘의 학습- C++ 강의오늘은 C++강의를 처음부터 다시 듣기 시작했습니다! 포인터와 클래스에 대한 이해가 완벽하지 않아서... 강의 듣고, 강의 자료의 코드 따라해보면서 포인터와 클래스 마스터 해볼게요!강의 들으면서 내용 정리는 옵시디언을 사용하는중이에요. 내용 정리에는 옵시디언이 쓰기 편하고 보기도 좋더라구요. 포인터변수의 주소를 담는 변수int* p*p는 정수를 가리키는 포인터로써 int변수의 메모리 주소를 저장.일반 변수의 경우, 대입연산(=)을 하면 변수에 있는 값이 그대로 복사됨.하나의 변수를 다른 변수에 대입하면 새로운 메모리 공간에 동일한 값이 복제됨. 따라서 복사 이후에 두 변수는 서로 독립적인 공간을 가지게 되어 한 쪽 값을 변경해도 다른 쪽에는 영향이 없다.예를 들어, A=3, B.. 더보기
내일배움캠프 언리얼트랙 11일차 오늘의 학습- C++ 강의코드카타약수의 개수와 덧셈약수의 개수가 짝수인 수는 더하고 홀수인 수는 빼는 간단한 문제이다. int solution(int left, int right) { int answer = 0; for(int i=left; i이렇게 보니 코드가 좀 지저분해보인다. 방법이 없을까 생각하다가 Gemini에게 약수의 개수가 홀수인 수들의 특징을 물어보았다.Gemini가 말하길, 약수의 개수가 홀수인 수들은 제곱수들이라고한다. 생각해보니 그렇다. 제곱수들만이 제곱되는 수 하나를 약수로 더 가지기 때문에 제곱수들의 약수만이 홀수이다. 그렇다면 이전에 공부했던 sqrt를 사용하면 코드를 더 간단하게 구성할 수 있을것이다! int solution(int left, int right) { .. 더보기
내일배움캠프 언리얼트랙 10일차 오늘의 학습- C++그래도 오늘 과제를 마무리 지었습니다...! 이제 남은건 도전기능들...! 조금 두려워서 강의 2회독 더 하고 시작해보려 합니다!시간은 넉넉하니 천천히 이해하면서 심화기능들 다뤄볼게요!TextRPG 저번시간에 이어 쉬는날 포함 오늘 구현한 기능!STEP 4 - Player 클래스 + 직업 선택(클래스, 상속, 다형성)STEP 5 - Monster 클래스 + 1:1전투 (클래스 설계, 전투 루프)STEP 6 - 인벤토리 + 아이템 드롭 (STL vector)STEP 7 - 포션 제작소 기본 (vector 탐색, 코드 분석)STEP 8 - 게임 완성 (시스템 통합) 블로그에 정리하기엔 코드가 좀 많이 길어서... 깃허브 링크 올렸습니다~이후에 도전기능 추가하면서 코드 고쳐볼게요! 더보기
내일배움캠프 언리얼트랙 9일차 오늘의 학습- C++ 강의- C++ TextRPG C++ TextRPG 필수 구현 기능의 STEP 2를 구현하였다.HP/MP 입력 블록을 while(true)로 감싸기HP와 MP가 모두 50보다 클 때만 break로 입력 루프 탈출하기공격력/방어력도 동일하게 반복 입력 구현하기#include #include using namespace std;const int SIZE = 4;void printStatus(string name, int stat[]){ cout > heroName; while (true) { cout > stat[0] >> stat[1]; //stat[0] : HP , stat[1] : MP if (stat[0] > 50 && sta.. 더보기
내일배움캠프 언리얼트랙 8일차 오늘의 학습- C++ 강의- Unreal Engine C++- C++ TextRPG 게임 개발자를 위한 C++ 문법 강의 챕터 1 - (1) ~ 1 - (3) 개인적으로 배열과 포인터, 참조자가 어렵다. 해당 부분의 내용을 내일 한번 더 복습하고 예제문제를 풀어봐야겠다.이번주 주말을 포함해서 강의를 챕터 3까지 모두 수강하고 최소 1번 복습하는걸 목표로 하고있다. Unreal Engine C++ [1번 과제] Unreal Engine C++ 활용 프로그램 제작필수 구현 기능과 도전 구현 기능을 모두 구현하는데 성공했다.필수 구현 기능으로는 액터 클래스 생성 및 상속, 외형 설정, 시작위치 고정, 이동 및 회전 로직 구현, 실시간 정보 로그 출력이 있다.도전 구현 기능으로는 상태 장보 실시간 출력, .. 더보기
내일배움캠프 언리얼트랙 7일차 오늘의 학습- 코드카타- C++ 코드카타 [핸드폰 번호 가리기] char* solution(const char* phone_number) { int len = strlen(phone_number); char* answer = (char*)malloc(len + 1); for (int i = 0; i malloc 은 Memory Allocation. 동적 할당. 필요한 만큼의 메모리를 사용.malloc(len + 1); -> 메모리 공간 확보. len + 1을 하는 이유는 마침표시의 자리가 필요하기 때문.컴퓨터는 malloc으로 만든 메모리가 어디서 끝나는지를 자동으로 알지 못한다. 따라서 여기가 끝입니다! 라는 표시가 있어야 한다. 해당 표시가 들어가야 할 자리를 위해 1칸을 더 확보.. 더보기
내일배움캠프 언리얼트랙 6일차 오늘의 학습- C- UnrealEngine 발표회 C 함수 (Function)반복되는 코드 뭉치를 함수로 만들어서 코드를 최적화할 수 있다.반환자료형 함수명(매개변수자료형 매개변수명) // 함수 선언(Declaration)이자, 정의(Definition){ return 반환값;}int main(void){ int num = 10; // 자료형 변수명 = 값; 함수명(인자값); // 함수 호출(Call) return 0;} 스택 (Stack)FILO (First In Last Out) 선입후출. 먼저 넣은건 나중에 나온다. 프링글스 과자 먹을때를 생각하면 된다! 컴퓨터의 메모리 레이아웃은 크게 스택 메모리, 힙 메모리, 코드 섹션, 데이터 섹션으로 나뉜다.그 중 스택 메모리는 함수 호출에 할당될 메모리... 더보기