c语言背单词小游戏,单词从bug.text中提取,并且按照汉语输出英文意思
时间: 2023-12-14 22:39:45 浏览: 83
c语言背单词程序
好的,我可以为您提供这样一个小游戏的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX_WORD_LEN 50
#define MAX_DEF_LEN 200
#define MAX_WORDS 1000
void read_words(char words[][MAX_WORD_LEN], char definitions[][MAX_DEF_LEN], int *num_words) {
FILE *fp = fopen("bug.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
exit(1);
}
char line[MAX_WORD_LEN + MAX_DEF_LEN];
*num_words = 0;
while (fgets(line, sizeof(line), fp) != NULL) {
int i = 0;
while (line[i] != ' ') {
words[*num_words][i] = line[i];
i++;
}
words[*num_words][i] = '\0';
strcpy(definitions[*num_words], &line[i+1]);
(*num_words)++;
}
fclose(fp);
}
int main() {
char words[MAX_WORDS][MAX_WORD_LEN];
char definitions[MAX_WORDS][MAX_DEF_LEN];
int num_words;
read_words(words, definitions, &num_words);
srand(time(NULL));
int score = 0;
printf("Welcome to the C word game!\n");
printf("Type 'exit' to quit the game.\n");
while (1) {
int idx = rand() % num_words;
printf("\n%s: ", definitions[idx]);
char answer[MAX_WORD_LEN];
scanf("%s", answer);
if (strcmp(answer, "exit") == 0) {
printf("Final score: %d\n", score);
break;
} else if (strcmp(answer, words[idx]) == 0) {
printf("Correct!\n");
score++;
} else {
printf("Incorrect. The correct answer is '%s'\n", words[idx]);
}
}
return 0;
}
```
这个程序首先会读取 `bug.txt` 文件中的单词和汉语意思,然后进入一个循环,每次随机选择一个单词的汉语意思并要求玩家输入对应的英文单词。如果输入的单词与正确的单词相同,则得分加一;否则显示正确的单词并继续下一轮游戏。玩家可以输入 `exit` 来退出游戏,此时会显示最终得分。
请注意,这个程序只是一个简单的示例,还有很多地方可以改进和完善。例如,可以添加难度等级、计时器、更友好的用户界面等功能。
阅读全文