sudokus 1.4.1
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.
- data/.gitignore +5 -0
- data/Gemfile +5 -0
- data/README.rdoc +23 -0
- data/Rakefile +1 -0
- data/bin/sudokus +64 -0
- data/lib/sudokus.rb +1 -0
- data/lib/sudokus/version.rb +3 -0
- data/sudokus.gemspec +24 -0
- metadata +65 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
= Sudokus
|
2
|
+
|
3
|
+
解数独。依赖自Martin-Louis Bright的sudokusolver库。
|
4
|
+
|
5
|
+
sudoku solver. depends sudokusolver by Martin-Louis Bright.
|
6
|
+
|
7
|
+
== Playing
|
8
|
+
|
9
|
+
gem install sudokus
|
10
|
+
|
11
|
+
sudokus ..9748...7.........2.1.9.....7...24..64.1.59..98...3.....8.3.2.........6...2759..
|
12
|
+
|
13
|
+
== Patch NoMethodError in sudokusolver
|
14
|
+
|
15
|
+
sudokus patch /usr/lib/ruby/gems/1.9.1/gems/sudokusolver-1.4/lib/sudokusolver.rb
|
16
|
+
|
17
|
+
== Find the library file of sudokusolver
|
18
|
+
|
19
|
+
sudokus which
|
20
|
+
|
21
|
+
== Authors
|
22
|
+
|
23
|
+
* {Takafan}[http://hululuu.com]
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/sudokus
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
lib_path = File.expand_path('../../lib', __FILE__)
|
4
|
+
$:.unshift(lib_path)
|
5
|
+
require 'sudokus'
|
6
|
+
require 'sudokusolver'
|
7
|
+
|
8
|
+
begin
|
9
|
+
if ARGV[0] and !['-h','--help'].include? ARGV[0]
|
10
|
+
case ARGV[0]
|
11
|
+
when '--version', '-v' then raise Sudokus::VERSION
|
12
|
+
when 'which' then system('gem which sudokusolver')
|
13
|
+
when 'patch' then
|
14
|
+
if ARGV[1] and File.exists?(ARGV[1])
|
15
|
+
File.open(ARGV[1], 'r') do |f|
|
16
|
+
buff = f.read
|
17
|
+
buff.gsub!('cols.each { |c| @unitlist.push(cross(rows, c)) }', '@cols.each { |c| @unitlist.push(cross(@rows, [c])) }')
|
18
|
+
buff.gsub!('rows.each { |r| @unitlist.push(cross(r, cols)) }', '@rows.each { |r| @unitlist.push(cross([r], @cols)) }')
|
19
|
+
File.open(ARGV[1], 'w') do |f2|
|
20
|
+
f2.write(buff)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
puts 'patched.'
|
24
|
+
else
|
25
|
+
raise %q{ unknown path of sudokusolver.rb
|
26
|
+
command `sudokus patch <path>` to patch
|
27
|
+
command `sudokus which` to get the sudokusolver path and paste in <path>. }
|
28
|
+
end
|
29
|
+
else
|
30
|
+
s = SudokuSolver.new
|
31
|
+
s.print_grid(s.search(s.parse_grid(ARGV[0])))
|
32
|
+
end
|
33
|
+
else
|
34
|
+
raise %q{
|
35
|
+
Usage:
|
36
|
+
sudokus -v/--version
|
37
|
+
sudokus -h/--help
|
38
|
+
|
39
|
+
sudokus NUMBER_STRING #Solve NUMBER_STRING
|
40
|
+
|
41
|
+
[example]
|
42
|
+
sudokus ..9748...7.........2.1.9.....7...24..64.1.59..98...3.....8.3.2.........6...2759..
|
43
|
+
|
44
|
+
|
45
|
+
sudokus patch SUDOKUSOLVER_PATH #Patch (NoMethodError) in sudokusolver
|
46
|
+
|
47
|
+
[example]
|
48
|
+
sudokus patch /usr/lib/ruby/gems/1.9.1/gems/sudokusolver-1.4/lib/sudokusolver.rb
|
49
|
+
|
50
|
+
|
51
|
+
sudokus which #Find the library file of sudokusolver
|
52
|
+
|
53
|
+
}
|
54
|
+
end
|
55
|
+
rescue NoMethodError => e
|
56
|
+
print "#{e.class}: "
|
57
|
+
puts "#{e.message}"
|
58
|
+
puts 'command `sudokus patch SUDOKUSOLVER_PATH` to fix it.'
|
59
|
+
exit 1
|
60
|
+
rescue Exception => e
|
61
|
+
print "#{e.class}: " unless e.class == RuntimeError
|
62
|
+
puts "#{e.message}"
|
63
|
+
exit 1
|
64
|
+
end
|
data/lib/sudokus.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "sudokus/version"
|
data/sudokus.gemspec
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "sudokus/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "sudokus"
|
7
|
+
s.version = Sudokus::VERSION
|
8
|
+
s.authors = ["takafan"]
|
9
|
+
s.email = ["takafan@163.com"]
|
10
|
+
s.homepage = "http://github.com/takafan/sudokus"
|
11
|
+
s.summary = %q{Sudokus}
|
12
|
+
s.description = %q{sudoku solver. depends sudokusolver by Martin-Louis Bright.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "sudokus"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
s.add_runtime_dependency "sudokusolver", "<= 1.4"
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sudokus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.4.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- takafan
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-09-08 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: sudokusolver
|
16
|
+
requirement: &9392724 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - <=
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.4'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *9392724
|
25
|
+
description: sudoku solver. depends sudokusolver by Martin-Louis Bright.
|
26
|
+
email:
|
27
|
+
- takafan@163.com
|
28
|
+
executables:
|
29
|
+
- sudokus
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- .gitignore
|
34
|
+
- Gemfile
|
35
|
+
- README.rdoc
|
36
|
+
- Rakefile
|
37
|
+
- bin/sudokus
|
38
|
+
- lib/sudokus.rb
|
39
|
+
- lib/sudokus/version.rb
|
40
|
+
- sudokus.gemspec
|
41
|
+
homepage: http://github.com/takafan/sudokus
|
42
|
+
licenses: []
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options: []
|
45
|
+
require_paths:
|
46
|
+
- lib
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
requirements: []
|
60
|
+
rubyforge_project: sudokus
|
61
|
+
rubygems_version: 1.8.10
|
62
|
+
signing_key:
|
63
|
+
specification_version: 3
|
64
|
+
summary: Sudokus
|
65
|
+
test_files: []
|