【问题标题】:How to print two particular elements in a 2D array如何在二维数组中打印两个特定元素
【发布时间】:2014-11-16 20:08:12
【问题描述】:

我正在尝试编写一个基本的记忆游戏,其中用户必须猜测字符数组上的两个不同位置以查看两个字符是否匹配。

首先,用户输入两个坐标整数Ex:[1,2]和[1,4]。选择拼图板的大小后,我的程序会根据拼图板的大小创建一个随机字母数组。

我的问题在于尝试打印用户的猜测坐标。输入的第一个坐标总是打印在数组的正确索引中,但是第二个输入的坐标是 显示不准确。

这是打印数组的代码段,任何提示/帮助将不胜感激。

{
    int i=1;

    for (int row=0; row<board.length; row++){
      for (int column=0; column<board[row].length; column++){
        if (x==row && y==column)
              {
          System.out.print (" "+ board[row][column]+ " ");
        }
        else if ( a==row && y==column){
          System.out.print (" "+ board[row][column] + " ");
        }
        else 
          System.out.print (" * " );

      }
      System.out.print (i++);

      System.out.println ();
    }


    int m=1;

    while (m<board.length+1){

      System.out.print (" "+ m++ + " " );

    }
    System.out.println (" ");
  }

【问题讨论】:

  • 你能告诉我们完整的代码吗?
  • 为什么不显示预期的输出和得到的输出?为什么两个点具有相同的y 坐标?是不是笔误?

标签: java loops multidimensional-array


【解决方案1】:

如果您输入的第一个坐标是 x,y,那么您的第二个坐标不能是 ay

else if ( a==row && y==column){

在查看您的代码后,第二个坐标应该是 a,b

else if (a==row && b==column){

或者,将它们命名为 x2y2 之类的

int x2=keyboard.nextInt( );
x2--;
int y2=keyboard.nextInt( );
y2--;

然后

else if (x2==row && y2==column){

【讨论】:

  • 哦,我现在看到了我的错误!非常感谢。有时需要另一双眼睛才能注意到这些事情。祝你有美好的一天。
猜你喜欢
  • 2018-07-22
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2015-03-01
相关资源
最近更新 更多