gameboard 0.0.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|