amaze 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63c062699220d0b8d22106bb8af774b4774388cc
4
- data.tar.gz: efcb6b4be887d1e3e5e594d01a32be10f5cbf419
3
+ metadata.gz: 1928d740f79d0128a57e37282ee4207f9fe83ccd
4
+ data.tar.gz: 72c00a9d929c8cddd7c6cb9dca046d8677674c46
5
5
  SHA512:
6
- metadata.gz: 29d670232418e604d986e226ea304be3a97c4afc4139362048ccd9ab61e9fd8cf7a908d4ed5a7aa8e8887bd3a870e2e8fc3ca1d032f98eb805d35f2d164265eb
7
- data.tar.gz: 6a221add8de5625e38ee5001ae59dec618367903db8a0a68be30bd733b1a00bdf6e51ade1cc22ea00ef79be62c75681fcbd12df64f37e45ab893b751bae70a38
6
+ metadata.gz: ae4372d7842667d9310cd332f27d85e065da1646d2e1389460b645259264366df46f5c343c27082a858994ad5bba5ca38be1165e7bf9a5ac634c505ed22d3345
7
+ data.tar.gz: df6db3f5788b76475458400cdacb8698d25df2f2ac80ebfb030c88780608a6f3daa36de61d7d6c390dd516ca43c5450e7552d63f6d1cd85cd0cd3d9d676dce16
@@ -0,0 +1,20 @@
1
+
2
+ # Changelog
3
+
4
+ ## v 0.2.1 / 2016-05-23
5
+ - Fix end point position when path ends in the center of a circular image maze
6
+ - Add required ruby version in gemspec
7
+ - Rename visualization modes, option `--visualize [run|autopause|pause|step]`
8
+
9
+
10
+ ## v 0.2.0 / 2016-05-21
11
+ First public release. Amaze is both a ruby library and a command line tool to generate mazes.
12
+
13
+ Features include:
14
+
15
+ - Render ortho, sigma, delta, upsilon and circular mazes
16
+ - Output ASCII to the terminal or generate PNG images
17
+ - Visualize distances with colored cells
18
+ - Show solution
19
+ - Show longest path through the maze
20
+ - Visualize algorithm on work (only ASCII)
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Gem Version](https://badge.fury.io/rb/amaze.svg)](https://badge.fury.io/rb/amaze)
2
+
1
3
  # Amaze
2
4
 
3
5
  Amaze is both a ruby library and a command line tool to generate mazes.
@@ -15,11 +17,18 @@ On **OS X** install imagemagick with brew
15
17
 
16
18
  $ brew install imagemagick
17
19
 
20
+ On **Ubuntu**
21
+
22
+ $ sudo apt-get install libmagickwand-dev
23
+
18
24
  Then run
19
25
 
20
26
  $ gem install amaze
21
27
 
22
28
 
29
+ Amaze has been tested on OS X 10.11.x and Ubuntu 16.04 with ruby 2.3.x.
30
+
31
+
23
32
  ## Usage
24
33
 
25
34
  Execute `amaze --help` for a short description of all supported options.
@@ -85,6 +94,8 @@ How about watching the algorithm doing its work?
85
94
 
86
95
  $ amaze --visualize
87
96
 
97
+ ![Watching the alogorithm generating a maze](support/images/algorithm_animation.gif?raw=true "Visualize Algorithm")
98
+
88
99
  You can choose between different algorithm (try Hunt and Kill next)
89
100
 
90
101
  $ amaze --visualize --algorithm hk
@@ -97,7 +108,15 @@ Finally you can render your maze as PNG
97
108
  Random seed: 72618483828743227022428199116847991100
98
109
  Maze 'maze.png' saved.
99
110
 
100
- Amaze has a lot more options to play with. Have fun and create beautiful piece of [algorithmic art](https://en.wikipedia.org/wiki/Algorithmic_art).
111
+ ... and a last example
112
+
113
+ $ amaze --type ortho -g 12 --format image --distances --longest
114
+
115
+ will render something like this:
116
+
117
+ ![Image of an ortho maze with color coded distances and longest path](support/images/maze_ortho_distances_longest.png?raw=true "Beautiful Maze")
118
+
119
+ Amaze has a lot more options to play with. Have fun and create beautiful pieces of [algorithmic art](https://en.wikipedia.org/wiki/Algorithmic_art).
101
120
 
102
121
 
103
122
  ## Contributing
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
- # require "rspec/core/rake_task"
3
- #
4
- # RSpec::Core::RakeTask.new(:spec)
5
- #
6
- # task :default => :spec
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
+ spec.required_ruby_version = '>= 2.0.0'
23
+
22
24
  spec.add_development_dependency "bundler", "~> 1.11"
23
25
  spec.add_development_dependency "rake", "~> 10.0"
24
26
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -85,7 +85,8 @@ class Amaze::Formatter::Image::Polar < Amaze::Formatter::Image
85
85
  # center of cell
86
86
  x1, y1 = polar2cartesian(radius, theta)
87
87
  # center of inward cell, but adjusted to the same angle of the current cell
88
- x2, y2 = polar2cartesian(radius - cell_width, theta)
88
+ radius_inward, _ = center_coord cell.inward, :radian
89
+ x2, y2 = polar2cartesian(radius_inward, theta)
89
90
  canvas.line x1, y1, x2, y2
90
91
  end
91
92
 
@@ -109,7 +110,10 @@ class Amaze::Formatter::Image::Polar < Amaze::Formatter::Image
109
110
  canvas.fill path_color
110
111
  canvas.stroke 'none'
111
112
  [path_start, path_finish].compact.each do |cell|
112
- x, y = polar2cartesian(*center_coord(cell, :radian))
113
+ radius, theta = center_coord cell, :radian
114
+ # adjust the angle for cell(0,0)
115
+ _, theta = center_coord path_outward(cell).first, :radian if cell.row.zero?
116
+ x, y = polar2cartesian(radius, theta)
113
117
  canvas.ellipse x, y, path_width*2, path_width*2, 0, 360
114
118
  end
115
119
  end
@@ -47,7 +47,7 @@ class Amaze::Script
47
47
  o.on('-S', '--seed SEED', Integer, 'Set random seed') do |seed|
48
48
  options[:seed] = seed
49
49
  end
50
- visualization_modes = [:run, :runsegment, :segment, :step]
50
+ visualization_modes = %i( run autopause pause step )
51
51
  o.on('-v', '--visualize [MODE]', visualization_modes, 'Visualize the progress of the algorithm', "One of #{visualization_modes.join(', ')}") do |mode|
52
52
  options[:visualize] = mode || :run
53
53
  end
@@ -146,10 +146,10 @@ class Amaze::Script
146
146
 
147
147
  puts stat.info if stat.info
148
148
  sleep algorithm.speed
149
- sleep 1 if options[:visualize] == :runsegment && stat.pause?
149
+ sleep 1 if options[:visualize] == :autopause && stat.pause?
150
150
 
151
151
  # wait for keystroke ?
152
- if (options[:visualize] == :segment && stat.pause? || options[:visualize] == :step)
152
+ if (options[:visualize] == :pause && stat.pause? || options[:visualize] == :step)
153
153
  case read_char
154
154
  when "\e"
155
155
  break
@@ -1,3 +1,3 @@
1
1
  module Amaze
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amaze
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Marchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-05-21 00:00:00.000000000 Z
11
+ date: 2016-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -120,6 +120,7 @@ files:
120
120
  - ".gitignore"
121
121
  - ".rspec"
122
122
  - ".travis.yml"
123
+ - CHANGELOG.md
123
124
  - Gemfile
124
125
  - LICENSE.txt
125
126
  - README.md
@@ -173,6 +174,8 @@ files:
173
174
  - lib/amaze/shape/triangle.rb
174
175
  - lib/amaze/version.rb
175
176
  - support/characters.txt
177
+ - support/images/algorithm_animation.gif
178
+ - support/images/maze_ortho_distances_longest.png
176
179
  - support/mask/mask1.txt
177
180
  - support/mask/mask2.txt
178
181
  - support/mask/mask3.txt
@@ -188,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
188
191
  requirements:
189
192
  - - ">="
190
193
  - !ruby/object:Gem::Version
191
- version: '0'
194
+ version: 2.0.0
192
195
  required_rubygems_version: !ruby/object:Gem::Requirement
193
196
  requirements:
194
197
  - - ">="