2017-10-24 8 views
1

これは宿題のためである私は、ユーザーがしようとする単語を作成することになり、私はランダムに文字を生成する私のプログラムを持って引っかくの単純化されたゲームをプログラミングしていは必ず、ユーザの入力は、私のプログラムによって生成された文字に一致作る

それらの生成された文字から、その後、得点を得る。 私が抱えている問題は、ユーザーが実際に提供されている文字を使用していることを確認することです。私はこの問題にどのように接近するかについての手がかりがありません。私はコードは必要ありませんが、ヒントは評価されるでしょう。助けてくれてありがとう!

EDIT - 約半分は私のプログラム[文字セットを作成する部分]

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]); 


           } 
} 
+1

コードを共有します。 – pirs

+0

私は最初の機能に入れます – chrisHG

+1

彼らは使用する文字を見ています。あなたはあなたが提供した文字とそれらを比較します。不一致があれば、あなたは「ファウル」と呼ばれます。あなたはあなたがアルファベット順に与えた文字の並べ替えと、返された文字について考えて、リストを処理することを考えるかもしれません。空白は完全なスクラブルの中の任意の文字であることを忘れないでください。あなたがそれに対処しなければならないかどうかは明らかではありません。 –

答えて

0

特定の文字の配列を検索するためのさまざまな方法がたくさんあります。必要なものの基礎は非常に簡単な検索機能です。

単純な解決策の1つは、2つのネストされたforループを使用することです。 let []があなたのユーザーの入力であることを確認するための '乾草'であると仮定します。

// Check each letter of word[]... 
for (int ii = 0; ii <= lengthOfUserInput; ii++) 
{ 
    char characterToValidate = word[ii]; 
    // ... for not existing in let[] 
    for (int jj = 0; jj <= lengthOfStringOfValues; jj++) 
    { 
     if (characterToValidate != let[jj]) 
    } 
}