golr 0.5.2 → 0.5.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.
@@ -1,4 +1,5 @@
1
1
  require 'golr/game'
2
+ require 'golr/key'
3
+ require 'golr/rules'
2
4
  require 'golr/game_reader'
3
5
  require 'golr/game_printer'
4
-
@@ -1,10 +1,7 @@
1
- require 'golr/key'
2
- require 'golr/rules'
3
-
4
1
  module Golr
5
2
  class Game
6
3
 
7
- attr_reader :grid, :columns, :rows
4
+ attr_reader :grid, :columns, :rows
8
5
 
9
6
  def initialize(columns, rows, living_cells = [])
10
7
  @columns = columns
@@ -15,15 +12,14 @@ module Golr
15
12
 
16
13
  def init_grid(living_cells = [])
17
14
  new_grid = {}
18
- Range.new(1, @columns).to_a.each do |x|
19
- Range.new(1, @rows).to_a.each do |y|
15
+ (1..@columns).map do |x|
16
+ (1..@rows).map do |y|
20
17
  key = Key.key(x, y)
21
18
  new_grid[key] = living_cells.include?(key) ? true : false
22
19
  end
23
20
  end
24
21
  new_grid
25
22
  end
26
-
27
23
 
28
24
  def evolve
29
25
  next_grid = init_grid
@@ -39,8 +35,8 @@ module Golr
39
35
  end
40
36
 
41
37
  def living_neighbors(key)
42
- living_neighbors = neighboring_keys(key).inject(0) do |result, _key|
43
- result += 1 if alive?(wrap_key_around_board_edges(_key))
38
+ living_neighbors = neighboring_keys(key).reduce(0) do |result, _key|
39
+ result += 1 if alive?(wrap_key_around_grid_edges(_key))
44
40
  result
45
41
  end
46
42
  end
@@ -48,15 +44,15 @@ module Golr
48
44
  def neighboring_keys(key)
49
45
  neighbor_keys = []
50
46
  x,y = Key.coordinates(key)
51
- ((x-1)..(x+1)).to_a.each do |_x|
52
- ((y-1)..(y+1)).to_a.each do |_y|
47
+ ((x-1)..(x+1)).map do |_x|
48
+ ((y-1)..(y+1)).map do |_y|
53
49
  neighbor_keys << Key.key(_x,_y) unless x == _x && y == _y
54
50
  end
55
51
  end
56
52
  neighbor_keys
57
53
  end
58
54
 
59
- def wrap_key_around_board_edges(key)
55
+ def wrap_key_around_grid_edges(key)
60
56
  x,y = Key.coordinates(key)
61
57
  Key.key(wrap_coordinate(x, @columns), wrap_coordinate(y, @rows))
62
58
  end
@@ -66,7 +62,7 @@ module Golr
66
62
  wrapped = wrapped > limit ? 1 : wrapped
67
63
  end
68
64
 
69
- private :init_grid, :living_neighbors, :neighboring_keys, :wrap_key_around_board_edges, :wrap_coordinate
65
+ private :init_grid, :living_neighbors, :neighboring_keys, :wrap_key_around_grid_edges, :wrap_coordinate
70
66
 
71
67
  end
72
68
  end
@@ -1,5 +1,4 @@
1
1
  module Golr
2
-
3
2
  class GamePrinter
4
3
 
5
4
  def self.print(game, io = STDOUT)
@@ -8,24 +7,20 @@ module Golr
8
7
  line_feed(io)
9
8
  end
10
9
 
11
-
12
10
  private
13
-
14
11
  def self.line_feed(io)
15
12
  printf(io, "\n")
16
13
  end
17
14
 
18
15
  def self.print_game_state(game, io)
19
- Range.new(1, game.rows).to_a.each do |y|
16
+ (1..game.rows).to_a.each do |y|
20
17
  printf(io, '|')
21
- Range.new(1, game.columns).to_a.each do |x|
18
+ (1..game.columns).to_a.each do |x|
22
19
  printf(io, game.grid[Key.key(x,y)] == true ? 'o' : ' ')
23
20
  end
24
21
  printf(io, '|')
25
22
  line_feed(io)
26
23
  end
27
24
  end
28
-
29
25
  end
30
-
31
26
  end
@@ -1,3 +1,3 @@
1
1
  module Golr
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: golr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-15 00:00:00.000000000 Z
12
+ date: 2013-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - ~>
36
36
  - !ruby/object:Gem::Version
37
- version: 1.2.3
37
+ version: 1.3.1
38
38
  type: :development
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
- version: 1.2.3
45
+ version: 1.3.1
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: simplecov
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -68,11 +68,11 @@ executables:
68
68
  extensions: []
69
69
  extra_rdoc_files: []
70
70
  files:
71
- - lib/golr/game.rb
72
- - lib/golr/game_printer.rb
73
- - lib/golr/game_reader.rb
74
71
  - lib/golr/key.rb
72
+ - lib/golr/game_printer.rb
75
73
  - lib/golr/rules.rb
74
+ - lib/golr/game.rb
75
+ - lib/golr/game_reader.rb
76
76
  - lib/golr/version.rb
77
77
  - lib/golr.rb
78
78
  - bin/golr