C语言 | 猜字母小游戏(简单易学)

下面是一个使用C语言编写的猜字母小游戏的示例代码:

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

int main()
{
    char letter, guess;
    srand(time(NULL));
    letter = 'a' + rand() % 26;

    printf("我想了一个小写字母,你猜一猜:");
    guess = getchar();

    while (guess != letter) {
        printf("你猜的字母不对,再猜一次:");
        guess = getchar();
    }

    printf("恭喜你,猜对了!\n");
    return 0;
}

在这个游戏中,程序会使用rand函数生成一个随机的小写字母,然后提示用户猜这个字母。用户输入猜测的字母,程序会告诉用户猜的字母是否正确。

在上面的代码中,我们使用了rand函数来生成随机的小写字母,这个函数的返回值是一个随机的整数。我们可以通过调用srand函数来设置随机数生成器的种子,这样就可以生成不同的随机数序列。

在本例中,我们使用了time函数来获取当前的系统时间,并将其作为随机数生成器的种子。这样,每次运行程序都会生成一个新的随机字母。

我们还使用了getchar函数来读取用户输入的字符,并使用printf函数来输出提示信息。

最后,我们使用了一个while循环来不断地读取用户输入,直到用户猜中了。

这只是一个简单的猜字母游戏的示例代码,你可以根据自己的需要来修改和扩展它。

下面是一个扩展后的猜字母小游戏的示例代码,它具有以下功能:

  • 允许用户自定义字母范围,可以猜大写或小写字母;
  • 记录用户的得分,并根据用户猜测的次数计算得分;
  • 限制用户的猜测次数,如果用户猜测次数超过了限制,则游戏结束。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    char letter, guess;
    char min, max;
    int tries;
    int score = 100;
    printf("输入字母范围的下限(大写或小写):");
    min = getchar();
    printf("输入字母范围的上限(大写或小写):");
    max = getchar();
    printf("输入最多允许的猜测次数:");
    scanf("%d", &tries);
    srand(time(NULL));
    letter = min + rand() % (max - min + 1);

    printf("我想了一个%c到%c之间的字母,你猜一猜:", min, max);
    guess = getchar();
    tries--;

    while (guess != letter && tries > 0) {
        printf("你猜的字母不对,再猜一次:");
        guess = getchar();
        tries--;
        score -= 10;
    }

    if (guess == letter) {
        printf("恭喜你,猜对了!\n");
        printf("你的得分是:%d\n", score);
    } else {
        printf("很遗憾,你没有在规定的次数内猜中字母。\n");
    }

    return 0;
}

下面是一个继续扩展后的猜字母小游戏的示例代码,它具有以下功能:

  • 允许用户自定义字母范围,可以猜大写或小写字母;
  • 记录用户的得分,并根据用户猜测的次数计算得分;
  • 限制用户的猜测次数,如果用户猜测次数超过了限制,则游戏结束;
  • 在游戏结束后,提示用户是否希望再玩一次;
  • 增加游戏的难度,让用户猜多个字母;
  • 增加游戏的奖励机制,让用户得到更多的分数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>

#define MAX_WORD_LEN 20

int main()
{
    char word[MAX_WORD_LEN];
    char guess[MAX_WORD_LEN];
    char min, max;
    int word_len;
    int tries;
    int score = 100;
    int i, correct;
    char play_again = 'y';

    while (play_again == 'y') {
        printf("输入字母范围的下限(大写或小写):");
        min = getchar();
        printf("输入字母范围的上限(大写或小写):");
        max = getchar();
        printf("输入要猜的字母的个数(1-%d):", MAX_WORD_LEN - 1);
        scanf("%d", &word_len);
        printf("输入最多允许的猜测次数:");
        scanf("%d", &tries);
        srand(time(NULL));
        for (i = 0; i < word_len; i++) {
            word[i] = min + rand() % (max - min + 1);
        }
        word[i] = '\0';

        printf("我想了一个%c到%c之间的%d个字母,你猜一猜:", min, max, word_len);
        scanf("%s", guess);
        tries--;

        while (strcmp(guess, word) != 0 && tries > 0) {
            printf("你猜的字母不对,再猜一次:");
            scanf("%s", guess);
            tries--;
            score -= 10;
        }

        if (strcmp(guess, word) == 0) {
            printf("恭喜你,猜对了!\n");
            printf("你的得分是:%d\n", score);
        } else {
            printf("很遗憾,你没有在规定的次数内猜中字母。\n");
        }

        printf("是否希望再玩一次(y/n):");
        play_again = getchar();
        while (getchar() != '\n');
        score = 100;
    }

    return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值