首页 > 解决方案 > 如何使用 2D 阵列打印 5x5 房间网格?

问题描述

我需要创建一个 5X5 的房间网格,它有 5 行和 5 列和一个 2d 数组。

我在 toString 中创建了方形房间,但每次我尝试使用嵌套的 for 循环打印它时,我都会得到房间的垂直显示。

public String toString() {
  if(roomNumberX ==0 && roomNumberY==0) {
    return"* * *\n* "+item+" |"+"\n* - *";

  } else if(roomNumberX==4 && roomNumberY==0) {
    return "* * * "+"\n| "+item+" *"+"\n* - *";

  } else if(roomNumberX==4 && roomNumberY==4) {
    return "* - * \n| " +item+" *"+"\n* * *";

  } else if(roomNumberX==0 && roomNumberY==4) {
    return "* - *"+"\n* "+item+" |"+"\n* * *";

  } else if(roomNumberX==0 && roomNumberY !=0 || roomNumberY !=4) {
    return "* - *"+"\n* "+item+" |"+"\n* - *";

  } else if(roomNumberX==4 && roomNumberY !=0 || roomNumberY !=4) {
    return "* - *"+"\n| "+item+ " *"+" \n* - *";

  } else if(roomNumberY==0 && roomNumberX != 0 && roomNumberX !=4) {
    return "* * *"+"\n| "+item+" |"+"\n* - *";

  } else if(roomNumberY==4 && roomNumberX !=0 && roomNumberX != 4) {
    return "* - *"+"\n| "+item+" |"+"\n* * *";

  }
  return "* - *\n| "+item+" |\n* - *";
}

下面是我对嵌套 for 循环的尝试

public void lookAtMap() {
  for(int i=0; i<room.length; i++) {
    for(int x=0; x<room[i].length;x++) {
      System.out.print(room[i][x]);
    }
  }
}

输出

* - ** - *
* P |
* - ** - *
| P |
* * *
* * * 
| P *
* - ** - *

标签: java

解决方案


推荐阅读