📜  C中的数字猜谜游戏(1)

📅  最后修改于: 2023-12-03 15:00:11.910000             🧑  作者: Mango

C中的数字猜谜游戏

在C语言中,可以很方便地实现数字猜谜游戏,游戏规则如下:

  1. 电脑随机生成一个1到100之间的整数,并提示玩家猜测数字的范围;
  2. 玩家每猜一个数字,电脑会判断猜的数字与正确答案的大小关系,并给出相应的提示,直到猜中为止;
  3. 在猜中或游戏失败后,要求玩家选择是否继续游戏;

下面是一个简单的示例代码实现:

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

int main() {
    int target, guess, num_guesses = 0;
    char play_again = 'y';
    srand(time(NULL));  // 用当前时间初始化随机数种子

    while (play_again == 'y') {  // 只要玩家选择继续游戏,就一直进行
        // 生成随机数
        target = rand() % 100 + 1;
        // 提示玩家猜测范围
        printf("I'm thinking of a number between 1 and 100.\n");
        printf("Try to guess what it is!\n");

        // 开始猜测
        while (1) {
            printf("\nEnter your guess: ");
            scanf("%d", &guess);
            ++num_guesses;

            // 判断大小关系
            if (guess < target)
                printf("Your guess is too low.\n");
            else if (guess > target)
                printf("Your guess is too high.\n");
            else {
                // 猜中
                printf("Congratulations, you guessed it in %d tries!\n", num_guesses);
                break;
            }
        }

        // 询问是否继续游戏
        printf("\nDo you want to play again? (y/n) ");
        scanf(" %c", &play_again);
        num_guesses = 0;
    }

    printf("Thanks for playing. Goodbye!");

    return 0;
}

该代码使用了rand()函数来生成随机数,以及srand()函数来初始化随机数种子。在每次玩家猜中或者选择结束游戏后,重置了num_guesses计数器。

此外,为了确保玩家只能输入'y'和'n'两个字符,scanf()函数前加了一个空格,避免输入缓冲区中的换行符对下一次输入造成影响。

以上就是C中实现数字猜谜游戏的一个简单示例。可以根据实际需要进行修改或改进,增加提示信息、背景音乐等元素,使游戏更加有趣。