forked from ymarcus93/Java-Battleship
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShip.java
More file actions
96 lines (84 loc) · 2.16 KB
/
Ship.java
File metadata and controls
96 lines (84 loc) · 2.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
public class Ship
{
/* Instance Variables */
private int row;
private int col;
private int length;
private int direction;
// Direction Constants
public static final int UNSET = -1;
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
// Constructor
public Ship(int length)
{
this.length = length;
this.row = -1;
this.col = -1;
this.direction = UNSET;
}
// Has the location been init
public boolean isLocationSet()
{
if (row == -1 || col == -1)
return false;
else
return true;
}
// Has the direction been init
public boolean isDirectionSet()
{
if (direction == UNSET)
return false;
else
return true;
}
// Set the location of the ship
public void setLocation(int row, int col)
{
this.row = row;
this.col = col;
}
// Set the direction of the ship
public void setDirection(int direction)
{
if (direction != UNSET && direction != HORIZONTAL && direction != VERTICAL)
throw new IllegalArgumentException("Invalid direction. It must be -1, 0, or 1");
this.direction = direction;
}
// Getter for the row value
public int getRow()
{
return row;
}
// Getter for the column value
public int getCol()
{
return col;
}
// Getter for the length of the ship
public int getLength()
{
return length;
}
// Getter for the direction
public int getDirection()
{
return direction;
}
// Helper method to get a string value from the direction
private String directionToString()
{
if (direction == UNSET)
return "UNSET";
else if (direction == HORIZONTAL)
return "HORIZONTAL";
else
return "VERTICAL";
}
// toString value for this Ship
public String toString()
{
return "Ship: " + getRow() + ", " + getCol() + " with length " + getLength() + " and direction " + directionToString();
}
}