C언어를 이용한 테트리스 게임 프로그램
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

C언어를 이용한 테트리스 게임 프로그램에 대한 보고서 자료입니다.

본문내용

1}, {0,0,0,1,-1,0,-1,-1}, {0,0,-1,0,0,-1,1,-1}, {0,0,0,1,-1,0,-1,-1} },
{ {0,0,-1,-1,0,-1,1,0}, {0,0,-1,0,-1,1,0,-1}, {0,0,-1,-1,0,-1,1,0}, {0,0,-1,0,-1,1,0,-1} },
{ {0,0,-1,0,1,0,-1,-1}, {0,0,0,-1,0,1,-1,1}, {0,0,-1,0,1,0,1,1}, {0,0,0,-1,0,1,1,-1} },
{ {0,0,1,0,-1,0,1,-1}, {0,0,0,1,0,-1,-1,-1}, {0,0,1,0,-1,0,-1,1}, {0,0,0,-1,0,1,1,1} },
{ {0,0,-1,0,1,0,0,1}, {0,0,0,-1,0,1,1,0}, {0,0,-1,0,1,0,0,-1}, {0,0,-1,0,0,-1,0,1} },
};
int main(void)
{
int x;
clock_t base_time, curr_time, duration = 500L; //duration : 블럭이 아래로 떨어지는 시간 간격
CLS();
printf(\"\\n\\n\\n\");
printf(\"\\t============================\\n\");
printf(\"\\t= T E T R I S ver1.0 =\\n\");
printf(\"\\t= 만든이 : H.J.H =\\n\");
printf(\"\\t============================\\n\");
getchar();
srand((unsigned)time(NULL));//게임판 보드 설정. 초기화
DrawBoard();
Newbrick(); //새블록
DrawScreen(); //게임판 인쇄
base_time = clock(); // 기준 시각
//메인 프로세싱
while(1)
{
curr_time = clock(); // 현재 시각
Key();
if ((curr_time - base_time) >= duration) // 기준 시각으로부터 (duration에 지정된) 일정 시간이 경과하면...
{
Movedown();
Fullline();
DrawScreen();
//GAMEOVER
for(x=1;x {
if(board[x][2]==BLOCK || board[x][1]==BLOCK)
{
printf(\" G A M E O V E R \\n\");
return 0;
}
}
base_time = curr_time; // 기준 시각을, 현재 시각으로 재설정
}
}
return 0;
}
void Fullline() //라인 삭제
{
int x,y,z;
int cnt=0;
for(y=BY-1;y>3;y--)
{
cnt=0;
for(x=1;x {
if(board[x][y]==BLOCK)//BLOCK 수를 센다
{
cnt++;
}
}
if(cnt==(BX-2))//한줄이면
{
for(z=y;z>3;z--)
{
for(x=1;x {
board[x][z]=board[x][z-1]; //삭제한다.
}
}
}
}
}
void Newbrick() //새 벽돌
{
int c;
srand((unsigned)time(NULL));
i=rand()%7;
j=rand()%4;
//(4,2)를 기준으로 새 브릭이 나온다.
Brickx=4;
Bricky=2;
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BRICK;
}
}
void Movedown() //벽돌이 자동으로 내려가는 함수
{
int c;
if(board[Brickx+Shape[i][j][0].x][Bricky+1+Shape[i][j][0].y]==WALL ||board[Brickx+Shape[i][j][0].x][Bricky+1+Shape[i][j][0].y]==BLOCK)
{
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BLOCK;
}
Newbrick(); //새벽돌 호출
}
else if(board[Brickx+Shape[i][j][1].x][Bricky+1+Shape[i][j][1].y]==WALL ||board[Brickx+Shape[i][j][1].x][Bricky+1+Shape[i][j][1].y]==BLOCK)
{
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BLOCK;
}
Newbrick(); //새벽돌
}
else if(board[Brickx+Shape[i][j][2].x][Bricky+1+Shape[i][j][2].y]==WALL ||board[Brickx+Shape[i][j][2].x][Bricky+1+Shape[i][j][2].y]==BLOCK)
{
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BLOCK;
}
Newbrick(); //새벽돌
}
else if(board[Brickx+Shape[i][j][3].x][Bricky+1+Shape[i][j][3].y]==WALL ||board[Brickx+Shape[i][j][3].x][Bricky+1+Shape[i][j][3].y]==BLOCK)
{
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BLOCK;
}
Newbrick(); //새벽돌
}
else
{
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=EMPTY;
}
Bricky=Bricky+1;
for(c=0;c<4;c++)
{
board[Brickx+Shape[i][j][c].x][Bricky+Shape[i][j][c].y]=BRICK;
}
}
}
void Key()
{
int c,key;
if (kbhit()) //kbhit() 키가 입력
  • 가격2,000
  • 페이지수13페이지
  • 등록일2006.12.13
  • 저작시기2006.3
  • 파일형식한글(hwp)
  • 자료번호#382393
본 자료는 최근 2주간 다운받은 회원이 없습니다.
다운로드 장바구니