打字母游戏
#include
#include
#include // 001.自定义欢迎界面函数
void welcome()
{ // 输出屏幕提示
cleardevice(); //清除图形屏幕 //清除屏幕内容,用当
前背景色清空屏幕,并将当前点移至 (0, 0)。
setcolor(RGB(2,240,255)); // 设置当前字体样式为黑体,
//设置前景色 //设置当前绘图前景色为黄色,字体颜色为蓝色
setfont(80, 0, " "); //大小为80界面字体
outtextxy(300, 50, "打字母游戏"); //在指定位置输出字符串。
// 实现闪烁的"按任意键继续"
int c=255;
while(!kbhit()) //没有按键时循环继续
{
setcolor(RGB(c,98,3)); //设置当前绘图前景色为黄色,即文字颜色为黄色
setfont(20, 0, "宋体"); //设置当前字体样式为宋体
outtextxy(200, 200, " 欢迎欢迎大神
************** "); //在指定位置输出字符串。
outtextxy(200, 240, " * 前来 ****** "); //在指定位置输出字符串。
outtextxy(200, 280, " 挑 **"); //在指定位置输出字符串。
outtextxy(200, 320, " 战~"); //在指定位置输出字符串。
setcolor(RGB(c, 32, 255));
setfont(50, 0, "宋体"); //设置当前绘图前景色为红色
outtextxy(350, 500, "press any key"); //在指定位置输出字符串
c -= 8; //变量c的值自减去8
if (c < 0) c = 255;
Sleep(20); //调用sleep()函数延时20毫秒
}
getch(); //等待用户从键盘按任意一个键,退出循环
cleardevice(); //用当前背景色清空屏幕,并将当前点移至 (0, 0)。
}
void goodbye() // 002.自定义退出界面函数 {
int a=520;
while(!kbhit())
//没有按键时循环继续
{
cleardevice(); //用当前背景色清空屏幕,并将当前点移至
(0, 0)。
setcolor(RGB(a,400,0)); //设置当前绘图前景色为黑色
setfont(80, 0, "黑体"); //设置输出字符串的字体为黑体,大小为48
outtextxy(10, 600 ," 谢谢使用~");
outtextxy(200, 50, "干得漂亮~伙计");
a-=10;
if(a<0) a=520;
Sleep(30);
}
getch();//等待用户从键盘按任意一个键
}
void main() // 主函数
{
int getchar(void);
int z=0;
initgraph(1000,800); // 初始化屏幕为 1000x800
welcome(); // 显示欢迎界面
srand(time(NULL)); // 设置随机种子
setfont(100, 0, "Arial"); // 设置字母的字体和大小,即游戏字体非界面字体
setfillstyle(BLACK); // 设置清除字母的填充区域颜色
char target; // 目标字母
char key; // 用户的按键
int x, y; // 字母的位置
while(true) // 主循环
{
target = 65 + rand() % 26; // 产生任意大写字母
x = rand() % 1000; // 产生任意下落位置
for (y=0; y<800; y++)
{
setcolor(RGB(4,234,255)); // 设置字母的颜色
outtextxy(x, y, target); // 显示字母
if(kbhit())
{
key = getch(); // 获取用户按键
if((key == target) || (key == target + 32))
{
setcolor(BLACK);
outtextxy(x, y, target);// 按键正确,"击落"字母(画黑色方块擦除)
bar(x, y, x + 16, y + 16);
z=z+1;
setcolor(RGB(4,234,255)); //设置当前绘图前景色为黑色
setfont(80, 0, "黑体"); //设置输出字符串的字体为黑体,大小为48
outtextxy(800,600 ,z);// 跳出循环,进行下一个字母
break;
getchar();
}
else if (key == 27)
{
goto EXIT; // 如果按 ESC,退出游戏主循环
}
}
// 延时,并清除字母
Sleep(10);
bar(x, y, x + 16, y + 16);
}
}
EXIT:
// 退出部分
goodbye(); // 关闭图形界面
closegraph();
}