Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查单词搜索游戏的网格_Java_Search_Word_Wordsearch - Fatal编程技术网

Java 检查单词搜索游戏的网格

Java 检查单词搜索游戏的网格,java,search,word,wordsearch,Java,Search,Word,Wordsearch,我制作了这个boggle类型的游戏,到目前为止它运行得非常好。此方法用于搜索10x10网格,查看用户输入的单词是否正确。我的问题是,这段代码只适用于从左到右、从上到下的单词。现在,我不希望做对角线,但我想让系统也接受以相反顺序出现的单词。有人告诉我,你输入的单词必须翻转(反转),以查看它是否匹配正确(这是有意义的。毕竟,你要找的是背景词)。那么,我该如何实现这一目标呢?现在,我对编码不是很在行,所以如果你有时间,请写下我需要使用的代码。多谢各位 public static boolean wor

我制作了这个boggle类型的游戏,到目前为止它运行得非常好。此方法用于搜索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
      }
公共静态布尔词搜索(char[][]表,字符串搜索)
{
int ctr=search.length();
字符串temp=“”;
//从左到右/X轴
for(int row=0;row<10;row++)//逐个检查每一行(x)
{

对于(inta=0;a编辑…Java版本!!!(我现在手头没有Java编译器,但我认为这是正确的…)

在代码的第二行,我们计算反向字符串; 有上千种方法可以做到这一点,但这一种方法非常简单(我假设字符串中没有空格…):

现在,在你有线的每一点上

if (temp.equals(search))
把那行改成

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

这应该可以了。

编辑…Java版本!!!(我现在手头没有Java编译器,但我认为这是正确的…)

在代码的第二行,我们计算反向字符串; 有上千种方法可以做到这一点,但这一种方法非常简单(我假设字符串中没有空格…):

现在,在你有线的每一点上

if (temp.equals(search))
把那行改成

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

这应该可以解决问题。

向您展示如何反转字符串-您是对的,这将是检查从右到左或从下到上的单词的最干净的方法。在上面链接给出的所有解决方案中,我最喜欢这个:
#include std::reverse(str.begin(),str.end())上面的代码是一个C++的答案。我用java标记来回溯这个问题,并且修改了我原来的答案,也就是java。告诉你如何反转一个字符串,你是对的,这是检查上面提到的所有解决方案的右到左或底到上的最干净的方法,我最喜欢这个:<代码>。>包含STD::StRead(Strut Bead),STR.Enter());< /代码>以上是一个C++答案。我用java标记来回溯问题,并且修改了我原来的答案,也就是java。什么是“STD::反向”?它看起来并不怎么有效。它说这是一个非法的表达式开始。请你解释一下??是java还是C++?也许我读的代码太快了。乍看起来,它可能是。但是STD:RealSee()是C++。告诉我你是否需要一个java回答。很好用语言来标注你的问题……是的,抱歉。我刚刚签了这个。是的,我可能应该指定。它是Java.OK,难怪你会困惑。给我一秒钟…我给你java版本。非常感谢。真的,我很欣赏。什么是“STD::反向”它看起来并不怎么有效。它说这是一个非法的表达式开始。请你解释一下??是java还是C++?也许我读的代码太快了。乍看起来,它可能是。但是STD:RealSee()是C++。告诉我你是否需要一个java回答。也许很好用语言来标注你的问题……是的,抱歉。我刚刚注册了这个。是的,我可能应该指定。它是java的。好吧,难怪你会困惑。给我一秒钟…我给你Java版本。非常感谢。真的,我非常感激。