3 回答
TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
你可以做幾件事。就像循環(huán)兩個(gè)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;
}
}
你可以制定一個(gè)方法。
static void process(bool[][] p){
// repeat code with p.
}
然后你就可以調(diào)用這個(gè)方法了。
process(polelode1);
process(polelode2);
您可以使用流。
TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以創(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;
}
進(jìn)而
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貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
好的,我發(fā)現(xiàn)您可以創(chuàng)建一個(gè)空布爾字段,并且可以復(fù)制另一個(gè)字段的值。這是迄今為止我最好的解決方案:
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;
}
進(jìn)行了一些測(cè)試,發(fā)現(xiàn)了困難的方法。無論如何謝謝大家!
添加回答
舉報(bào)
