battle_boats 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +18 -2
- data/battle_boats.gemspec +2 -1
- data/bin/battle_boats +2 -4
- data/lib/battle_boats/board.rb +22 -0
- data/lib/battle_boats/console_ui.rb +62 -2
- data/lib/battle_boats/engine.rb +27 -0
- data/lib/battle_boats/version.rb +1 -1
- data/lib/battle_boats.rb +2 -0
- metadata +23 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a74f9d785a67a640d0cab5e9c4a81db0ae9ef77
|
4
|
+
data.tar.gz: d70c00997e2a04baa7f9634ebea6a7b057363019
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d8f2a57c1dc3e062ce9651870ca2de7b9553ba9e20fe0d2007c28abf0315c1515ac0ec13ad2a1b85f1a0c1b181f3b453609433c4359c054b28d9fa943131dd5
|
7
|
+
data.tar.gz: 31bc1db1950c708442630d2415cbbda32e4bcd49667d7eb4380c8ef89e2486f21f360477f82eb8c26945002d8cb3ab5fa1824172c30579cbb337a564fbb8c98a
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# 0.0.3
|
2
|
+
## New Features
|
3
|
+
- Can fire and miss a target on the board
|
4
|
+
|
5
|
+
# 0.0.2
|
6
|
+
## Bug Fixes
|
7
|
+
- YANKED due to vulnerability with rubocop development dependency
|
8
|
+
|
9
|
+
# 0.0.1
|
10
|
+
## New Features
|
11
|
+
- Welcome message
|
12
|
+
|
13
|
+
# 0.0.0
|
14
|
+
## New Features
|
15
|
+
- claim name
|
data/Gemfile.lock
CHANGED
@@ -1,14 +1,20 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
battle_boats (0.0.
|
4
|
+
battle_boats (0.0.2)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
ast (2.4.0)
|
9
10
|
diff-lcs (1.3)
|
10
11
|
docile (1.3.0)
|
11
12
|
json (2.1.0)
|
13
|
+
parallel (1.12.1)
|
14
|
+
parser (2.5.1.0)
|
15
|
+
ast (~> 2.4.0)
|
16
|
+
powerpack (0.1.1)
|
17
|
+
rainbow (3.0.0)
|
12
18
|
rake (10.5.0)
|
13
19
|
rspec (3.7.0)
|
14
20
|
rspec-core (~> 3.7.0)
|
@@ -23,11 +29,20 @@ GEM
|
|
23
29
|
diff-lcs (>= 1.2.0, < 2.0)
|
24
30
|
rspec-support (~> 3.7.0)
|
25
31
|
rspec-support (3.7.1)
|
32
|
+
rubocop (0.55.0)
|
33
|
+
parallel (~> 1.10)
|
34
|
+
parser (>= 2.5)
|
35
|
+
powerpack (~> 0.1)
|
36
|
+
rainbow (>= 2.2.2, < 4.0)
|
37
|
+
ruby-progressbar (~> 1.7)
|
38
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
39
|
+
ruby-progressbar (1.9.0)
|
26
40
|
simplecov (0.16.1)
|
27
41
|
docile (~> 1.1)
|
28
42
|
json (>= 1.8, < 3)
|
29
43
|
simplecov-html (~> 0.10.0)
|
30
44
|
simplecov-html (0.10.2)
|
45
|
+
unicode-display_width (1.3.2)
|
31
46
|
|
32
47
|
PLATFORMS
|
33
48
|
ruby
|
@@ -37,7 +52,8 @@ DEPENDENCIES
|
|
37
52
|
bundler (~> 1.16)
|
38
53
|
rake (~> 10.0)
|
39
54
|
rspec (~> 3.0)
|
40
|
-
|
55
|
+
rubocop (~> 0.42)
|
56
|
+
simplecov (~> 0.16)
|
41
57
|
|
42
58
|
BUNDLED WITH
|
43
59
|
1.16.1
|
data/battle_boats.gemspec
CHANGED
@@ -31,5 +31,6 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_development_dependency "bundler", "~> 1.16"
|
32
32
|
spec.add_development_dependency "rake", "~> 10.0"
|
33
33
|
spec.add_development_dependency "rspec", "~> 3.0"
|
34
|
-
spec.add_development_dependency "
|
34
|
+
spec.add_development_dependency "rubocop", "~> 0.55"
|
35
|
+
spec.add_development_dependency "simplecov", "~> 0.16"
|
35
36
|
end
|
data/bin/battle_boats
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
module BattleBoats
|
2
|
+
class Board
|
3
|
+
attr_reader :play_area, :status_report
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@status_report = ""
|
7
|
+
@play_area = []
|
8
|
+
10.times do
|
9
|
+
row = []
|
10
|
+
10.times do
|
11
|
+
row << nil
|
12
|
+
end
|
13
|
+
@play_area << row
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def strike_position(row:, column:)
|
18
|
+
@play_area[row.to_i][column.to_i] = "X"
|
19
|
+
@status_report = "Miss!"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -1,15 +1,75 @@
|
|
1
1
|
module BattleBoats
|
2
2
|
class ConsoleUI
|
3
|
-
def initialize(output: $stdout)
|
3
|
+
def initialize(output: $stdout, input: $stdin)
|
4
4
|
@output = output
|
5
|
+
@input = input
|
5
6
|
end
|
6
7
|
|
7
8
|
def greet
|
8
9
|
output.puts "Welcome to Battle Boats!"
|
9
10
|
end
|
10
11
|
|
12
|
+
def display_board(board)
|
13
|
+
output.puts format_board(board)
|
14
|
+
end
|
15
|
+
|
16
|
+
def get_row
|
17
|
+
output.puts "Target row:"
|
18
|
+
input.gets.chomp
|
19
|
+
end
|
20
|
+
|
21
|
+
def get_column
|
22
|
+
output.puts "Target column:"
|
23
|
+
input.gets.chomp
|
24
|
+
end
|
25
|
+
|
26
|
+
def display_status_report(status_report)
|
27
|
+
output.puts status_report
|
28
|
+
end
|
29
|
+
|
11
30
|
private
|
12
31
|
|
13
|
-
attr_reader :output
|
32
|
+
attr_reader :output, :input
|
33
|
+
|
34
|
+
def format_board(board)
|
35
|
+
board_string = horizontal_line
|
36
|
+
board_string << newline
|
37
|
+
board_string << top_row
|
38
|
+
board_string << horizontal_line
|
39
|
+
board_string << newline
|
40
|
+
board.play_area.each_with_index do |row, row_number|
|
41
|
+
board_string << pipe
|
42
|
+
board_string << " #{row_number} "
|
43
|
+
board_string << pipe
|
44
|
+
row.each do |cell|
|
45
|
+
board_string << if cell
|
46
|
+
" #{cell} "
|
47
|
+
else
|
48
|
+
" . "
|
49
|
+
end
|
50
|
+
board_string << pipe
|
51
|
+
end
|
52
|
+
board_string << newline
|
53
|
+
board_string << horizontal_line
|
54
|
+
board_string << newline
|
55
|
+
end
|
56
|
+
board_string
|
57
|
+
end
|
58
|
+
|
59
|
+
def top_row
|
60
|
+
"| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |\n"
|
61
|
+
end
|
62
|
+
|
63
|
+
def newline
|
64
|
+
"\n"
|
65
|
+
end
|
66
|
+
|
67
|
+
def horizontal_line
|
68
|
+
"-" * 67
|
69
|
+
end
|
70
|
+
|
71
|
+
def pipe
|
72
|
+
"|"
|
73
|
+
end
|
14
74
|
end
|
15
75
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require_relative "board"
|
2
|
+
require_relative "console_ui"
|
3
|
+
|
4
|
+
module BattleBoats
|
5
|
+
class Engine
|
6
|
+
def initialize(interface: BattleBoats::ConsoleUI.new,
|
7
|
+
board: BattleBoats::Board.new)
|
8
|
+
@interface = interface
|
9
|
+
@board = board
|
10
|
+
end
|
11
|
+
|
12
|
+
def start
|
13
|
+
interface.greet
|
14
|
+
interface.display_board(board)
|
15
|
+
row = interface.get_row
|
16
|
+
column = interface.get_column
|
17
|
+
board.strike_position(row: row, column: column)
|
18
|
+
status_report = board.status_report
|
19
|
+
interface.display_status_report(status_report)
|
20
|
+
interface.display_board(board)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
attr_reader :interface, :board
|
26
|
+
end
|
27
|
+
end
|
data/lib/battle_boats/version.rb
CHANGED
data/lib/battle_boats.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: battle_boats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Countz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,20 +52,34 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubocop
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.55'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.55'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: simplecov
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - "
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
75
|
+
version: '0.16'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - "
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
82
|
+
version: '0.16'
|
69
83
|
description: 'Battleship is a two-player guessing game. More details can be found
|
70
84
|
here: https://en.wikipedia.org/wiki/Battleship_(game)'
|
71
85
|
email:
|
@@ -80,6 +94,7 @@ files:
|
|
80
94
|
- ".rspec"
|
81
95
|
- ".rubocop.yml"
|
82
96
|
- ".travis.yml"
|
97
|
+
- CHANGELOG.md
|
83
98
|
- CODE_OF_CONDUCT.md
|
84
99
|
- Gemfile
|
85
100
|
- Gemfile.lock
|
@@ -91,7 +106,9 @@ files:
|
|
91
106
|
- bin/console
|
92
107
|
- bin/setup
|
93
108
|
- lib/battle_boats.rb
|
109
|
+
- lib/battle_boats/board.rb
|
94
110
|
- lib/battle_boats/console_ui.rb
|
111
|
+
- lib/battle_boats/engine.rb
|
95
112
|
- lib/battle_boats/version.rb
|
96
113
|
homepage: https://www.github.com/thomascountz/battle_boats
|
97
114
|
licenses:
|