C语言解密元素游戏代码解析:随机数、字符串比较、循环应用

以下是一个用 C 语言制作的解密元素游戏,主要使用了随机数、字符串比较和循环语句等基本语法。

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

int main()
{
    char elements[10][10] = {'hydrogen', 'helium', 'lithium', 'beryllium', 'boron', 'carbon', 'nitrogen', 'oxygen', 'fluorine', 'neon'};
    int index = rand() % 10; // 随机生成0-9之间的整数作为元素序号
    char answer[10];
    strcpy(answer, elements[index]); // 将随机选出的元素复制到answer中
    int length = strlen(answer);
    char guess[10];
    int i, j;
    for (i = 0; i < length; i++) {
        guess[i] = '-';
    }
    guess[length] = '\0';
    int turns = 0;
    int max_turns = 5;
    while (turns < max_turns) {
        printf("Guess a letter: ");
        char letter;
        scanf(" %c", &letter);
        int found = 0;
        for (j = 0; j < length; j++) {
            if (answer[j] == letter) {
                guess[j] = letter;
                found = 1;
            }
        }
        printf("%s\n", guess);
        if (strcmp(answer, guess) == 0) {
            printf("Congratulations! You win!\n");
            return 0;
        }
        if (!found) {
            turns++;
            printf("Wrong guess, %d turns left.\n", max_turns - turns);
        }
    }
    printf("Sorry, you lose. The answer is %s.\n", answer);
    return 0;
}

该程序的主要思路是选择10个元素中的一个作为答案,玩家需要猜出该元素的所有字母,每猜错一个字母就会失去一次机会,最多允许猜错5次。如果猜出了所有字母,玩家就赢了,否则就输了。

程序首先定义了一个元素数组,其中存储了10个常见元素的名称。然后使用rand()函数生成一个0-9之间的随机数,作为元素序号。接着将选出的元素复制到answer数组中,并根据答案的长度生成一个相应长度的guess数组,用于存储玩家猜测的结果。guess数组中每个元素的初值都是'-', 表示该位置还未猜出来。

然后进入一个while循环,直到玩家猜出所有字母或者猜错了5次为止。循环中首先提示玩家输入一个字母,然后遍历答案的所有字母,如果找到了与玩家输入的字母相同的字母,就将guess数组中对应位置的元素改为该字母,并标记found为1。如果guess数组中所有元素都与answer数组对应位置的元素相同,说明玩家已经猜出了所有字母,输出“Congratulations! You win!”并结束程序。如果没有猜出所有字母,但是找到了与玩家输入的字母相同的字母,则输出guess数组的当前状态。如果没有找到相同的字母,则turns加1,表示玩家猜错了一次,同时输出“Wrong guess, %d turns left.”,其中%d表示还剩下几次机会。

当turns达到5时,说明玩家已经猜错了5次,输出“Sorry, you lose. The answer is %s.”,其中%s表示答案,然后结束程序。

总体来说,该程序比较简单,适合初学者练习基础语法。但是也有一些可以改进的地方,比如可以增加一个提示,告诉玩家猜测的字母是否已经猜过,可以增加一些难度等级,让玩家可以根据自己的水平选择不同的难度等级等。

C语言解密元素游戏代码解析:随机数、字符串比较、循环应用

原文地址: http://www.cveoy.top/t/topic/lX7O 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录