您能在java中指定在方法开始时使用哪个变量吗?
我想把这段代码缩短一点,可能让我的老师更容易阅读。问题是我不知道我是否能做这样的事情。下面是一个示例代码:您能在java中指定在方法开始时使用哪个变量吗?,java,Java,我想把这段代码缩短一点,可能让我的老师更容易阅读。问题是我不知道我是否能做这样的事情。下面是一个示例代码: if((polelode1[x][y]| polelode1[x][y+1]| polelode1[x][y+2]| polelode1[x-1][y+1]| polelode1[x-1][y+2]| polelode1[x][y+3])!=true)//kontrola kolize polelode1[x][y]=真; polelode1[x][y+1]=真; polelode1[x]
if((polelode1[x][y]| polelode1[x][y+1]| polelode1[x][y+2]| polelode1[x-1][y+1]| polelode1[x-1][y+2]| polelode1[x][y+3])!=true)//kontrola kolize
polelode1[x][y]=真;
polelode1[x][y+1]=真;
polelode1[x][y+2]=真;
polelode1[x-1][y+1]=真;
polelode1[x-1][y+2]=真;
polelode1[x][y+3]=真;
pocetparniku=pocetparniku+1;
}
否则{
System.out.println(“无法在另一条船上创建船!”);
drawAim();
}
如果((polelode2[x][y]| polelode2[x][y+1]| polelode2[x][y+2]| polelode2[x-1][y+1]| polelode2[x-1][y+2]| polelode2[x][y+3])!=true){//kontrola kolize
polelode2[x][y]=真;
polelode2[x][y+1]=真;
polelode2[x][y+2]=真;
polelode2[x-1][y+1]=真;
polelode2[x-1][y+2]=真;
polelode2[x][y+3]=真;
}
问题是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]=真;
p[x][y+1]=真;
p[x][y+2]=真;
p[x-1][y+1]=真;
p[x-1][y+2]=真;
p[x][y+3]=真;
}
不要使用p
而使用polelode1
或polelode2
可能吗?非常感谢您的帮助。您可以做几件事。就像两个极点上的环1,极点2
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.
}
然后你可以调用这个方法
process(polelode1);
process(polelode2);
你可以用一条小溪 您可以创建其他方法并调用它;例如:
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);
}
好的,我发现你可以创建一个空的布尔字段,你可以复制另一个字段的值。这是我迄今为止最好的解决方案:
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;
}
做了一些测试,找到了艰难的道路。无论如何,谢谢大家 哦,这就是我一直在寻找的东西!只要稍微调整一下就可以了!谢谢这是一个有趣的一个肯定,我一定要尝试这个!谢谢你,马特