diff --git a/Battleship.java b/Battleship.java index 136dc48..1bb7f1f 100644 --- a/Battleship.java +++ b/Battleship.java @@ -6,7 +6,7 @@ public class Battleship{ public static final int X = 0; public static final int Y = 0; - + private int[][] playerBoard; private int[][] computerBoardDisplay; private int[][] computerBoardHidden; @@ -17,19 +17,19 @@ public class Battleship{ this.computerBoardDisplay = new int[x][y]; this.computerBoardHidden = new int[x][y]; } - + public int[][] getComputerBoardHidden(){ return this.computerBoardHidden; } - + public int[][] getComputerBoardDisplay(){ return this.computerBoardDisplay; } - + public int[][] getPlayerBoard(){ return this.playerBoard; } - + public static void randomizingBoard(int[][] board){ int[] boundTL = {0,0}; int[] boundBR = {board[0].length-1, board.length-1}; @@ -39,18 +39,18 @@ public class Battleship{ 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]; placed = false; System.out.println(length); while (!placed){ - + Ship cur_ship = Ship.randomShip(boundTL,boundBR,length,i%2 == 0); cur_ship.print(); boolean intersects = false; @@ -79,7 +79,7 @@ public class Battleship{ rot += 1; } } - + } } } @@ -90,6 +90,7 @@ public class Battleship{ } } public static void printBoard(int[][] arr){ + for (int row = 0; row < arr.length; row++){ String s = ""; for (int col = 0; col < arr[row].length; col ++){ @@ -104,8 +105,11 @@ public class Battleship{ } public static void main(String[] args){ int[][] testBoard = new int[10][10]; - Ship test = new Ship(new int[] {5,5}, new int[] {9,5}); + Ship test = new Ship(new int[] {5,5}, new int[] {5,9}); int[] stationary = test.getStart().clone(); + test.print(); + test.placeOnBoard(testBoard); + for (int i = 0; i < 4; i++){ test.print(); test.placeOnBoard(testBoard); @@ -113,5 +117,7 @@ public class Battleship{ test.rotate(stationary,1); } + //printBoard(testBoard); + } } diff --git a/Ship.java b/Ship.java index 948f196..2759be5 100644 --- a/Ship.java +++ b/Ship.java @@ -7,25 +7,18 @@ public class Ship{ private int[] end; private int length; - public Ship(int[] start,int[] end){ + this.start = start; + this.end = end; + this.correctSE(); int cord; - boolean vertical = start[Y] == end[Y]; - this.vertical = vertical; - if (vertical) { - cord = X; - } - else { + if (this.vertical) { cord = Y; } - if (start[cord] < end[cord]){ - this.start = start; - this.end = end; - } else { - this.start = end; - this.end = start; + cord = X; } + this.length = this.end[cord] - this.start[cord]+1; } @@ -73,13 +66,14 @@ public class Ship{ } // ensures start and end are in the right place - private void correntSE(){ + private void correctSE(){ int cord; + this.vertical = this.start[X] == this.end[X]; if (this.vertical) { - cord = X; + cord = Y; } else { - cord = Y; + cord = X; } int[] third_point; @@ -122,7 +116,7 @@ public class Ship{ for (int i = 0; i < n; i++){ this.rotate(point); } - this.correntSE(); + this.correctSE(); } public boolean isVertical() { @@ -190,18 +184,21 @@ public class Ship{ } public void placeOnBoard(int[][] board){ - int x_col = this.start[X] + this.correctSE(); + int x_col = this.start[X]; int y_col = this.start[Y]; + int c; if (this.vertical){ - for (int c = this.start[Y];c <= this.end[Y];c++){ - board[x_col][c] = this.length; + for (c = this.start[Y];c <= this.end[Y];c++){ + System.out.println(c); + board[c][x_col] = this.length; } } else { - for (int c = this.start[X];c <= this.end[X];c++){ - board[c][y_col] = this.lenth; + for (c = this.start[X];c <= this.end[X];c++){ + board[y_col][c] = this.length; } } } -} \ No newline at end of file +} \ No newline at end of file