用c++写一个简单的打字游戏

#include <graphics.h>  //图形界面的头文件
#include <conio.h>
#include <time.h>     //随机数
#include <stdio.h>
#include <mmsystem.h>
#pragma comment(lib,"winmm.lib")


HWND hWnd;


void Welcome();
void PlayGame();


//主函数
int main()
{
Welcome();
PlayGame();



closegraph();
return 0;
}


//欢迎的界面
void Welcome()
{
initgraph(640, 480);  //640  480
loadimage(NULL, L"1.jpg");
srand((unsigned int)time(NULL));
//mci:media contral interface 多媒体控制接口
mciSendString(L"open 追光者.mp3 alias zz", 0, 0, 0);
mciSendString(L"play zz", 0, 0, 0);


setbkmode(0); // 透明的 英文怎么写? TRANSPARENT

settextcolor(YELLOW);
settextstyle(50, 0, L"微软雅黑");
outtextxy(185, 50, L"打 字 练 习 系 统");


settextcolor(BLACK);
settextstyle(20, 0, L"宋体");
outtextxy(220, 180, L"没什么好说的");
outtextxy(220, 230, L"我给大家拜个早年吧");
outtextxy(220, 280, L"新年快乐~-~");
outtextxy(220, 330, L"对了,记得把输入法切换成大写");
outtextxy(380, 380, L"—小小");




while (!_kbhit())
{
settextcolor(RGB(rand() % 256, rand() % 256, rand() % 256));
outtextxy(250, 430, L"按任意键继续...");
Sleep(200);
}
_getch();
}




void PlayGame()
{
cleardevice();
while (1)
{
hWnd = GetHWnd();
char obj;//目标字母
char key;  //按键的字母
int objx, objy; //目标字母的坐标


obj = rand() % 26 + 65;
objx = rand() % 610 + 5;


settextstyle(30, 0, L"微软雅黑");

settextcolor(RGB(rand() % 156 + 100, rand() % 156 + 100, rand() % 256));
for (objy = 0; objy < 480; objy++)
{
cleardevice();
outtextxy(objx, objy, obj);
Sleep(10);

if (_kbhit())
{
key = _getch();
if (key == obj)
{
break;
}
else
{
MessageBox(hWnd, L"按错了,还需要继续努力哦!", L"game over", MB_OK);
exit(0);
}
}
}
if (objy >= 480)
{
MessageBox(hWnd, L"太慢了,还需要继续努力哦!", L"game over", MB_OK);
exit(0);
}
}
}
BODY { BACKGROUND-COLOR: white; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-LEFT: 0px; MARGIN-TOP: 0px } P { FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 70%; LINE-HEIGHT: 12pt; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 10px; MARGIN-TOP: 10px } .note { BACKGROUND-COLOR: #ffffff; COLOR: #336699; FONT-FAMILY: "Verdana", sans-serif; FONT-SIZE: 100%; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 0px; MARGIN-TOP: 0px; PADDING-RIGHT: 10px } .infotable { BACKGROUND-COLOR: #f0f0e0; BORDER-BOTTOM: #ffffff 0px solid; BORDER-COLLAPSE: collapse; BORDER-LEFT: #ffffff 0px solid; BORDER-RIGHT: #ffffff 0px solid; BORDER-TOP: #ffffff 0px solid; FONT-SIZE: 70%; MARGIN-LEFT: 10px } .issuetable { BACKGROUND-COLOR: #ffffe8; BORDER-COLLAPSE: collapse; COLOR: #000000; FONT-SIZE: 100%; MARGIN-BOTTOM: 10px; MARGIN-LEFT: 13px; MARGIN-TOP: 0px } .issuetitle { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px; COLOR: #003366; FONT-WEIGHT: normal } .header { BACKGROUND-COLOR: #cecf9c; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; COLOR: #000000; FONT-WEIGHT: bold } .issuehdr { BACKGROUND-COLOR: #E0EBF5; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; COLOR: #000000; FONT-WEIGHT: normal } .issuenone { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-RIGHT: 0px; BORDER-TOP: 0px; COLOR: #000000; FONT-WEIGHT: normal } .content { BACKGROUND-COLOR: #e7e7ce; BORDER-BOTTOM: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid; BORDER-RIGHT: #ffffff 1px solid; BORDER-TOP: #ffffff 1px solid; PADDING-LEFT: 3px } .issuecontent { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #dcdcdc 1px solid; BORDER-TOP: #dcdcdc 1px solid; PADDING-LEFT: 3px } A:link { COLOR: #cc6633; TEXT-DECORATION: underline } A:visited { COLOR: #cc6633; } A:active { COLOR: #cc6633; } A:hover { COLOR: #cc3300; TEXT-DECORATION: underline } H1 { BACKGROUND-COLOR: #003366; BORDER-BOTTOM: #336699 6px solid; COLOR: #ffffff; FONT-SIZE: 130%; FONT-WEIGHT: normal; MARGIN: 0em 0em 0em -20px; PADDING-BOTTOM: 8px; PADDING-LEFT: 30px; PADDING-TOP: 16px } H2 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 3px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px; PADDING-LEFT: 0px } H3 { COLOR: #000000; FONT-SIZE: 80%; FONT-WEIGHT: bold; MARGIN-BOTTOM: -5px; MARGIN-LEFT: 10px; MARGIN-TOP: 20px } H4 { COLOR: #000000; FONT-SIZE: 70%; FONT-WEIGHT: bold; MARGIN-BOTTOM: 0px; MARGIN-TOP: 15px; PADDING-BOTTOM: 0px } UL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } OL { COLOR: #000000; FONT-SIZE: 70%; LIST-STYLE: square; MARGIN-BOTTOM: 0pt; MARGIN-TOP: 0pt } LI { LIST-STYLE: square; MARGIN-LEFT: 0px } .expandable { CURSOR: hand } .expanded { color: black } .collapsed { DISPLAY: none } .foot { BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM: #cecf9c 1px solid; BORDER-TOP: #cecf9c 2px solid } .settings { MARGIN-LEFT: 25PX; } .help { TEXT-ALIGN: right; margin-right: 10px; }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值