테트리스에서 벽이랑 블록이랑 만나면
모은
질문 제목 : 테트리스에서 벽이랑 블록이랑 만나면 어떻게 처리를 해야할지 모르겠습니다..테트리스에서 현재 맵은 만든 상태이고 그안에 블록을 띄울려고 하는데요
처음에 블록을 띄울때 맵의 벽으로 가서 블록이 출력이 되더라구요
이부분부터 막혀서.. 조건문을 사용해서 벽(1)과 블록의 값(1)을 더해서 2이면
벽으로 안들어가게 하고 싶은데.. 어떻게해야하는지모르겟습니다 ㅜㅜ질문 내용 :
#include stdio.h
#include conio.h
#include windows.h
#define bh 22//boardheight
#define bw 12//boardwidth
#define bx 5
#define by 2 //초기위치 좌표
void gotoxy(int,int);
void resetmap();//맵초기화
void drawmap();//맵그리기
void drawpattern();//전체 패턴들
int i,j;
int board[22][12]={ {1,1,1,1,1,1,1,1,1,1,1,1},//전체 테트리스맵
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1}
};
int copy[bh][bw];//board값을 복사해줄 배열
void main()
{
//int board[21][12]={};
resetmap();
//drawboard();
drawmap();
gotoxy(bx,by);
drawpattern();
getch();
}void gotoxy(int x, int y)
{
coord pos = {x - 1, y - 1};
setconsolecursorposition(getstdhandle(std_output_handle), pos);
}
void resetmap()
{
int h,w;
//hstart=1;
//wstart=4;
for(h=0;hbh;h++)
{
for(w=0;wbw;w++)
{
copy[h][w]=board[h][w];
}
}
}
void drawmap(void)
{
int h,w;
for(h=0;hbh;h++)
{
for(w=0;wbw;w++)
{
switch(copy[h][w])
{
case 0:
printf(□);
break;
case 1:
printf(■);
break;
}
}
printf(\n);
}
}
void drawpattern()
{
int pattern[4][4]={{1,0,0,0},// ■
{1,0,0,0},// ■
{1,0,0,1},// ■
{1,1,1,1}};// ■
for(i=0;i4;i++)
{
for(j=0;j4;j++)
{
printf(%d,pattern[i][j]);
}printf(\n);
}
}