gameboard 0.0.1 → 1.0.0
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/.rspec +1 -0
- data/gameboard.gemspec +1 -0
- data/lib/gameboard/board.rb +17 -5
- data/lib/gameboard/cell.rb +2 -1
- data/lib/gameboard/version.rb +1 -1
- metadata +15 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dbbd8a905ed5f8528404e93a83498d6be8eaea3
|
4
|
+
data.tar.gz: 925a66aae0b871942599014e2aaa481b862062ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c2d8eb9e58fdc5c98d209fd0a90e59102d4220aabad514f1e66df0a8aaccc8901eae759805f76b68e3c09b7be28b0ca400af0302349257f3b955f8597c561021
|
7
|
+
data.tar.gz: 43f829454a434ceee81526511329faab49c770a447d223e35d0ffce1a358813002b28abb435273bb7b3579fb7bdc1461bf5791bb998dd9ba4547182cd12d0fef
|
data/.rspec
CHANGED
data/gameboard.gemspec
CHANGED
data/lib/gameboard/board.rb
CHANGED
@@ -3,17 +3,16 @@ module Gameboard
|
|
3
3
|
class Board
|
4
4
|
attr_reader :cells, :height, :width, :board
|
5
5
|
|
6
|
-
def initialize(height:false, width: false, cells: false)
|
7
|
-
raise ArgumentError unless (height.is_a?(Integer) && width.is_a?(Integer))
|
6
|
+
def initialize(height:false, width: false, cells: false, preset: false)
|
7
|
+
raise ArgumentError unless ((height.is_a?(Integer) && width.is_a?(Integer)) || !!preset)
|
8
8
|
@height = height
|
9
9
|
@width = width
|
10
10
|
@cells = cells || nil
|
11
|
-
new_board
|
11
|
+
preset ? load_game(preset) : new_board
|
12
12
|
end
|
13
13
|
|
14
14
|
def new_board
|
15
15
|
@board = []
|
16
|
-
i = 0
|
17
16
|
width.times do |x|
|
18
17
|
height.times do |y|
|
19
18
|
@board << Cell.new(Coordinate.new(x,y), value: @cells)
|
@@ -21,7 +20,20 @@ module Gameboard
|
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
24
|
-
|
23
|
+
def load_game(saved_game)
|
24
|
+
@board = []
|
25
|
+
saved_game.reverse!
|
26
|
+
saved_game.transpose.each_with_index do |row, x|
|
27
|
+
row.each.each_with_index do |cell, y|
|
28
|
+
@board << Cell.new(Coordinate.new(x,y), value: cell)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def find_cell(coord)
|
34
|
+
@board.find {|cell|
|
35
|
+
cell.coord.position == coord}
|
36
|
+
end
|
25
37
|
|
26
38
|
end
|
27
39
|
end
|
data/lib/gameboard/cell.rb
CHANGED
@@ -2,10 +2,11 @@ require_relative './coordinate'
|
|
2
2
|
module Gameboard
|
3
3
|
class Cell
|
4
4
|
attr_accessor :value
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :coord
|
6
6
|
def initialize(coord, value: false)
|
7
7
|
raise TypeError unless coord.is_a?(Coordinate)
|
8
8
|
@value = value
|
9
|
+
@coord = coord
|
9
10
|
end
|
10
11
|
end
|
11
12
|
end
|
data/lib/gameboard/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gameboard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sampson Crowley
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: 0.2.4
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: bump
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
description: A clean functional gameboard for CLI games in ruby, that will return
|
140
154
|
and place pieces based on a coordinate system
|
141
155
|
email:
|