2016-12-05 18 views
-1

私は、単語の検索パズルゲームを作成しようとしていると思う単語を入力するようにユーザーには、配列の中にあり、その単語が見つかった場合は、ユーザーにポイントを与える(合計10ポイントの後それはお祝いのメッセージが印刷されます)。単語検索パズル:単語の検索のために文字の配列を検索するにはどうすればよいですか?

このコードでは、私は規則的な配列を持っていますが、いくつかの研究に基づいて、私は2D配列が良いかもしれないと思います。あなたの考えは?具体的に私はあなたが簡単に検索を行うためにいくつかの追加の変数を追加提案

#include <iostream> 
using namespace std; 

int main() { 
// your code goes here 

    cout<<"=================================================================================="<<endl; 
cout<<"||                    ||"<<endl; 
cout<<"||      Welcome to the ECE 114 Game Design!     ||"<<endl; 
cout<<"||                    ||"<<endl; 
cout<<"=================================================================================="<<endl; 
cout<<"This is a sample output"<<endl; 


//We want to ask the user to enter a word that they think the cross-word puzzle contains 
//if the puzzle contains that word, we tell the user they are correct and update their points 
//score by 1. Total of 10 points to gain, when the points score reaches 10 the user gets congratulatory message 

string myArray[] = { "A B C D E F G H 
         S P A D E T R Y 
         T I G O A L E A 
         T R A I N E A W 
         O A P B E A T N "}; 
//The first array above will just be a visual for the player to see 

//This second array is the one that I will use to search for words 

char wordBank[5][8] = [[ 'A', 'B ','C', 'D', 'E', 'F', 'G', 'H'], 
        ['S','P', 'A', 'D', 'E', 'T', 'R', 'Y'], 
        ['T', 'I', 'G', 'O', 'A', 'L', 'L', 'E', 'A'], 
        ['T', 'R','A', 'I', 'N', 'E', 'A', 'W'], 
        ['O', 'A', 'P', 'B', 'E', 'A', 'T', 'N']]; 

cout<<myArray<<endl; 





return 0; 
} 
+0

これは、文字の配列(または2次元)配列が、文字列が1つの文字列の1つの配列よりも優れている場所です。 –

+0

おそらく[宿題に関する助けを求める方法](http://meta.stackoverflow.com/questions/334822/how-do-i-ask-and-answer-homework-questions)に注意してください。 – wally

+0

このコードはコンパイルされていますか?私は、配列宣言に文字 "H"の後に警告またはエラーがあると思われます。 –

答えて

0

を考慮する必要があり、検索アルゴリズムの種類に興味があります。たとえば、テキストの文字列を縦および横方向に作成します。垂直文字の文字列を作成することにより

static const std::string puzzle_text[] = 
{ 
    "ABCDEFGH", 
    "SPADETRY", 
    "TIGOALEA", 
    "TRAINEAW", 
    "OAPBEATN" 
}; 

int main(void) 
{ 
    std::string vertical_texts[8]; 
    for (unsigned int column = 0; column < 8; ++column) 
    { 
    for (unsigned int row = 0; row < 5; ++row) 
    { 
     vertical_text[column] += puzzle_text[row].at(column); 
    } 
    } 
    return 0; 
} 

std::string::findを使用することができます。垂直の文字列は、パズルごとに1回作成する必要があります。

OPのタスク:逆方向検索(std::stringメソッドを参照)、対角ストリングの作成。

編集1:検索アルゴリズム
ここで私はこれらのパズルを検索して使用するアルゴリズムです:
1.キー単語の最初の文字を抽出します。
2.テキスト行で文字を検索します。
3.文字が見つかった場合は、隣り合う文字を確認してキーワードの2番目の文字を確認します。
3.1。 2文字目が見つかった場合は、続けてキーワードの残りの文字を検索します。

これは、特に難しい言葉のために私をうまくやってくれました。

+0

ありがとうございます。代わりに2D配列で作業したい。私は自分の投稿を編集して、私が意味することを示しています。説明もありがとう –

+0

パズルが2次元の文字列でも1次元の文字列でも、アルゴリズムは同じです。それらを理解し、それらを適応させてください。 –

+0

タイマーを実装する方法を知りましたか?これは、私のプログラムを改善し、このゲームで誇りを持っているようなものです。私は、ユーザーがゲームを完了するのにどれくらいの時間がかかるかを知りたがっています(10語すべてを正しく入力してください)。 –

関連する問題