3 回答

TA貢獻2051條經(jīng)驗 獲得超10個贊
你可以做幾件事。就像循環(huán)兩個polelode1、polelode2一樣。
for(bool[][] p: Arrays.asList(polelode1, polelode2)){
if((p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3])!= true){
p[x][y] = true;
p[x][y + 1] = true;
p[x][y + 2] = true;
p[x - 1][y + 1] = true;
p[x - 1][y + 2] = true;
p[x][y + 3] = true;
}
}
你可以制定一個方法。
static void process(bool[][] p){
// repeat code with p.
}
然后你就可以調(diào)用這個方法了。
process(polelode1);
process(polelode2);
您可以使用流。

TA貢獻2019條經(jīng)驗 獲得超9個贊
您可以創(chuàng)建其他方法并調(diào)用它;例如 :
public boolean fct1(boolean[][] p){
return !(p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3]);
}
public void fct2(boolean[][] p){
p[x][y] = true;
p[x][y + 1] = true;
p[x][y + 2] = true;
p[x - 1][y + 1] = true;
p[x - 1][y + 2] = true;
p[x][y + 3] = true;
}
進而
if(fct1(polelode1)){ //kontrola kolize
fct2(polelode1);
pocetparniku = pocetparniku + 1;
}
else {
System.out.println("can't create boat on another boat!");
drawAim();
}
if(fct1(polelode2)){ //kontrola kolize
fct2(polelode2);
}

TA貢獻1796條經(jīng)驗 獲得超10個贊
好的,我發(fā)現(xiàn)您可以創(chuàng)建一個空布爾字段,并且可以復制另一個字段的值。這是迄今為止我最好的解決方案:
if (player == true) {
p = polelode1;
}
else {
p = polelode2;
}
if((p[x][y] || p[x][y + 1] || p[x][y + 2] || p[x - 1][y + 1] || p[x - 1][y + 2] || p[x][y + 3])!= true){
p[x][y] = true;
p[x][y + 1] = true;
p[x][y + 2] = true;
p[x - 1][y + 1] = true;
p[x - 1][y + 2] = true;
p[x][y + 3] = true;
}
進行了一些測試,發(fā)現(xiàn)了困難的方法。無論如何謝謝大家!
添加回答
舉報