- 前言
 - 1. 游戏介绍
 - 2. 游戏实现
 - 3. 游戏优化
 - 结语
 

个人主页:C_GUIQU

前言
各位小伙伴大家好!
 先问大家一个问题:我们为什么要学习?
 简单来说,就是为了实践!只有不断学习才可以帮助我们更好地实践!
 小编也是第一次讲解游戏,下面带来猜数字游戏的讲解!!后期不定时给大家更新好玩的游戏!!!
 
1. 游戏介绍
【概述】
 猜数字游戏是小编学习C语言时写的第一个小游戏。
猜数字,顾名思义就是去想一个数字然后与电脑生成的一个有范围的随机数作比较,直到猜对为止。
【游戏过程】
 1.自动产生一个1-100之间的随机数
 2.猜数字
猜对了:就恭喜你猜对了,游戏结束。
猜错了:会告诉你是猜大了,还是猜小了,继续猜,直到猜对为止。
3.游戏可以一直玩,除非退出游戏
2. 游戏实现
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h> // 引入标准输入输出头文件
#include<stdlib.h> // 引入标准库头文件,用于调用 srand 和 rand 函数
#include<time.h> // 引入时间头文件,用于获取当前时间
// 菜单函数,用于打印游戏菜单
void menu() {
    printf("欢迎来到猜数字游戏!\n");
    printf("**************************\n");
    printf("********   1.play   ******\n");
    printf("********   0.exit   ******\n");
    printf("**************************\n");
}
// 游戏函数,包含猜数字游戏的主要逻辑
void game() {
    int guess = 0; // 定义变量用于存储玩家的猜测
    int ret = rand()%100+1; // 生成1到100之间的随机数
    // 循环直到玩家猜对数字
    while(1) {
        printf("请猜数字:\n");
        scanf("%d",&guess); // 从键盘读取玩家的输入
        // 根据猜测的数字与随机数比较,给出提示
        if(guess < ret) {
            printf("猜小了\n");
        }
        else if(guess > ret) {
            printf("猜大了\n");
        }
        else {
            printf("恭喜你,猜对了!\n");
            break; // 猜对后跳出循环
        }
    }
}
int main() {
    int input = 0; // 定义变量用于存储玩家的选择
    srand((unsigned int)time(NULL)); // 使用当前时间作为随机数生成的种子
    // do...while 循环用于不断地显示菜单和处理玩家输入
    do {
        menu(); // 调用菜单函数显示菜单
        printf("请选择玩法:");
        scanf("%d",&input); // 从键盘读取玩家的选择
        // switch 语句用于根据玩家的选择执行不同的操作
        switch(input) {
        case 1: // 如果玩家选择1,则调用游戏函数开始游戏
            game();
            break; // 结束switch语句
        case 0: // 如果玩家选择0,则打印退出消息并结束循环
            printf("退出游戏\n");
            break; // 结束switch语句
        default: // 如果玩家输入其他值,则提示错误并要求重新选择
            printf("选择错误,重新选择!\n");
            break; // 结束switch语句
        }
    } while(input); // 当玩家选择不为0时,继续循环
    return 0; // 程序结束
}
 

3. 游戏优化
下面增加难度,猜数字只有5次机会~
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
// 菜单函数,用于打印游戏菜单
void menu() {
    printf("欢迎来到猜数字游戏!\n");
    printf("**************************\n");
    printf("********   1.play   ******\n");
    printf("********   0.exit   ******\n");
    printf("**************************\n");
}
// 游戏函数,包含猜数字游戏的主要逻辑
void game() {
    int guess = 0; // 定义变量用于存储玩家的猜测
    int ret = rand()%100+1; // 生成1到100之间的随机数
    int attempts = 0; // 定义变量用于存储猜测次数
    // 循环直到玩家猜对数字或达到5次尝试
    while(attempts < 5) {
        printf("请猜数字(你还有%d次机会):\n",5 - attempts);
        scanf("%d",&guess); // 从键盘读取玩家的输入
        attempts++; // 猜测次数加1
        // 根据猜测的数字与随机数比较,给出提示
        if(guess < ret) {
            printf("猜小了\n");
        }
        else if(guess > ret) {
            printf("猜大了\n");
        }
        else {
            printf("恭喜你,猜对了!\n");
            break; // 猜对后跳出循环
        }
    }
    if(attempts == 5 && guess != ret) {
        printf("很遗憾,你没有在5次内猜对数字。游戏结束!正确答案是:%d\n",ret);
    }
}
int main() {
    int input = 0; // 定义变量用于存储玩家的选择
    srand((unsigned int)time(NULL)); // 使用当前时间作为随机数生成的种子
    // do...while 循环用于不断地显示菜单和处理玩家输入
    do {
        menu(); // 调用菜单函数显示菜单
        printf("请选择玩法:");
        scanf("%d",&input); // 从键盘读取玩家的选择
        // switch 语句用于根据玩家的选择执行不同的操作
        switch(input) {
        case 1: // 如果玩家选择1,则调用游戏函数开始游戏
            game();
            break; // 结束switch语句
        case 0: // 如果玩家选择0,则打印退出消息并结束循环
            printf("退出游戏\n");
            break; // 结束switch语句
        default: // 如果玩家输入其他值,则提示错误并要求重新选择
            printf("选择错误,重新选择!\n");
            break; // 结束switch语句
        }
    } while(input); // 当玩家选择不为0时,继续循环
    return 0; // 程序结束
}
 

结语
以上就是小编对猜数字游戏的讲解。
 如果觉得小编讲的还可以,还请一键三连。互三必回!
 持续更新中~!
 





![[Java基础揉碎]集合](https://img-blog.csdnimg.cn/direct/1f8272c26d0540a68fedf1f70fada69e.png)













