분류 전체보기

Lvalue와 Rvalue C++에서 lvalue는 특정 메모리 위치를 가리킨다. 반면 rvalue는 아무데도 가리키지 않는다. 일반적으로 rvalue는 일시적이고 수명이 짧지만 lvalue는 변수로 존재하기 때문에 수명이 더 길다. int x = 666; // ok 여기서 666은 rvalue이다. 숫자(엄밀히 말하자면 리터럴 상수)는 프로그램 실행 중의 임시 레지스터를 제외하면 특정 메모리 주소가 없다. 666은 변수 x에 할당된다. 변수는 특정 메모리 주소가 있으며 따라서 lvalue이다. C++에서 할당 연산자(assignment operation)인 =는 왼쪽 피연산자(left operand)로 lvalue가 필요하다. 그리고 lvalue인 x를 가지고 다음과 같은 것을 할 수 있다. int *..
문제 https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 풀이 방법 2206번 벽 부수고 이동하기와 비슷한 문제다. 이 문제에서는 벽을 K개만큼 부술 수 있는게 차이점이다. 비슷하게 풀되 벽을 1개까지 부쉈던 부분을 K개까지 부술 수 있게 처리하면 된다. 코드 #include #include #include #include #include #include using namespace std; int dy[] = ..
의도 컬렉션에 들어 있는 객체별로 한 프레임 단위의 작업을 진행하라고 알려줘서 전체를 시뮬레이션한다. 쉽게 말하자면 게임에 존재하는 객체들의 동작이나 상태를 한 프레임씩 업데이트 하는 것이다. 동기 던전을 지키는 해골 전사가 있고 이 전사가 문 주위를 순찰한다고 해보자. 해골 전사를 왔다갔다하는 코드를 가장 간단하게 만든다면 다음과 같을 것이다. while(true) { // 오른쪽으로 간다. for(double x = 0; x 0; x--) skeleton.setX(x); } 하지만 이 코드는 무한루프가 있어서 해골 전사가 순찰도는 걸 플레이어는 볼 수 없다는 문제가 있다. 우리가 원하..
의도 게임 시간 진행을 유저 입력, 프로세서 속도와 디커플링 한다. 동기 대화형 프로그램 게임 루프에 대해서 살펴보기 전에, 과거에는 프로그램이 배치 모드로 동작했다. 코드를 입력해 넣은 뒤 한참 뒤에 결과를 볼 수 있었다. 즉각적인 피드백을 원했던 프로그래머들은 대화형 프로그램(interactive)을 만들었다. 초기 대화형 프로그램 중에선 게임도 있었다. 예를 들면 다음과 같은 텍스트 어드벤처 게임이다. 당신은 던전 안에서 해골 전사와 마주쳤다. 해골 전사는 뼈 부딪히는 소리를 내며 당신에게 다가오고 있다. > 공격한다 당신은 해골 전사를 공격해 산산조각 냈다! 경험치 10 획득 이제 프로그램과 실시간으로 대화를 나눌 수 있게 되었다. 프로그램은 입력을 기다렸다가 응답한다. 코드로 표현하면 다음과 같..
virtus
'분류 전체보기' 카테고리의 글 목록 (23 Page)