java - 如何使用 Cell 的 toString() 方法为 2D 单元格数组创建 toString() 方法?
问题描述
我的任务是实现 Conway 的生命游戏,但我坚持在toString()
方法中表示我的游戏地图(一个 2D 单元格阵列)。我的 toString() 方法:
public String toString() {
int h;
int j;
String str;
str = null;
String[][] stringArray = new String[map.length][map.length];
for (h = 0; h < getWidth(); h++) {
for (j = 0; j < getHeight(); j++) {
Cell i = getCell(h, j);
stringArray[h][j] = i.toString() + " ";
}
}
int k;
int m;
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str = stringArray[k][m];
}
}
return str;
}
如您所见,我需要将单元格特定toString()
方法作为任务的一部分。此toString()
方法如下所示:
public String toString() {
if (status == ECellStatus.DEAD) {
return ".";
} else {
return "#";
}
}
在实际代码中,我只得到最后一个单元格的表示,但我想像这样打印它:
. . . . .
. . # . .
. . . # .
. # # # .
. . . . .
我希望有人可以帮助我。
解决方案
在第二个 for 循环中,您将重新分配str
给当前 Cell,toString
而不是附加/添加到它,这可能是您打算做的。
要附加到str
,您可以执行以下操作:
for (k = 0; k < stringArray.length; k++) {
for (m = 0; m < stringArray.length; m++) {
str += stringArray[k][m];
}
}
这也将要求您初始化str
为非空值,因此
str = null;
您需要执行str = "";
或等效的操作。
推荐阅读
- azure - Azure OCR 正在跳过一些值(尤其是数字)
- java - 如何在 Json 字符串中解析符号“:”
- javascript - DynamoDB Array of Array of strings 架构
- kubernetes - 当我从外部删除节点时,kubectl get nodes 挂起
- linux - “vmstat”和“perf stat -a”为上下文切换显示不同的数字
- javascript - amcharts4 水平条形图列右侧的工具提示
- functional-programming - 在这个判断函数中这个接收语句fullfil的目的是什么?
- c# - ASP.NET 在发布到 IIS 后失去与 SQL Server Express 的连接
- simd - __m256i 版本的 _mm_test_all_zeros
- c# - 使用类装饰器省略特定元素上的 XML 命名空间