【发布时间】:2017-10-24 03:54:07
【问题描述】:
这是家庭作业
我正在编写一个简化的拼字游戏,我让我的程序随机生成字符,然后用户会尝试从这些生成的字符中创建一个单词,然后得到一个分数。 我遇到的问题是确保用户实际使用提供的字符。我不知道如何解决这个问题。我不需要任何代码,但会很感激提示,甚至是一个起点的链接。谢谢你的帮助!
编辑 - 大约一半的程序[创建字母集的部分]
void generate_letter_set(int letter_set[] , int size_let , int num_let)
{
int arr[N];
const char let[] =
{'K','J','X','Q','Z','B','C','M','P','F','H','V','W','Y','G','L','S','U','D','N','R','T','O','A','I','E'};
const int freq[] =
{ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 6, 6, 6, 8, 9, 9, 12 };
int score[] =
{ 5, 8, 8, 10, 10, 3, 3, 3, 3, 4, 4, 4, 4, 4, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1};
int index = 0;
for(int i = 0 ; i < 26 ; i++) {
for(int f = 0 ; f < freq[i]; f++) {
arr[index++] = let[i]; //All the 96 letters are stored in let[i]
//printf("%c " , let[i]); // Created the letter bank for all the letters
}
} int letter;
printf("Your letters are: ");
for(int l = 0; l < 7; l++){
letter = rand() % 97;
printf("%c ", arr[letter]);
}
}
【问题讨论】:
-
分享你的代码。
-
我将输入我的第一个函数
-
你看看他们使用的字符;您将它们与您提供的字符进行比较。如果有不匹配,你称之为“犯规”。您可能会考虑按字母顺序对您提供的字符进行排序,然后返回字符,然后处理这些列表。不要忘记空格可以是完整拼字游戏中的任何字符;目前尚不清楚您是否必须处理。
-
@JonathanLeffler 抱歉,我不必处理空白。所以我想我知道你在说什么。我遗漏了一个函数,因为我不想发布我的整个项目。无论如何,我将给用户的所有字符都存储在我创建的名为“word []”的数组中所以你说我做了一个 for 循环,比较给定的字母和输入的字母。使用布尔值(0 和 1)然后可能会或可能不会比较所有字母。这就是你的意思,对吗?
-
或多或少,是的。没有空白让生活更轻松。您只需要确保如果您传递 2 个字母 A,用户不会尝试拼写 BANANA。