C语言打字游戏源码

到大街上,还是会羡慕那些情侣,但是依然相信舔狗一无所有,渣男满载而归。。。

----  网易云热评

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define MAX 51 //第一测试字母的最大长度
void help()
{
       printf("\n************************");
       printf("\n* 请快速输入上面的字母 *");
       printf("\n************************");
}
void start(char *str)
{
       srand((unsigned int)time(NULL));//产生一个随机种子
       int i=0;
       for (i=0;i<MAX-1;i++)//产生50个字母进行测试
       {
              *(str + i) = rand() % 26 + 'a';  //随机获取一个0-25的数字并于‘a’相加,从而获取一个任意字符
       }
       *(str + MAX - 1) = '\0';//给字符串最后加上结束符
}
void on_game(char *str)
{
       char ch;
       int i = 0;
       int count = 0;
       time_t t_start, t_end; //开始时间和结束时间
       printf("\n%s\n", str);
       count = 0;
       for (i=0;i<MAX-1;i++)
       {
              ch = getch();
              if (i==0)
              {
                     t_start = time(NULL);
              }
              if (ch==*(str+i))
              {
                     printf("%c",ch);//输入正确,打印出字符
                     count++;
              }
              else
              {
                     printf("*");//输入错误,打印*
              }
       }
       t_end = time(NULL);//取结束时间
       printf("\n用时%d 秒\n",t_end-t_start);
       printf("正确率%lf %%\n", (count * 1.0 / (MAX - 1)) * 100);
       printf("按下q键退出");
}
int main() {
       char str[MAX] = { 0 };
       while (1)
       {
              help();//弹出开始内容
              start(str);//生成随机字母
       
              on_game(str);//开始游戏
              char ch = getch();
              if (ch == 'q') //按下esc键退出
              {
                     break;
              }
              system("cls");
              
       }
       system("pause");
       return 0;
}

1、getch(), 用户按下某个字符时,函数自动读取,无需按回车

2、gechar(),用户按下某个字符时,函数自动读取,需要按回车

3、%%,两个%在格式化字符串中输出一个

4、rand(),获取一个随机数,最大值为32767

5、 count * 1.0,将count变成小数

6、system("cls"),清屏操作

运行结果:

 

 

欢迎关注公众号:顺便编点程

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

web安全工具库

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值