打字母游戏代码如下
/********************************************************************
* *
* 程序名称:打字母游戏 *
* 编译环境:Microsoft Visual Studio Professional 201 9版本 16.6.3 *
* && EasyX_20200520(beta) *
* 作者相关:Jay *
* 最后修改:2020.07.21 *
* *
*********************************************************************/
#include <stdio.h>//C语言标准库函数
#include <time.h>//C语言时间库函数
#include <conio.h>//一个控制台输入输出库函数
#include <graphics.h>//EasyX图形库头文件
#include "typingGame.h"
//欢迎界面函数
void welcom(void) {
initgraph(1000, 800);//初始化画布,画布大小1000X800,宽度:1000,高度:800
//设置窗口标题
HWND hend = GetHWnd(); //获取当前窗口
SetWindowText(hend,_T("打字母游戏 作者:Jay"));//设置窗口的文本(hend:当前窗口,在当前窗口显示的内容)
LOGFONT f;
gettextstyle(&f); // 获取当前字体设置
f.lfHeight = 80; // 设置字体高度为 48
_tcscpy_s(f.lfFaceName, _T("楷体")); // 设置字体为“黑体”(高版本 VC 推荐使用 _tcscpy_s 函数)
f.lfQuality = ANTIALIASED_QUALITY; // 设置输出效果为抗锯齿
settextstyle(&f); // 设置字体样式
//settextstyle(80, 0,_T( "微软雅黑"));//设置的字体和大小
setcolor(WHITE); //设置当前绘图前背景色
outtextxy(320, 250, _T("打字母游戏!"));//在坐标为(320,250)指定位置输出字符串
settextstyle(40, 0,_T("微软雅黑"));//设置的字体和大小
outtextxy(360, 350, _T("输入法切换到英文状态。"));//在坐标为(270,400)指定位置输出字符串
setcolor(RED);//设置当前绘图前背景色
outtextxy(400, 750, _T("按Enter键继续"));//在坐标为(320,750)指定位置输出字符串
getchar();//此函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车.
}
//游戏场景函数
int gameScene(void) {
int X = 0;//存储Y坐标
int letter = 0;//存储产生字母变量
int key;//存储按键输入变量
srand((int)time(NULL));//产生随机数(初始化随机种子)
cleardevice();//清空当前背景屏幕进入游戏界面
while (1) {
letter = rand() % 25 + 65;//产生65~90的随机数,ASCII对应A~Z
X = rand() % 900 + 50;//产生1~1000的随机数。
for (int Y = 1; Y <= 800; Y++) {
settextstyle(50, 0, _T("微软雅黑"));//设置的字体和大小
setcolor(WHITE);
outtextxy(X, Y + 20, letter);//在坐标为(X,Y)指定位置输出字符串
if (_kbhit()) {
key = _getch();// 获取用户输入按键值
if ((key == letter) || (key == letter + 32)) { // (key == letter)判断大写字母或者(key == letter + 32)判断小写字母是否跟输入字符相等
cleardevice();//清空当前背景屏幕从而清空字母
Y = 800; // 使其Y满足for循环条件从而跳出循环,使其进行下一个字母
}
else if (key == 27) {
return 0; // 如果按 ESC,退出游戏场景
}
}
Sleep(1);//延时函数(如果需要调整字母落下速度调整空号里面数字就可以实现)
}
}
}
//退出游戏界面
void logOut(void) {
cleardevice();//清空当前背景屏幕
settextstyle(40, 0,_T( "楷体"));//设置的字体和大小
setcolor(RED);//设置当前绘图前背景色
outtextxy(320, 250, _T("打字母游戏结束!"));//在坐标为(320,250)指定位置输出字符串
getchar();//此函数是一个不回显函数,当用户按下某个字符时,函数自动读取,无需按回车.
}
int main(void) {
welcom();//欢迎界面函数
gameScene();//游戏场景函数
logOut();//退出游戏界面
closegraph();//关闭图形界面
return 0;
}
打字母游戏界面如下: