096. 使用C语言实现简单的游戏逻辑

在C语言中实现一个简单的游戏逻辑是一个很好的练习,可以帮助你理解游戏开发的基本概念。这里我将展示一个简单的猜数字游戏的实现。这个游戏的基本逻辑是:程序随机生成一个数字,玩家尝试猜测这个数字,程序会根据玩家的猜测给出提示,直到玩家猜对为止。

猜数字游戏逻辑

游戏步骤

  1. 生成随机数:程序随机生成一个数字。
  2. 玩家输入猜测:玩家输入一个数字作为猜测。
  3. 给出提示:程序根据玩家的猜测给出提示(“太高了”、“太低了”或“猜对了”)。
  4. 重复步骤2和3:直到玩家猜对数字为止。

示例代码:简单的猜数字游戏

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int numberToGuess, userGuess;
    int attempts = 0;

    // 初始化随机数生成器
    srand(time(NULL));

    // 生成一个1到100之间的随机数
    numberToGuess = rand() % 100 + 1;

    printf("欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字。\n");

    do {
        printf("请输入你的猜测: ");
        scanf("%d", &userGuess);

        attempts++;

        if (userGuess > numberToGuess) {
            printf("太高了!再试一次。\n");
        } else if (userGuess < numberToGuess) {
            printf("太低了!再试一次。\n");
        } else {
            printf("恭喜你!你猜对了数字 %d,总共尝试了 %d 次。\n", numberToGuess, attempts);
        }
    } while (userGuess != numberToGuess);

    return 0;
}

代码说明

随机数生成

  • 使用 srand(time(NULL)) 初始化随机数生成器,确保每次运行程序时生成的随机数不同。

  • 使用 rand() % 100 + 1 生成一个1到100之间的随机数。

玩家输入:使用 scanf 读取玩家的输入。

给出提示

  • 如果玩家的猜测大于目标数字,提示“太高了”。

  • 如果玩家的猜测小于目标数字,提示“太低了”。

  • 如果玩家的猜测等于目标数字,提示“猜对了”,并结束游戏。

循环:使用 do-while 循环,确保玩家至少尝试一次。

示例运行

欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字。
请输入你的猜测: 50
太高了!再试一次。
请输入你的猜测: 25
太低了!再试一次。
请输入你的猜测: 37
恭喜你!你猜对了数字 37,总共尝试了 3 次。

扩展功能

  1. 限制尝试次数:为玩家设置一个最大尝试次数,如果超过次数仍未猜对,游戏结束。
  2. 增加难度级别:允许玩家选择不同的难度级别,例如不同的数字范围(1到1000)。
  3. 记录玩家成绩:记录玩家的尝试次数,并在游戏结束时显示。
  4. 多人游戏:允许多个玩家轮流猜测,记录每个玩家的尝试次数,最后比较谁的尝试次数最少。

示例:限制尝试次数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int numberToGuess, userGuess;
    int attempts = 0;
    int maxAttempts = 10;

    // 初始化随机数生成器
    srand(time(NULL));

    // 生成一个1到100之间的随机数
    numberToGuess = rand() % 100 + 1;

    printf("欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字。\n");
    printf("你有 %d 次机会猜对这个数字。\n", maxAttempts);

    do {
        printf("请输入你的猜测: ");
        scanf("%d", &userGuess);

        attempts++;

        if (userGuess > numberToGuess) {
            printf("太高了!再试一次。\n");
        } else if (userGuess < numberToGuess) {
            printf("太低了!再试一次。\n");
        } else {
            printf("恭喜你!你猜对了数字 %d,总共尝试了 %d 次。\n", numberToGuess, attempts);
            break;
        }

        if (attempts >= maxAttempts) {
            printf("很遗憾,你没有在 %d 次内猜对。正确答案是 %d。\n", maxAttempts, numberToGuess);
            break;
        }
    } while (userGuess != numberToGuess);

    return 0;
}

示例运行

欢迎来到猜数字游戏!我已经想好了一个1到100之间的数字。
你有 10 次机会猜对这个数字。
请输入你的猜测: 50
太高了!再试一次。
请输入你的猜测: 25
太低了!再试一次。
请输入你的猜测: 37
恭喜你!你猜对了数字 37,总共尝试了 3 次。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)