[C语言][小游戏][猜数游戏]

2024-02-26 1415阅读

温馨提示:这篇文章已超过390天没有更新,请注意相关的内容是否还可用!

C语言的奇妙旅行

  • 目录:
  • 一、猜数判定
  • 二、重复到猜对为止
  • 三、随机设定目标数字
  • 四、限制输入次数
  • 五、保存输入的记录
  • 六、测试小游戏

    目录:

    带着梦想,带着好奇,带着执着,在C语言的世界里旅行。亲爱的朋友们,一起加油。

    一、猜数判定

    显示玩家从键盘输入的值和计算机事先准备的“目标数字”进行比较

    #include 
    int main()
    {
        int no;//读取的数字
        int ans = 7;//目标数字
        printf("请输入0~9的数字:\n\n");
        printf("你猜是多少呢?:\n");
        scanf("%d", &no);
        if (no > ans)
            printf("\a再小一点。\n");
        else if (no  
    

    1)本游戏的“目标数字”是7,用变量ans表示,从键盘输入的值则用变量no表示。

    2)程序通过if来判断no和ans两个变量值的大小,根据判断结果显示“再小一点。”“再大一点。”“猜对了。”。

    3)输出的字符串包含两个转义字符。一个是我们熟悉的\n,表示换行,另一个\a,表示警报。

    二、重复到猜对为止

    如果“猜数字游戏”只允许玩家输入一次数值,那就显得无趣。我们把程序改良一下,玩家可以一直重复输入,直到猜对了为止。

    #include 
    int main()
    {
        int no;//读取的数字
        int ans = 7;//目标数字
        printf("请输入0~9的数字:\n\n");
        do
        {
            printf("你猜是多少呢?:\n");
        scanf("%d", &no);
        if (no > ans)
            printf("\a在小一点。\n");
        else if (no  
    

    1)do语句while(表达式);是通过先循环后判断重复进行处理的语句。

    2)do和while围起来的语句叫做循环体。只要控制表达式的结果不为零,那么循环体就会一直重复执行下去。

    3)我们把控制表达式设为no!=ans,当程序读取到的no和“目标数字”ans一样的值时,控制表达式的求值结果为0,循环就结束了,画面显示“猜对了。”,程序结束。

    三、随机设定目标数字

    前面的游戏,“目标数字”都是自己设置好的,为了提升这个游戏的趣味性,我们让这个值变化起来。

    #include 
    #include 
    #include 
    int main()
    {
        //srand((unsigned)time(NULL));
        int no;//读取的数字
        int ans = rand()%1000+1;//目标数字
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("你猜是多少呢?:\n");
        scanf("%d", &no);
        if (no > ans)
            printf("\a在小一点。\n");
        else if (no  
    

    1)rand函数(生成随机数):头文件为.rand函数生成的值是伪随机数,总会生成一个相同的随机数序列。

    rand函数是对一个叫做“种子”的基准值加以运算得到随机数的。每次运行程序都会生成一个随机序列,rand函数默认种子为常量1。要生成不同的随机数,就要改变这个种子。负责执行这项任务的是srand函数。

    [C语言][小游戏][猜数游戏]

    [C语言][小游戏][猜数游戏]

    2)srand函数(设置生成随机数的种子):srand函数是用来设置种子的,一但决定了种子,那么生成的随机数序列也就确定了。如果我们想每次运行程序的时候都能生成不同的随机数,那么就必须将种子的值从常数变成随机数。

    3)我们一般使用的方法是把运行程序的时间当做种子:

    srand((unsigned)time(NULL))。rand函数的范围是0~32767,所以rand函数要求使用unsigned类型。

    time函数用到的头文件是。

    4)一般情况下,我们需要的是某个特定范围内的随机数。

    “目标数字”设定为1~1000如:

    rand()%1000+1;

    四、限制输入次数

    只要不断输入数值,终会猜对,为了增加难度,也为了给玩家紧张感,我们把玩家最多输入的次数限制一下。

    #define _CRT_SECURE_NO_WARNINGS 1
    #include 
    #include 
    #include 
    int main()
    {
         srand((unsigned)time(NULL));
        int no;//读取的数字
        int ans = rand() % 1000 + 1;//目标数字
        int max_s ;//最多输入的次数
        printf("最多输入几次:\n");
        scanf("%d", &max_s);
        int s = max_s;//还可以输入的次数
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("还剩%d次机会,你猜是多少呢?\n", s);
            s--;
            scanf("%d", &no);
            if (no > ans)
                printf("\a在小一点。\n");
            else if (no  0);
        if (ans == no)
        {
            printf("猜对了。\n");
            printf("你用了%d次猜中\n", max_s - s);
        }
        else
            printf("\a很遗憾,你猜错了\n");
        return  0;
    }
    

    [C语言][小游戏][猜数游戏]

    1)max_s变量表示玩家最多可输入的次数,自己设置。

    2)s表示还能输出的次数,,其初始值是max_s变量的值,每次玩家输入数值时,s就进行自减运算。

    3)当s为0,或者在有限的次数内猜对了,就会跳出循环。

    4)max_s 减去s就可以知道玩家是在第几次猜中了目标数字。

    五、保存输入的记录

    如果程序能够保持玩家输入的值,玩家就能在游戏结束时,确认自己猜的数字距离目标数字有多远

    #define _CRT_SECURE_NO_WARNINGS 1
    #include 
    #include 
    #include 
    int main()
    {
         srand((unsigned)time(NULL));
        int no;//输入的数字
        int ans = rand() % 1000 + 1;//目标数字
        int max_s ;//最多输入的次数
        int arr[1000];//存放输入的值
        int i = 0,j=0;
        printf("最多输入几次:\n");
        scanf("%d", &max_s);
        int s = max_s;//还可以输入的次数
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("还剩%d次机会,你猜是多少呢?\n", s);
            s--;
            scanf("%d", &no);
            arr[i++] = no;
            if (no > ans)
                printf("\a在小一点。\n");
            else if (no  0);
        if (ans == no)
        {
            printf("猜对了。\n");
            printf("你用了%d次猜中\n", max_s - s);
        }
        else
            printf("\a很遗憾,你猜错了\n");
        puts("\n---输入记录---");
        for(j=0;j
         srand((unsigned)time(NULL));
        int no;//输入的数字
        int ans = rand() % 1000 + 1;//目标数字
        int max_s ;//最多输入的次数
        int arr[1000];//存放输入的值
        int i = 0,j=0;
        printf("最多输入几次:\n");
        scanf("%d", &max_s);
        int s = max_s;//还可以输入的次数
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("还剩%d次机会,你猜是多少呢?\n", s);
            s--;
            scanf("%d", &no);
            arr[i++] = no;
            if (no  ans)
                printf("\a在小一点。\n");
            else if (no  0);
        if (ans == no)
        {
            printf("猜对了。\n");
            printf("你用了%d次猜中\n", max_s - s);
        }
        else
            printf("\a很遗憾,你猜错了\n");
        puts("\n---输入记录---");
        for(j=0;j
        printf("********************\n");
        printf("*****1.进入游戏*****\n");
        printf("*****0.退出游戏*****\n");
        printf("********************\n");
    }
    
        printf("********************\n");
        printf("*****1.进入游戏*****\n");
        printf("*****0.退出游戏*****\n");
        printf("********************\n");
    }
    void game()
    {
        int no;//输入的数字
        int ans = rand() % 1000 + 1;//目标数字
        int max_s;//最多输入的次数
        int arr[1000];//存放输入的值
        int i = 0, j = 0;
        printf("最多输入几次:\n");
        scanf("%d", &max_s);
        int s = max_s;//还可以输入的次数
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("还剩%d次机会,你猜是多少呢?\n", s);
            s--;
            scanf("%d", &no);
            arr[i++] = no;
            if (no  ans)
                printf("\a在小一点。\n");
            else if (no  0);
        if (ans == no)
        {
            printf("猜对了。\n");
            printf("你用了%d次猜中\n", max_s - s);
        }
        else
            printf("\a很遗憾,你猜错了\n");
        puts("\n---输入记录---");
        for (j = 0; j  
    

    测试:[C语言][小游戏][猜数游戏]

    2)加个Sleep函数和system函数

    Sleep函数用来休眠,单位是毫秒;system函数可以执行系统命令,system(“cls”)清理屏幕,达到闪烁的目的。

    代码:

    #define _CRT_SECURE_NO_WARNINGS 1
    #include 
    #include 
    #include 
    #include 
    void menu()
    {
        printf("********************\n");
        printf("*****1.进入游戏*****\n");
        printf("*****0.退出游戏*****\n");
        printf("********************\n");
    }
    void game()
    {
        int no;//输入的数字
        int ans = rand() % 1000 + 1;//目标数字
        int max_s;//最多输入的次数
        int arr[1000];//存放输入的值
        int i = 0, j = 0;
        printf("最多输入几次:\n");
        scanf("%d", &max_s);
        int s = max_s;//还可以输入的次数
        printf("请输入1~1000的数字:\n\n");
        do
        {
            printf("还剩%d次机会,你猜是多少呢?\n", s);
            s--;
            scanf("%d", &no);
            arr[i++] = no;
            if (no > ans)
                printf("\a在小一点。\n");
            else if (no  0);
        if (ans == no)
        {
            printf("猜对了。\n");
            printf("你用了%d次猜中\n", max_s - s);
        }
        else
            printf("\a很遗憾,你猜错了\n");
        puts("\n---输入记录---");
        for (j = 0; j  
    

    测试:

    这样看着就很简介

    [C语言][小游戏][猜数游戏]

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]