C/C++项目实战-打字母游戏

打字母游戏代码如下

/********************************************************************
*														            *
*	程序名称:打字母游戏						                    *
*	编译环境: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;
}

打字母游戏界面如下:


在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值