battle_boats 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +1 -1
- data/lib/battle_boats/board.rb +4 -4
- data/lib/battle_boats/cell.rb +6 -4
- data/lib/battle_boats/null_ship.rb +4 -0
- data/lib/battle_boats/ship.rb +13 -0
- data/lib/battle_boats/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b9b10aee1f2048f395a0630511233753ec454a6e
|
4
|
+
data.tar.gz: 3b7ef2c6e80f95c78a4d3967287d4874473e6f15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4815fb5a29d9d59188c18326035e249abfacf7174b29d0ab4fd1c06424a4cf10df75c96b7c7c5497c4ab11881565c57f9d8140e32b6fdd5a561c266abd439eb3
|
7
|
+
data.tar.gz: 5c3d7dd1d4b9a987187b9a410d051621fe845b57f45ce6a798ebc675c6617e88b4e7da8420835d41a07a63aa6de44c922c1f906dd3e8643833828a297a4d680b
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/battle_boats/board.rb
CHANGED
@@ -34,7 +34,7 @@ module BattleBoats
|
|
34
34
|
end
|
35
35
|
|
36
36
|
def cell_at(coordinate:)
|
37
|
-
if within_range?(coordinate)
|
37
|
+
if within_range?(coordinate: coordinate)
|
38
38
|
@play_area[coordinate.row.to_i][coordinate.column.to_i]
|
39
39
|
end
|
40
40
|
end
|
@@ -64,7 +64,7 @@ module BattleBoats
|
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
|
-
def within_range?(coordinate)
|
67
|
+
def within_range?(coordinate:)
|
68
68
|
if coordinate.row.to_s =~ /^[0-9]$/ && coordinate.column.to_s =~ /^[0-9]$/
|
69
69
|
true
|
70
70
|
else
|
@@ -77,7 +77,7 @@ module BattleBoats
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def occupy_cells(cells:, ship:)
|
80
|
-
if cells_are_occupiable(cells)
|
80
|
+
if cells_are_occupiable(cells: cells)
|
81
81
|
cells.each do |cell|
|
82
82
|
cell.occupant = ship
|
83
83
|
end
|
@@ -86,7 +86,7 @@ module BattleBoats
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
-
def cells_are_occupiable(cells)
|
89
|
+
def cells_are_occupiable(cells:)
|
90
90
|
cells.none?(&:nil?) && cells.none?(&:occupied?)
|
91
91
|
end
|
92
92
|
end
|
data/lib/battle_boats/cell.rb
CHANGED
@@ -17,6 +17,7 @@ module BattleBoats
|
|
17
17
|
|
18
18
|
def strike
|
19
19
|
if !hit?
|
20
|
+
occupant.hit
|
20
21
|
@hit = true
|
21
22
|
end
|
22
23
|
end
|
@@ -30,10 +31,11 @@ module BattleBoats
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def status_report
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
occupant_name = occupant.name
|
35
|
+
if occupant.sunk?
|
36
|
+
"You sunk my #{occupant_name}!"
|
37
|
+
elsif hit?
|
38
|
+
"You hit my #{occupant_name}!"
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
data/lib/battle_boats/ship.rb
CHANGED
@@ -9,10 +9,23 @@ module BattleBoats
|
|
9
9
|
@name = name
|
10
10
|
@length = length
|
11
11
|
@symbol = symbol.red
|
12
|
+
@hits = 0
|
12
13
|
end
|
13
14
|
|
14
15
|
def empty?
|
15
16
|
false
|
16
17
|
end
|
18
|
+
|
19
|
+
def hit_count
|
20
|
+
@hits
|
21
|
+
end
|
22
|
+
|
23
|
+
def hit
|
24
|
+
@hits += 1
|
25
|
+
end
|
26
|
+
|
27
|
+
def sunk?
|
28
|
+
hit_count == length
|
29
|
+
end
|
17
30
|
end
|
18
31
|
end
|
data/lib/battle_boats/version.rb
CHANGED