标签:游戏 框架 int void printf 打字 time 字符串 include
打字游戏框架步骤:
while(条件)
{
显示游戏规则
生成随机的字符串 -------->for循环
{
生成一个随机数,将随机数变成字母,存入字符数组中(参考ASCII表)
}
按下任意键开始游戏
打印生成字符数组(也就是字符串)
循环(指定或已知的次数)
{
获取键盘输入
由于需要记录过程时间,当你按下按键与字符串比较就(记录开始计时)---->if语句判断
如果输入字符与字符串中的字符相对应,(原样输出),并且定义变量记录正确个数
否则错误就用__(下划线)表示输出
}
记录结束计时
打印用时 = (结束计时) - (开始计时);
打印正确率 = 正确个数/(字符串总数)*100%
获取键盘输入,如果是(空格就继续) || (ESC退出程序)
}
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
void tygames(void);//函数提前声明
void frame(void);
int main(int argc, char *argv[])
{
//游戏规则框架
frame();
//游戏功能实现
tygames();
return 0;
}
void frame(void)
{
printf("*********************************************\n");
printf("* 输入过程中无法退出! *\n");
printf("* 请按所给字母敲击键盘! *\n");
printf("* 按下任意键开始测试,按下首个字母开始倒计时!*\n");
printf("* 输入错误,以 _ 表示! *\n");
printf("*********************************************\n");
return;
}
void tygames(void)
{
while(1)
{
char buf[26]="";
char ch ='\0';
//系统时间随机种子
srand(time(NULL));
int i = 0;
for(i=0;i<25;i++)
{
buf[i] = rand()%26 + 'a';//随机a ~z字母并存入buf字符串数组中
}
getch();//按任意键,显示字符串
printf("%s\n",buf);
float count = 0;//记录输入字母对于正确个数
int start_time = 0,end_time = 0;//定义开始和结束变量
for(i=0;i<25;i++)
{
ch = getch();//无需回车输出(需要包含头文件#include <conio.h>)
if(i == 0)
{
start_time = time(NULL);//记录开始时间
}
if(ch == buf[i])//输入字符与字符串中字母对应
{
printf("%c",ch);//则原样输出
count++;
}
else
{
printf("_");//否则下划线代替
}
}
end_time = time(NULL);//记录结束时间
printf("\n完成输入!\n");
printf("用时 %.2f s\n",(float)(end_time-start_time));//打印用时
int right = (count/25.0)*100.0;//计算正确率
printf("正确率:%d%%\n",right);
int t = 1;
while(t)
{
printf("按下ESC退出,空格继续\n");
char con = getch();
if(con == 32)
{
system("cls");//清屏
frame();
printf("\n游戏继续,请按任意键开始\n");
t = 0;
}
else if(con == 27)
{
return;
}
}
}
return;
}
运行结果:
标签:游戏,框架,int,void,printf,打字,time,字符串,include 来源: https://blog.csdn.net/xjm956/article/details/117839196
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。