我正在尝试创建一个对象数组,树(如森林)12x12。它们起初都是树木。用户输入要开始的火灾次数以及火灾蔓延到周围物体之一的概率。当我使用数组[] []时,我有它工作但是当试图使它与对象一起工作时,我无法让对象检查它们周围的对象然后决定是否着火。我是网站的新手,所以我不确定你需要看到什么。
public static void fireCheck(Tree[][] trees1){
int i = 0;
int c = 0;
for(i = 0; i <= 11; i ++) {
for(c = 0; c <= 11; c ++) {
switch(trees1[i][c].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i][c].burned(); break;
default: break;
}
if(trees1[i][c].getStatus() == '^'){
if(i <= 10){
switch(trees1[i + 1][c].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i+1][c].probability(); break;
default: break;
}
if(c <= 10){
switch(trees1[i][c + 1].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i][c+1].probability(); break;
default: break;
}
switch(trees1[i + 1][c + 1].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i+1][c+1].probability(); break;
default: break;
}
}
}
if(i >= 1){
switch(trees1[i - 1][c].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i-1][c].probability(); break;
default: break;
}
if(c >= 1){
switch(trees1[i][c - 1].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i][c-1].probability(); break;
default: break;
}
switch(trees1[i - 1][c - 1].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i-1][c-1].probability(); break;
default: break;
}
}
}
if(i <= 10){
if(c >= 1){
switch(trees1[i+1][c-1].getStatus()){
case '^': break;
case '.': break;
case '*': trees1[i+1][c-1].probability(); break;
default: break;
}
}
}
}
}
}
}
答案 0 :(得分:1)
我想你想让这个程序更加面向对象。
创建一个类树,它有一些位置和一种识别另一棵树是否是邻居的方法。
interface OurTree{
public int getPosition();
public boolean isNeighbour(OurTree tree);
public boolean isBurning();
}
实施上述界面将对您有所帮助。
创建上面实现的接口的一组对象(假设这是一个林)。循环通过集合,并确定是否有任何树着火。如果是的话,烧掉它的邻居。
或者,您可以定义一个方法来返回给定树的邻居,并一次刻录它们。