golr 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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