★ c언어로 벽돌깨기 게임 만들기
▶ 게임 방식
- 게임이 실행되면 무작위로 10개의 벽돌이(Q)이 나타납니다.
- 우리는 커서를 상('e' 키) 하('d' 키) 좌('a' 키) 우('d' 키) 움직일수 있습니다.
- 커서를 움직여서 벽돌을 지나가면 벽돌이 없어집니다. 점수 1점 획득....
- 30초 동안 게임이 실행되고 30초가 지나면 점수를 출력하고 5초후 프로그램이 종료됩니다.
▶ time() - 시간을 알려주는 함수로써 그리니치 표준시 (GMT)로부터 1970년 1월 1일 0시부터의 경과 시간을 초 단위로 알려준다.
▶ Sleep() - 지정된 밀리세컨드 동안 프로그램 실행을 일시적으로 정지시키는 역할을 한다(1000 - 1초를 의미한다.)
▶ System() - 콘솔 명령어를 사용할 수 있도록 해주는 함수
예) system("cls"); 화면을 지움
system("dir"); 폴더를 보여줌
▶ gotoxy() - x, y 값에 따라 커서를 이동시켜 주는 함수
▶ printf() - 형식화된 출력을 표준 출력으로 출력하는 함수
형식 지정자로는 %d, %i, %o, %u, %x, %f, %e, %c, %s 등을 사용할 수 있다.
▶ _kbhit() - 키가 눌렀는지 검사하는 함수 입니다
▶ printf() - 형식화된 출력을 표준 출력으로 출력하는 함수
형식 지정자로는 %d, %i, %o, %u, %x, %f, %e, %c, %s 등을 사용할 수 있다.
▶ _getch() - 키보드로부터 하나의 문자를 입력받는 함수
단, 화면에는 입력 문자가 출력되지 않는다.
Visual C++ 2005 이상부터는 ISO C++ 명명 규칙을 준수하고자 getch() 대신 _getch()를 사용한다.
[ c언어로 벽돌깨기 게임 만들기 전체 소스 ]
#include <conio.h>
#include <time.h>
#include <stdio.h>
#include <windows.h>
void gotoxy(int x, int y)
{
COORD CursorPosition={x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), CursorPosition);
}
int main()
{
int cnt=0, x[100]={0,}, y[100]={0,}, i, po_x, po_y;
time_t t;
t=time(0);
srand(time(NULL));
for(i=0;i<10;i++)
{
po_x=rand()%72+8;
x[i]=po_x;
po_y=rand()%24+1;
y[i]=po_y;
}
po_x=2;
po_y=12;
clock_t CurTime, OldTime;
int nKey;
OldTime=clock();
while(1)
{
if(_kbhit())
{
nKey=_getch();
if(nKey=='q') break;
switch(nKey)
{
case 'a':
po_x--;
break;
case 'd':
po_x++;
break;
case 'w':
po_y--;
break;
case 's':
po_y++;
break;
}
}
system("cls");
if(po_x>=80)
{
po_x=0;
gotoxy(0, po_y);
}
if(po_x<0)
{
po_x=79;
gotoxy(79, po_y);
}
if(po_y>=25)
{
po_y=0;
gotoxy(po_x, 0);
}
if(po_y<0)
{
po_y=24;
gotoxy(po_x, 24);
}
for(i=0;i<10;i++)
{
if(x[i]==0&&y[i]==0)
{
continue;
}
gotoxy(x[i], y[i]);
printf("Q");
}
gotoxy(0, 0);
printf("남은 시간:%d초", 30-(time(0)-t));
gotoxy(po_x, po_y);
for(i=0;i<10;i++)
{
if(x[i]==po_x&&y[i]==po_y)
{
x[i]=0;
y[i]=0;
cnt++;
}
}
if(time(0)-t==30)
{
gotoxy(30, 1);
printf("결과:%d개", cnt);
Sleep(5000);
break;
}
while(1)
{
CurTime=clock();
if(CurTime-OldTime>100)
{
OldTime=CurTime;
break;
}
}
}
return 0;
}
'C언어로 게임만들기' 카테고리의 다른 글
10. C언어로 게임만들기 - 방향키로 이동하기 (0) | 2020.03.31 |
---|---|
9. C언어로 게임만들기 - _kbhit() - 키가 눌렀는지 검사하는 함수 (0) | 2020.03.30 |
8. C언어로 게임만들기 - time() 함수 (0) | 2020.03.29 |
7. C언어로 게임만들기 - rand()함수 (0) | 2020.03.28 |
6. C언어로 게임만들기 - 글자색변경하기 (0) | 2020.03.28 |