用C语言制作一款解密元素的游戏并分析该代码
以下是一款简单的解密元素游戏的C语言代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ELEMENTS 10
#define MAX_GUESSES 5
typedef struct {
char symbol[3];
char name[20];
} Element;
Element elements[MAX_ELEMENTS] = {
{"H", "Hydrogen"},
{"He", "Helium"},
{"Li", "Lithium"},
{"Be", "Beryllium"},
{"B", "Boron"},
{"C", "Carbon"},
{"N", "Nitrogen"},
{"O", "Oxygen"},
{"F", "Fluorine"},
{"Ne", "Neon"}
};
void printElements()
{
printf("The elements are:\n");
for (int i = 0; i < MAX_ELEMENTS; i++) {
printf("%d. %s\n", i+1, elements[i].name);
}
printf("\n");
}
int checkGuess(char *guess, int answer)
{
if (strcmp(guess, elements[answer].symbol) == 0) {
printf("Correct!\n");
return 1;
} else {
printf("Incorrect\n");
return 0;
}
}
int main()
{
printElements();
int answer = rand() % MAX_ELEMENTS;
int numGuesses = 0;
char guess[3];
while (numGuesses < MAX_GUESSES) {
printf("Guess the symbol of element %s\n", elements[answer].name);
scanf("%s", guess);
if (checkGuess(guess, answer)) {
printf("You win!\n");
return 0;
} else {
numGuesses++;
printf("You have %d guesses left.\n", MAX_GUESSES - numGuesses);
}
}
printf("You lose! The symbol was %s.\n", elements[answer].symbol);
return 0;
}
这个程序的基本思路是:从10个元素中随机选择一个,然后让玩家猜测该元素的符号。如果玩家猜对了,游戏胜利;否则,玩家还有最多5次机会猜测。如果5次机会用完了还没有猜对,游戏失败。
这个程序使用了结构体来存储元素的符号和名称。在 printElements 函数中,它遍历了 elements 数组,打印出所有元素的名称。在 checkGuess 函数中,它检查玩家的猜测是否正确,并打印相应的消息。
在 main 函数中,它使用 rand 函数来生成一个随机数,以随机选择一个元素作为答案。然后,它进入了一个 while 循环,该循环最多执行5次,直到玩家猜对了答案或猜测次数用完为止。
在每次循环中,程序打印出要猜测的元素的名称,并要求玩家输入一个符号。然后,它调用 checkGuess 函数来检查玩家的猜测是否正确。如果是,程序打印出胜利消息并退出;否则,它将猜测次数加1,并打印出还剩下的次数。
如果循环结束时玩家还没有猜对,程序将打印出失败消息,并显示正确的符号。最后,程序返回0,表示正常退出。
原文地址: https://www.cveoy.top/t/topic/Hwg 著作权归作者所有。请勿转载和采集!