1

私はこのボグル型のゲームを作りましたが、今のところとてもうまくいきます。このメソッドは、10x10 グリッドを検索して、ユーザーが入力した単語が正しいかどうかを確認するためのものです。私が抱えている問題は、このコードが左から右、上から下に表示される単語に対してのみ機能することです。今は斜めにするつもりはありませんが、逆順に出てくる単語もシステムに受け入れられるようにしたいと思っています。入力した単語が適切に一致するかどうかを確認するには、入力した単語を反転 (反転) する必要があると言われました (これは理にかなっています。結局のところ、バックワードである単語を探しているのです)。では、どうすればこれを達成できますか?さて、私はコーディングがあまり得意ではないので、時間があれば、どのコードを使用する必要があるかを書き留めてください. ありがとうございました。

public static boolean wordSearch (char[][] table, String search)
       {
           int  ctr = search.length();
           String temp = ""; 

           // LEFT TO RIGHT / X-AXIS
           for (int row = 0; row < 10; row++) //Checks each row (x) one by one
           {
                   for (int a = 0; a <= (10 - ctr); a++)
                   {
                    StringBuilder s = new StringBuilder(10-ctr);//Does... something
                        for (int x = a; x <= (a+ctr-1); x++) //Checks every possibility in the row
                         {
                            s.append(table[row][x]);
                            temp = s.toString();
                            if (temp.equals(search))
                            {
                                return true;
                            }
                         }
                   }
           }
           // TOP TO BOTTOM / Y-AXIS
           for (int column = 0; column < 10; column++)
           {
                   for (int b = 0; b <= (10 - ctr); b++)
                   {
                    StringBuilder v = new StringBuilder(10-ctr);
                        for (int y = b; y <= (b+ctr-1); y++)//checks every possibility in grid
                         {
                            v.append(table[y][column]);
                            temp = v.toString();
                            if (temp.equals(search))
                            {
                                return true;
                            }
                         }
                   }
           }
            return false;//if word isn't in grid it returns as false, which then displays an error message
      }
4

1 に答える 1

1

編集...Javaバージョン!!! (現在、便利なJavaコンパイラはありませんが、これは正しいと思います...)

コードの2行目で、逆の文字列を計算します。これを行うには何千もの方法がありますが、これはかなり自明です(文字列に空白がないと仮定しています...):

int ls = search.length();  // length of initial string
StringBuilder sb = new StringBuilder(); // temporary place to store growing string
for(int ii=ls-1;ii>=0; ii--) {
        sb.append(search.charAt(ii)); // build the string one character at a time
    }
hcraes = sb.toString(); // convert to "regular" string

今、あなたがラインを持っているすべてのポイントで

if (temp.equals(search))

その行をに変更します

if (temp.equals(search) || temp.equals(hcraes))

それでうまくいくはずです。

于 2013-01-25T05:13:45.257 に答える