|
|
|
@ -30,62 +30,57 @@ public class Battleship{ |
|
|
|
return this.playerBoard; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args){ |
|
|
|
int rand = randint(9,10); |
|
|
|
System.out.println(rand); |
|
|
|
} |
|
|
|
public static void randomizingBoard(int[][] board){ |
|
|
|
boolean vert = false; |
|
|
|
int[] boundTL = {0,0}; |
|
|
|
int[] boundBR = {board[0].length, board.length}; |
|
|
|
int length; |
|
|
|
int[] lengths = { |
|
|
|
2, |
|
|
|
3, |
|
|
|
3, |
|
|
|
4, |
|
|
|
5} |
|
|
|
5}; |
|
|
|
|
|
|
|
boolean placed; |
|
|
|
Ship[] ships = new Ship[5]; |
|
|
|
|
|
|
|
ships[0] = Ship.randomShip(boundTL,boundBR,lengths[0],true); |
|
|
|
for (int i = 1; i < 5; i++){ |
|
|
|
|
|
|
|
length = lengths[i] |
|
|
|
length = lengths[i]; |
|
|
|
placed = false; |
|
|
|
while (!placed){ |
|
|
|
int[] start = new int[2]; |
|
|
|
|
|
|
|
int[] end = start.clone(); |
|
|
|
|
|
|
|
if vert{ |
|
|
|
end[Y] += length-1; |
|
|
|
} |
|
|
|
else { |
|
|
|
end[X] += length-1; |
|
|
|
} |
|
|
|
|
|
|
|
Ship cur_ship = new Ship(start,end); |
|
|
|
Ship cur_ship = Ship.randomShip(boundTL,boundBR,length,i%2 == 0); |
|
|
|
boolean intersects = false; |
|
|
|
int rot = 0; |
|
|
|
while ((rot < 4) && !placed) { |
|
|
|
if cur_ship.isInside(board[0].length,board.length) { |
|
|
|
for (int j = 0; j < i + 1; j++){ |
|
|
|
placed = !isIntersecting( |
|
|
|
int[] stationary = cur_ship.getStart().clone(); |
|
|
|
while ((rot < 4) && !placed) { |
|
|
|
// ensures ship doesn't intect with any that were previously placed |
|
|
|
for (int j = 0; j < i + 1; j++){ |
|
|
|
intersects = cur_ship.isIntersecting(ships[j]); |
|
|
|
if (intersects){ |
|
|
|
cur_ship.rotate(stationary,1); |
|
|
|
rot += 1; |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
else { |
|
|
|
rot = 4; |
|
|
|
// ensures ship is still in bounds after rotation |
|
|
|
if (!cur_ship.isInside(boundTL,boundBR)) { |
|
|
|
cur_ship.rotate(stationary,1); |
|
|
|
rot += 1; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
// swap starting position each time |
|
|
|
if (vert) { |
|
|
|
vert = false; |
|
|
|
} |
|
|
|
else { |
|
|
|
vert = true |
|
|
|
// nothing wrong with ship placement? place it! |
|
|
|
else if (!intersects){ |
|
|
|
ships[i] = cur_ship; |
|
|
|
placed = true; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// we done, place those puppys on for real. |
|
|
|
for (int i = 0; i < 5; i++){ |
|
|
|
ships[i].placeOnBoard(board); |
|
|
|
} |
|
|
|
} |
|
|
|
} |