この記事の例では、Word Search Mazeゲームを実現するJavaについて説明しています。あなたの参照のために全員のためにそれを共有してください。特定の分析は次のとおりです。
雑誌では、2つの次元のテーブルにはさまざまな文字があり、8つの方向からの言葉を見つけることがよくあります。このコンピューターはそれを処理するのに非常に便利ですが、アルゴリズムの品質は重要です。なぜなら、ブルートフォースアルゴリズムで実装されている場合、時間がかかる時間は想像を絶するからです。
これはデータ構造の実現であり、問題はJava言語の説明の実現の実現を解決します。
完全なコードは次のとおりです。コメントは非常に明確です
java.io.io.io.io.ioexception; ** * Word Search Maze * * * */public class wordsearch {/** *コンストラクターで、2つの入力ストリーム、単語の入力ストリーム、およびテーブルの入力ストリームを作成します * * * */public wordsearch()throws ioexception {puzzLestrea m = openfile(form file path: "); } /*** @return一致する合計マッチングの単語の数があります*各位置の8つの方向からの検索* rd rd rd = -1、上の線* cdは増分を示すことを示します。列の例:CD = -1。左へのステップを示します*したがって、rd = 1、cd = 0は南* rd = -1、cd = 0を意味します。 matches = 0; )for(int cd = -1; cd <= 1; cd ++)if(rd!= 0 || cd!= 0)+= solvedirection(r、c、rd、cd); ***指定された座標では、特定の指示の検索に応じて、一致する単語の数を返します"; int numMatches = 0; int searchResult; charsequence + = theboard [baserow] [basecol]; clumns; += rowdelta、coldelta){char searthult = freixsearch(thewords、charsequence); - 危険で、最後の単語がインデックス-1 * * / if(searchResult == thewords.length)を返す場合、あなたがしていることは役に立たない * / if(!thewords [! SearchResult] .Startswith(CharSequence)If(The Words [searchResult] .equals(charsequence)){nummatics ++; basecol + "column" + i + " + j);} return numMatches;} /***最初に説明arrays.binarysearch(object []、object)*バイナリ検索アルゴリズムを使用して指定された配列を検索して指定されたアレイを取得します物体。この呼び出しの前に、 *アレイ要素の自然な順序に従って *アレイでソートする必要があります(上記のソート(オブジェクト[]メソッド)。 *配列のソートがない場合、結果は不明です。互いに比較する(たとえば、文字列と整数)、 *アレイ要素の自然な順序に従って配列をソートできないため、結果は明確ではありません) (string [] a、string x){int idx = arrays.binarysearch(a、x);入力ストリームを取得* / private bufferedreader openfile(string message){string filename = "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ()if(filename == null)exit(0); filein == null); puzzLeStream.readline()== null)新しいioExcept(columns oneline.length.length(); = null){if(oneline.length()!!stem.err。println( "パズルは長方形ではありません。 char [rows] [columns] ;; ()throws ioexception {list <string> words <string>();; 0){system.err.println(「今回は辞書の順序でソートされていません」;} words.add(thisword.trim()); words.size()]; .Uou T.Println( "); [] TheWords;この記事がすべての人のJavaプログラムのデザインに役立つことが期待されています。