我的程序中有一个关于无限循环和不正确响应的问题。在我的程序中,我试图为战舰游戏随机设置船只,但在放置船只部件时遇到问题。我已经对其进行了编码,但我遇到了 2 个问题,一个是我在某处有一个无限循环,但我不知道在哪里,下一个是这些碎片没有正确设置在网格上。我已经查看了这段代码很长时间,但我还没有找到解决方法。这里是 :
public void placeAllShips() {
int direction = (int) Math.random()*2 ;
int p1 = 0 ;
int p2 = 0 ;
for(int ships = 1 ; ships < 6 ; ships ++ ) {
p1 = (int)(Math.random()*10);
p2 = (int)(Math.random()*10);
if ( p1 !=0 && p2!= 0 && direction == 0 /* Horizontal Direction*/ ){
for(int i= 0; i < ships ; i ++ ){
while(board[p1][p2+i].hasShip() == true || p2 + i > 10 && p2 - i < 0 ){
randomize(p1,p2) ;
}
}
for(int j = 0 ; j < ships ; j ++ ) {
board[p1][p2+j].setHasShip(true) ;
}
}
else if ( p1 !=0 && p2!= 0 && direction == 1 /*Vertical Direction*/ ){
for(int i= 0; i < ships ; i ++ ){
while(board[p1+i][p2].hasShip() == true || p1 + i > 10 && p1 - i < 0 ){
randomize(p1,p2) ;
}
}
for(int j = 0 ; j < ships ; j ++ ) {
board[p1+j][p2].setHasShip(true) ;
}
}
}
}
public void randomize( int x , int y ) {
//Generates random numbers.
x = (int)Math.random()*10 ;
y = (int)Math.random()*10 ;
}
谢谢您的帮助 !