forked from JavaCrips/BattleShip
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ship.java
130 lines (108 loc) · 3.34 KB
/
Ship.java
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package battleship;
import javafx.scene.Parent;
public class Ship extends Parent {
private int xCoord;
private int yCoord;
private int length;
private char orientation;
private int health;
/**
*
* @param xCoord
* @param yCoord
* @param length
* @param orientation
* @see Launch
* @since version 0.1.2
* @author Elijah Joshua Mamon
*
* constructor that initializes the ships.
*/
public Ship(int xCoord, int yCoord, int length, char orientation) {
this.length = length;
this.orientation = orientation;
this.health = length;
this.xCoord = xCoord;
this.yCoord = yCoord;
}
public void setLength(int length) {
this.length = length;
}
public void setOrientation(char orientation) {
this.orientation = orientation;
}
public void setHealth(int health) {
this.health = health;
}
public void setXcoord(int xCoord) {
this.xCoord = xCoord;
}
public void setYcoord(int yCoord) {
this.yCoord = yCoord;
}
public int getLength() {
return this.length;
}
public char getOrientation() {
return this.orientation;
}
public int getHealth() {
return this.health;
}
public int getXcoord() {
return this.xCoord;
}
public int getYcoord() {
return this.yCoord;
}
/**
*
* @param shotX
* @param shotY
* @return boolean if hit
* @since version 0.3.1
* @author Ben Feldhake
*
*
*/
public boolean isHit(int shotX, int shotY) {
//System.out.println("\nOrientation: " + this.getOrientation() + " || xCoord: " + this.getXcoord() + " || yCoord: " + this.getYcoord() + " || length: " + this.getLength());
if (this.getOrientation() == 'h') {
if ((this.getXcoord() - shotX + this.getLength() > 0)
&& (this.getXcoord() - shotX + this.getLength() <= this.getLength())
&& this.getYcoord() == shotY) {
hit();
if (this.isAlive()) {
System.out.println("\nCoordinates (" + shotX + ", " + shotY + ") HIT!");
}
if (this.isAlive() == false) {
System.out.println("\nCoordinates (" + shotX + ", " + shotY + ") SINK!");
}
return true;
} else {
return false;
}
} else {
if ((this.getYcoord() - shotY + this.getLength() > 0)
&& (this.getYcoord() - shotY + this.getLength() <= this.getLength())
&& this.getXcoord() == shotX) {
hit();
if (this.isAlive()) {
System.out.println("\nCoordinates (" + shotX + ", " + shotY + ") HIT!");
}
if (this.isAlive() == false) {
System.out.println("\nCoordinates (" + shotX + ", " + shotY + ") SINK!");
}
return true;
} else {
return false;
}
}
}
public void hit() {
health--;
}
public boolean isAlive() {
return health > 0;
}
}