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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 22880570cd78d0f16f251da42baf2f3e39d372a0
4
- data.tar.gz: 89b807c57a5a7b319afc74fd092ddd9aa5935e04
3
+ metadata.gz: 8dbbd8a905ed5f8528404e93a83498d6be8eaea3
4
+ data.tar.gz: 925a66aae0b871942599014e2aaa481b862062ac
5
5
  SHA512:
6
- metadata.gz: bb9c7a5e2bbf9f6fd69b0894d5e61449b1a883974f54347e5cd361f2603031e135b66475a5f3e641415b678472fdf5138fcd0064f30abe8096505882afc620b8
7
- data.tar.gz: 27dd804335efda6e94edacbd259adae35f32a56b86322d6abfecb07ad9fbb680932234f32c46ca6010736edb2d87cab8cc75b6be5de735a86164d422bec6688c
6
+ metadata.gz: c2d8eb9e58fdc5c98d209fd0a90e59102d4220aabad514f1e66df0a8aaccc8901eae759805f76b68e3c09b7be28b0ca400af0302349257f3b955f8597c561021
7
+ data.tar.gz: 43f829454a434ceee81526511329faab49c770a447d223e35d0ffce1a358813002b28abb435273bb7b3579fb7bdc1461bf5791bb998dd9ba4547182cd12d0fef
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
1
  --color
2
2
  --require spec_helper
3
+ --format documentation
data/gameboard.gemspec CHANGED
@@ -38,4 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.add_development_dependency "pry", "~> 0.10"
39
39
  spec.add_development_dependency "pry-remote", "~> 0.1.8"
40
40
  spec.add_development_dependency "pry-nav", "~> 0.2.4"
41
+ spec.add_development_dependency "bump"
41
42
  end
@@ -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
@@ -2,10 +2,11 @@ require_relative './coordinate'
2
2
  module Gameboard
3
3
  class Cell
4
4
  attr_accessor :value
5
- attr_reader :coordinates
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
@@ -1,3 +1,3 @@
1
1
  module Gameboard
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
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.1
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: