전체 글 (158) 썸네일형 리스트형 1-5. C/C++ Console 테트리스를 만들어보자!!(Class : StackedBlockState) 어쩌면 게임의 진행과 가장 큰 연관성이 높은 클래스라고도 할 수 있겠습니다. 클래스의 역할은 현재 쌓인 블록 상태의 업데이트, 바운더리 추출, 라인 삭제, 게임 오버 판단이 있습니다. 클래스의 구조는 다음과 같습니다. class StackedBlockState { public: blockMemory stackedBlockState[GAMETEMPLATE_Y + GAMETEMPLATE_MARGIN_TYPE_1] [GAMETEMPLATE_X + 2 * GAMETEMPLATE_MARGIN_TYPE_1]; list collisionBoundary; StackedBlockState() { collisionBoundary = list(); for (int i = 0; i < GAMETEMPLATE_Y + GAMET.. 1-4. C/C++ Console 테트리스를 만들어보자!!(Class : TetrisBlock) Class TetrisBlock에 대해서 설명하고자 합니다. 말그대로 우리가 알고있는 4 개의 1 칸 블록으로 구성된 테트리스 블록의 움직임과 충돌상태 등을 관리하는 클래스입니다. 이번 글은 이전 포스팅의 Block 클래스를 참고하시면서 보면 좋습니다.(특히 Block 클래스 소스 코드를 보면서 오시는 걸 추천드려요!!) //TetrisBlock 클래스입니다. class TetrisBlock { private: Block componentBlock[4]; int tetrisBlockType; int tetrisBlockRotationNum; ableToMove tetrisBlockNowMovableState; dotPos bringBackNowPos[4]; dotPos bringBackPrevPos[4].. 1-3 C/C++ Console 테트리스를 만들어보자!!(Class : Block) 앞서 예고한 데로 3개의 클래스에 대해서 글 3개에 걸쳐서 설명하고자 합니다. Block이라는 클래스는 1칸짜리 블록에 대해서 정의한 것입니다. 차후에 TetrisBlock 클래스에서 4개의 Block 인스턴스를 생성하고 관리하게 될 것입니다. 다음은 Block Class의 정의입니다. 변화가 반영된 nowState와 그 이전 상태인 prevState를 눈여겨 볼필요가 있습니다. 전 상태의 블록은 지우고, 현재 상태의 블록을 출력한다면 사용자에게는 블록이 이동하는 것처럼 느껴질 것입니다. /* struct dotPos{ int posX; int posY; bool whetherStacked; }; sturct ableToMove{ bool ableToFall; bool ableToMoveLeft; boo.. 1-2 C/C++ Console 테트리스를 만들어보자!!(전체 구조 편) 사실 제일 중요한 파트라고 생각합니다. 만약 제가 했던 방법대로 한 번 짜볼 생각이라면 이 번 파트에 조금 더 집중하는 것이 좋을 것입니다. 우선 테트리스가 어떻게 게임인지 이해할 필요가 있습니다. 테트리스의 게임 프로세스를 생각해보면 다음과 같습니다. 1. 블록이 생성된다. 2. 블록은 완전히 상태가 확정되기 전까지(추락하지 못하는 상태) 일정 속도로 떨어진다. 3. 블록이 떨어지기 전까지 사용자는 블록을 좌, 우, 아래 방향으로 이동시키거나 회전시킬 수 있다. 4. 단 이미 쌓여진 블록이나 경계에 이동, 회전 경로가 겹치면 조작이 불가능하다. 5. 블록이 완전히 떨어지게 되면 화면이 업데이트 된다. 6. 한 줄이 완전히 채워진 경우 그 줄은 지워지고, 지워진 줄 위에 쌓였던 블록들은 떨어진다. 그리고.. 1-1. C/C++ Console 테트리스를 만들어보자!!(Console 기본 함수들 ) 본격적인 시작에 앞서서 가장 기본적인 화면 출력에 대해서 알아볼려고 합니다. C 언어를 다룬 경험이 있다면 printf( )를 사용하여 출력한 경험이 있을 것이고, C++를 다룬 적이 있다면 std::cout 1-0. C/C++ Console 테트리스를 만들어 보자 !!(시작) 본격적으로 프로그래밍을 공부하겠다고 시작한 지 대략 3 달 정도 지난 것 같은 데 깔짝깔짝 공부하는 것 외에는 만드는 것이 없어서 프로젝트 일지 겸 학습 일지를 블로그에 남기기로 하였습니다. 첫 프로젝트는 C/C++ 콘솔로 테트리스를 만들어보는 것으로 정하였습니다. 최대한 남이 짠 코딩은 보지 않고 온전하게 스스로의 힘으로 프로그램을 짜보는 것을 목표로 하였습니다.(지금은 프로젝트를 끝내서 정리하며 글을 적고 있습니다. ㅎㅎ) 이유를 꼽자면 다음과 같습니다. 1. 프로그래밍에 있어서 가장 기본적인 지식들을 어느 정도 숙지하고 활용할 수 있는 지 판단할 수 있다. -> 실제로 프로그램을 짜면서 변수의 선언 및 사용, 조건문의 사용, 반복문의 사용, 함수의 선언과 호출 등 가장 기본이 되는 개념부터 이중 배.. 이전 1 ··· 17 18 19 20 다음