안녕하세요 선생님!
혼자의 힘으로 해보려고 했으나 어려운 부분이 있어서 이렇게 글을 올립니다.
학교 프로젝트의 일환으로 선생님께서 올려주신 테트리스를 변형해서 새로운 게임을 만드려고 합니다.
MFC에 대한 공부를 하고 시작한게 아니라 이 프로젝트를 진행하면서 공부를 하는 중이라
변형이 어려운 부분이 있는데요.
제가 만드려는 게임은 400개의 블록으로 그림을 완성하는 게임입니다.
테트리스에서 7가지의 도형이 아닌 그냥 일반 네모 도형이 시간에 따라 내려오고
바닥에 쌓인 뒤 한줄 한줄 채운 뒤 특정 줄까지 되면 게임이 끝나게 되는데요.
총 400개의 블록만 나오게 할 계획입니다.
일단 저는 색상을 ↑ 방향키를 누르면 색상이 변하게 했는데요.
좌우방향키와 ↓방향키 조작은 테트리스와 같습니다.
에러체크는 20X20 으로 게임을 완성할거라 21번째 줄에 블록이 쌓이게 되면 에러 메시지가 뜨게 하려고 하구요
클리어체크는 20X20 블럭이 차곡차곡 쌓이고 400개의 블록이 전부 나오면 성공 메시지가 뜨고
완성된 그림에 (그림판 소스를 이용하여) 기념 낙서(?)를 할 수 있고 캡쳐를 한 뒤 저장을 하려고 합니다.
순서대로 차근차근 했어야 했는데 현재 테트리스 블록을 저장하는 배열을 수정하여
g_NowBlockInfo[7][4][4][4] = {
{
{
{1,0,0,0};
{0,0,0,0};
{0,0,0,0};
{0,0,0,0};
},
{
{1,0,0,0};
{0,0,0,0};
{0,0,0,0};
{0,0,0,0};
},
{
{1,0,0,0};
{0,0,0,0};
{0,0,0,0};
{0,0,0,0};
}
......중략
}
이런식으로 해서 7가지 색깔의 블럭이 랜덤으로 나오게 수정은 했습니다만,
이게 제대로 된 방법은 아니여서 그런지
가로 20 X 세로 30 의 게임 기본 틀에서 네모도형이 쌓이긴 하나
에러체크와 클리어체크가 진행이 어렵습니다..
저 도형 배열 선언만 제대로 되면 다음 단계 진행에 큰 도움이 될 것 같아서 이렇게 도움을 요청드립니다..ㅠ_ㅠ
프로그램의 아이디어는 너무 좋습니다..^^
플레이 하는 블럭을 1개만 한다면 g_NowBlockInfo[7][4][4][4] ; // 이런 변수 필요 없습니다.
g_NowBlockInfo[7][4][4][4] 이 설명된 페이지를 보면 아시겠지만
7은 모양, 4는 회전, 4는 세로, 4는 가로입니다.
지금은 모양, 회전,세로,가로가 모두 필요없으니
g_NowBlockInfo 변수 자체가 필요 없을겁니다.
색상을 표시한다면 g_NowBlockColor 변수를 만들어서 0 ~ 399까지를 입력하면 됩니다.
저희가 올려 드린 테트리스 코드를 수정을 하시는 것보다.
테트리스 코드를 참조하여 새로 만드시는게 좀더 쉬울거 같습니다.
이건 제 생각인데..
400가지 색상을 변경하는 것이 ↑ 방향키로 하기에는 많이 불편하지 않을까요???
(사용자가 원하는 색상이 몇 번째 있는지도 알아야 하고요..^^)
옆에 색상표를 만들어서 Shift 키 또는 Ctrl 키 와 방향키를 함께 눌러 색상표에서 선택되게 하는 것은 어떨 까요??