C/C++教程

【c语言】打字游戏框架

本文主要是介绍【c语言】打字游戏框架,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

打字游戏框架步骤:
  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;
}


      运行结果:

 

这篇关于【c语言】打字游戏框架的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!