用c语言写一个猜单词小游戏
时间: 2024-01-26 13:02:43 浏览: 128
好的,下面是一个简单的猜单词小游戏的 C 语言代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define MAX_WORD_LEN 20 // 单词最大长度
char *words[] = {"hello", "world", "apple", "banana", "computer", "science", "programming", "language", "algorithm", "engineering"}; // 单词列表
int num_words = 10; // 单词数量
// 随机选取一个单词
char *random_word() {
srand(time(NULL));
return words[rand() % num_words];
}
// 显示单词中猜对的字母
void display_word(char *word, char *guesses) {
int len = strlen(word);
int i;
for (i = 0; i < len; i++) {
if (strchr(guesses, word[i])) {
printf("%c ", word[i]);
} else {
printf("_ ");
}
}
printf("\n");
}
// 判断单词是否猜对
int is_word_complete(char *word, char *guesses) {
int len = strlen(word);
int i;
for (i = 0; i < len; i++) {
if (!strchr(guesses, word[i])) {
return 0;
}
}
return 1;
}
// 主函数
int main() {
char *word = random_word();
char guesses[MAX_WORD_LEN] = "";
int num_guesses = 0;
printf("欢迎来到猜单词小游戏!\n");
printf("你需要猜出一个单词,这个单词有 %d 个字母\n", strlen(word));
while (num_guesses < 10) {
printf("你已经猜了 %d 次,还剩 %d 次机会\n", num_guesses, 10 - num_guesses);
display_word(word, guesses); // 显示已经猜对的字母
printf("请输入你的猜测:");
char guess;
scanf(" %c", &guess); // 注意这里要加一个空格,避免换行符的影响
if (strchr(guesses, guess)) {
printf("你已经猜过这个字母了\n");
} else {
guesses[num_guesses] = guess;
num_guesses++;
if (is_word_complete(word, guesses)) {
printf("恭喜你,猜对了!\n");
printf("答案是 %s\n", word);
return 0;
}
}
}
printf("很遗憾,你没有猜对。\n");
printf("答案是 %s\n", word);
return 0;
}
```
这个程序会随机选取一个单词,然后让玩家猜测这个单词中的字母。玩家每次猜测一个字母,如果这个字母在单词中出现过,则显示这个字母的位置,否则显示一个下划线。玩家有 10 次机会猜测单词中的字母,如果在这个限定次数内猜测成功,则游戏胜利;否则游戏失败。
阅读全文