最简单C语言游戏程序如何入门?

99ANYc3cd6
预计阅读时长 15 分钟
位置: 首页 C语言 正文

最简单、最经典的C语言游戏程序,非 猜数字 莫属,它几乎只用到了C语言最基础的语法,但包含了游戏的核心要素:输入、判断、反馈和循环。

最简单的游戏程序c语言
(图片来源网络,侵删)

下面我将为你提供一个非常详细的“猜数字”游戏程序,并逐步解释每一行代码的含义。

最简单的C语言游戏:猜数字

这个游戏的目标是:程序随机生成一个1到100之间的数字,然后玩家通过输入数字来猜测,程序会提示玩家猜的数字是“太大”、“太小”还是“猜对了”。


完整代码

#include <stdio.h>   // 标准输入输出库,用于 printf 和 scanf
#include <stdlib.h>  // 标准库,用于 rand 和 srand
#include <time.h>    // 时间库,用于 time
int main() {
    int secretNumber;  // 用来存储程序随机生成的秘密数字
    int guess;         // 用来存储玩家猜测的数字
    int tries = 0;     // 记录玩家猜测的次数
    // 1. 初始化随机数种子
    // 如果不设置种子,每次运行程序时 rand() 生成的随机数序列都是一样的
    // time(NULL) 返回当前时间,作为种子,确保每次运行结果都不同
    srand(time(NULL));
    // 2. 生成一个1到100之间的随机数
    // rand() % 100 会生成一个 0 到 99 的数
    // +1 之后,范围就变成了 1 到 100
    secretNumber = rand() % 100 + 1;
    // 3. 游戏主循环
    printf("欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字,\n");
    // 使用 while(1) 创建一个无限循环,直到玩家猜对才会用 break 退出
    while (1) {
        printf("请输入你的猜测: ");
        // 4. 获取玩家输入
        // scanf("%d", &guess) 会读取用户输入的一个整数,并存储在 guess 变量中
        scanf("%d", &guess);
        // 5. 增加猜测次数
        tries++;
        // 6. 判断玩家的猜测
        if (guess > secretNumber) {
            printf("太大了!\n");
        } else if (guess < secretNumber) {
            printf("太小了!\n");
        } else {
            // 如果既不大也不小,那就猜对了
            printf("恭喜你!猜对了!\n");
            printf("你一共猜了 %d 次,\n", tries);
            // 7. 猜对后,用 break 退出循环,游戏结束
            break;
        }
    }
    return 0; // 程序正常结束
}

如何运行这个程序

  1. 保存代码:将上面的代码复制并粘贴到一个文本编辑器中,保存为 guess_game.c
  2. 编译代码:打开你的终端(Windows上是CMD或PowerShell,macOS或Linux上是Terminal),进入到你保存文件的目录,然后输入以下命令进行编译:
    gcc guess_game.c -o guess_game
    • gcc 是C语言的编译器。
    • guess_game.c 是你的源文件名。
    • -o guess_game 指定输出的可执行文件名为 guess_game
  3. 运行程序:编译成功后,在同一目录下运行生成的程序:
    • Windows 上:
      guess_game.exe
    • macOSLinux 上:
      ./guess_game

代码逐行详解

  1. #include <stdio.h>

    • 这是一个“预处理器指令”,告诉编译器在编译前要包含 stdio.h 文件。
    • stdio.h 是“标准输入输出头文件”,里面定义了我们程序中用到的 printf(打印信息到屏幕)和 scanf(从键盘读取输入)等函数。
  2. #include <stdlib.h>

    最简单的游戏程序c语言
    (图片来源网络,侵删)
    • 包含 stdlib.h 文件,因为它提供了 rand(生成随机数)和 srand(设置随机数种子)函数。
  3. #include <time.h>

    • 包含 time.h 文件,因为它提供了 time 函数,用来获取当前时间。
  4. int main() { ... }

    这是所有C程序的入口点,程序执行时,会从这里开始。

  5. srand(time(NULL));

    最简单的游戏程序c语言
    (图片来源网络,侵删)
    • 这是让游戏每次都不同的关键!
    • rand() 函数本身并不是真正的随机,它是一个“伪随机数生成器”,如果没有给它一个初始的“种子”,它每次生成的数字序列都是固定的。
    • time(NULL) 会返回从1970年1月1日到现在经过的秒数,这个数是时刻变化的。
    • srand() 就用这个变化的秒数作为种子,确保 rand() 每次运行时都能产生不同的随机数序列。
  6. secretNumber = rand() % 100 + 1;

    • rand():生成一个很大的随机整数。
    • rand() % 100:取这个随机数除以100的余数,结果的范围是 099
    • + 1:将结果的范围调整为 1100,这个数字就被赋值给了 secretNumber
  7. while(1) { ... }

    • 这是一个无限循环,循环体 里的代码会一直重复执行,直到遇到 break 语句才会退出,这非常适合游戏的主逻辑。
  8. scanf("%d", &guess);

    • 从标准输入(也就是键盘)读取一个整数。
    • %d 是一个格式说明符,表示要读取一个十进制整数。
    • &guess 是变量 guess 的内存地址。scanf 需要知道把读到的数字存放在哪里,所以需要地址。
  9. if-else if-else

    • 这是条件判断语句。
    • guess > secretNumber,打印“太大了!”。
    • 否则如果 guess < secretNumber,打印“太小了!”。
    • 如果以上两个条件都不满足(说明 guess 等于 secretNumber),就执行 else 部分,打印恭喜信息,并用 break 退出 while 循环,游戏结束。

如何让它变得更“好玩”一点?

你可以在这个简单的基础上进行扩展,

  1. 限制猜测次数:增加一个 max_tries 变量,当 tries 超过 max_tries 时,游戏失败。

    int max_tries = 7;
    // 在循环里判断
    if (tries >= max_tries) {
        printf("很遗憾,你没有在 %d 次内猜中,游戏结束!\n", max_tries);
        break;
    }
  2. 增加难度选择:让玩家选择数字的范围(比如1到1000)。

    int max_range;
    printf("请选择游戏难度(输入数字范围上限,例如100或1000): ");
    scanf("%d", &max_range);
    secretNumber = rand() % max_range + 1;
  3. 增加“再来一局”功能:在游戏结束后,询问玩家是否想再玩一次。

    char play_again;
    printf("想再玩一局吗?(y/n): ");
    scanf(" %c", &play_again); // 注意 %c 前面的空格,它会跳过之前输入留下的换行符
    if (play_again == 'y' || play_again == 'Y') {
        // 重置游戏状态,tries = 0,然后重新生成 secretNumber
        // 然后继续主循环
    } else {
        printf("游戏结束,再见!\n");
        break;
    }

希望这个最简单的游戏程序能帮助你开启C语言游戏编程的大门!

-- 展开阅读全文 --
头像
电影下载站织梦模板如何快速搭建?
« 上一篇 今天
dede如何显示图片?
下一篇 » 今天

相关文章

取消
微信二维码
支付宝二维码

目录[+]