一、目的

  为了增加对c语言的学习兴趣,我们今天将学习一个基于控制面板的猜数字小游戏,希望这个代码能够激起新学者对c语言的兴趣,也同时编译完成可以分享给自己的朋友试玩。  

二、编译的基本思路

  利用函数来完成猜数字游戏,包括菜单函数,处理函数,主函数三大部分,对其分别处理来实现。

菜单函数menu,利用printf语句进行我们所想要的菜单样式。

处理函数Game,通过传进的数字与随机生成的数字进行比较,用if语句进行判断,若输入的数大于随机生成的数字,则输出你所输入的数大于所猜测的数字,反之则小于。若刚好相等则输出恭喜玩家猜对数字,游戏胜利。

设置猜测的次数,创建一个变量来计算每次判断结束后的次数,再使用判断语句对我们设定的次数比较,若相等则游戏提前结束,反之游戏正常进行。

三、代码的实现

函数部分

menu

void menu() {

    printf("猜数字游戏1-100共八次机会\n");

    printf("-----选择1开始-----\n");

    printf("-----选择0结束游戏\n-----");

}

  Game

int Game(int a, int b) {

    if (a > b) {

        printf("输入的数字大了\n");

    } else if (a < b) {

        printf("输入的数字小了\n");

    } else {

        printf("恭喜你猜对了\n");

    }

    return 0;

}

主函数部分


int main() {

    int n;

    int count = 0, count1 = 0;

    int c = 0;

menu();

    do {

        

        scanf("%d", &count);



        if (count == 1) {

            srand((unsigned)time(NULL));

            count1 = rand() % 100 + 1;

            c = 0;



            printf("游戏开始!你有8次机会。\n");

            while (1) {

                printf("请输入你所猜的数字(1-100):");

                scanf("%d", &n);

                Game(n, count1);

                c++;



                if (n == count1) {

                    printf("你用了%d次猜出答案!\n", c);

                    break;

                }



                if (c == 8) {

                    printf("游戏结束,正确答案是:%d\n", count1);

                    break;

                }



                printf("你还有%d次机会!\n", 8 - c);

            }

        }

    } while (count != 0);



    printf("感谢游玩!\n");

    return 0;

}

  在这段代码中,输入的变量count传值给menu函数,来进行游戏的开始和结束的判断,即输入1开始游戏,0结束游戏。srand()函数是随机生成数字的,time(NULL)获取当前系统时间,(unsigned)将时间值转换为无符号整数,符合srand函数的参数要求。原理:通过使用不断变化的系统时间作为种子,确保每次运行程序或开始新游戏时,生成的随机数序列都不同。rand()函数生成一个 0 到最大整数之间的随机整数,每次生成的是固定值,需要搭配srand((unsigned)time(NULL))来实现每次生成的数都不同。% 100操作将随机数限制在 0-99 的范围内,+ 1操作将范围偏移到 1-100,符合游戏设计需求,最终结果赋值给count1,作为本轮游戏的目标数字。提示可以通过%上不同的数对范围的设置。

  将输入的的n,和随机生成的数count1传给函数Game进行运算。变量c在每次计算完+1,进行输入的次数计算,最后通过if语句对输入的变量c和设置的猜测次数进行判断若相等break结束,8-c用来提醒所剩的猜测次数。

四、头文件的包含

#include <stdio.h>标准头文件

#include <time.h>使用time函数所需要的头文件

#include <stdlib.h>使用srand和rand所需要的头文件

五、总结

这款猜数字游戏虽然简单,但涵盖了 C 语言的核心知识点

下篇预告:喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐