满意答案
abcd483
2018.05.17
采纳率:56% 等级:8
已帮助:513人
刚写好的,打地鼠小游戏。
功能:每三秒,会在游戏区域随机位置刷出地鼠,鼠标点击地鼠,无论点中与否,地鼠都会立即刷新。
点中地鼠按你要求计分,点不中记录失败次数,3次失败,游戏结束,显示GAME OVER!
#include
#include
#include
#include
#include
#include
#include
#define gSizek 30//区域大小宽度
#define gSizeg 20//区域大小高度
#define gBegin 3//活动区域起始行
int main()
{
int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
char gameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
COORD p0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0= time(NULL);
strcpy(gameA[0]," GAME");
strcpy(gameA[1],"未命中次数:0,计分:000000");
for(i=gBegin-1;i
{
for(j=0;j
{
if(i>gBegin-1 && i0 && j
gameA[i][j]=' ';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i
printf("%s\n",gameA[i]);
while (1)
{
if(t>=3)
{
if(row>0 && clo>0)
gameA[row][clo]=' ';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0= time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i
{
//gameA[i][gSizeg+1]=0;
printf("%s\n",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAME OVER!");
break;
}
s1= time(NULL);
t=s1-s0;
ReadConsoleInput(hInput, &inRec, 1, &res);
if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠标左键
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo && inRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;
sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return 0;
}
42分享举报