gpt4 book ai didi

java - 查找矩阵中的重复元素

转载 作者:行者123 更新时间:2023-12-01 19:39:09 26 4
gpt4 key购买 nike

简介

我正在做一些家庭作业,我们的任务是制作一个寻找配对的游戏。我制作了一个矩阵并用字母填充它,如下所示:

Display
----------------
C H F E
G F D D
E C H B
A B G A

现在我正在测试显示方法,该方法使用空矩阵并用给定的输入(row_1, col_1, row_2, col_2, gameMatrix)填充它

问题

在创建“作弊/测试功能”来测试我的显示方法时。我在查找两个 A(或任何其他字母)的位置时遇到了一些麻烦。这是我对这种方法的尝试:

代码

public static void PlayMeBoi(String[][] gameMatrix)
{
int row_1 = 0;
int col_1 = 0;
int row_2 = 0;
int col_2 = 0;


for (int i = 0; i < gameMatrix.length; i++)
{
for (int j = 0; j < gameMatrix.length; j++)
{
if ("A".equals(gameMatrix[i][j]))
{
row_1 = i;
col_1 = j;
break;
}
}
}
for (int i = (row_1+1); i < gameMatrix.length; i++)
{

for (int j = (col_1+1); j < gameMatrix.length; j++)
{
if ("A".equals(gameMatrix[i][j]))
{

row_2 = i;
col_2 = j;
break;
}
}
}

System.out.println("First " + gameMatrix[row_1][col_1] + " at " + " [ " + row_1 + " ] " + "," + " [ " + col_1 + " ] ");
System.out.println("Second " + gameMatrix[row_1][col_1] + " at " + " [ " + row_2 + " ] " + "," + " [ " + col_2 + " ] ");

Turn(row_1, col_1, row_2, col_2, gameMatrix);

}

有关代码的注释

  • 我正在使用字符串而不是字符
  • Turn 是评估字母是否等于字母的函数 (if "A".equals("A"))
  • (row_1+1)(col_1+1) 我的想法是“如果我之前没有找到我的信,那么第二个‘for’将处理矩阵的其余部分)
  • gameMatrix 是加载所有字母的矩阵

问题

我希望能够找到“A”或矩阵内任何其他字母的位置。截至目前,我目前的想法还没有得到我想要的结果

请尽可能多地对代码发表评论。稍后我可能会将其发布在 GitHub 上,供那些感兴趣或发现其中有用的人使用。

感谢您对此问题的兴趣。

最佳答案

第二个for是错误的。让我们看一下您的示例矩阵:

 C   H   F   E   
G F D D
E C H B
A B G A

如果您要查找值 D,您将首先在 row = 1col = 2 处找到它。然后在第二个中,您仅从 row = 2col = 3 运行,这意味着在实践中您将仅迭代您找到的位置的右​​下单元格,在此示例中,将仅生成 2 个单元格,而不是 9 个单元格(用 * 标记):

 C   H   F   E   
G F D D
E C H *B*
A B G *A*

因此,在第二个 中,您应该做的是从同一行和下一列继续搜索:

for (int i = row_1; i < gameMatrix.length; i++)
{
// In the first row starting from the next cell, in the next rows start
// from column 0
int j = i == row_1 ? col_1 + 1 : 0;
for (; j < gameMatrix.length; j++)
{
if ("A".equals(gameMatrix[i][j]))
{
row_2 = i;
col_2 = j;
break;
}
}
}

关于java - 查找矩阵中的重复元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55983185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com