Module: PuzzleGenerator
- Defined in:
- lib/puzzle_generator/map.rb,
lib/puzzle_generator.rb,
lib/puzzle_generator/misc.rb,
lib/puzzle_generator/puzzle.rb,
lib/puzzle_generator/chained_map.rb,
lib/puzzle_generator/colored_map.rb
Overview
a = [[1,2],,[5,6]] [a, [1,2,3]].combos
> [[[1, 2], 1], [[1, 2], 2], [[1, 2], 3], [[3, 4], 1], [[3, 4], 2], [[3, 4], 3], [[5, 6], 1], [[5, 6], 2], [[5, 6], 3]]
Defined Under Namespace
Modules: DisplayMap, MapUtils
Classes: ChainedMap, ColoredMap, GenerationFailed, Map, Puzzle
Constant Summary
collapse
- LastTriedInfo =
{}
- DefaultOption =
{:width => 6, :height => 10, :level => 4, :colors => 4,
:invoke => 3, :invoke_max => 5, :timeout => 5}
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.debug ⇒ Object
15
|
# File 'lib/puzzle_generator/misc.rb', line 15
def debug; @debug || false; end
|
Class Method Details
.generate(timeout = 5, &generator) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/puzzle_generator.rb', line 19
def self.generate timeout = 5, &generator
timer = Timer.new(timeout).start
tried_times = 1
begin
result = generator.call
until result.result_map.kind_of? Array
tried_times += 1
result = generator.call
end
ensure
timer.stop
LastTriedInfo.merge! :tried_times => tried_times, :tried_duration => timer.total_time
end
result
end
|
.generate_chained_map(option = {}) ⇒ Object
12
|
# File 'lib/puzzle_generator.rb', line 12
def self.generate_chained_map option = {}; generate_klass ChainedMap, option; end
|
.generate_klass(klass, option = {}) ⇒ Object
13
14
15
16
|
# File 'lib/puzzle_generator.rb', line 13
def self.generate_klass klass, option = {}
option.reverse_merge! :timeout => 5
generate(option[:timeout]){ klass.new option }
end
|