39 tak := <-results |
39 tak := <-results |
40 return tak |
40 return tak |
41 } |
41 } |
42 |
42 |
43 func main() { |
43 func main() { |
44 var game string |
|
45 |
|
46 vbl := flag.Uint([]string{"-vl"}, 0, "Verbosity Level") |
44 vbl := flag.Uint([]string{"-vl"}, 0, "Verbosity Level") |
47 simple := flag.Bool([]string{"-simple"}, false, "Only look for trivial solutions") |
45 simple := flag.Bool([]string{"-simple"}, false, "Only look for trivial solutions") |
48 out := flag.Bool([]string{"-out"}, false, "Send solution string to output") |
46 out := flag.Bool([]string{"-out"}, false, "Send solution string to output") |
49 flag.StringVar(&game, []string{"-game"}, "", "Load game string") |
47 board := flag.String([]string{"-board"}, "", "Load board string") |
50 schrodLvl := flag.Uint([]string{"-x-sl"}, 0, "[Advanced] Schrödinger level") |
48 schrodLvl := flag.Uint([]string{"-x-sl"}, 0, "[Advanced] Schrödinger level") |
51 resolveTimeout := flag.Duration([]string{"-x-timeout"}, 0, "[Advanced] Resolution timeout") |
49 resolveTimeout := flag.Duration([]string{"-x-timeout"}, 0, "[Advanced] Resolution timeout") |
52 buildBoardTimeout := flag.Duration([]string{"-x-build-timeout"}, 5*time.Minute, "[Advanced] Build timeout per resolution") |
50 buildBoardTimeout := flag.Duration([]string{"-x-build-timeout"}, 5*time.Minute, "[Advanced] Build timeout per resolution") |
53 reduceBoardTimeout := flag.Duration([]string{"-x-reduce-timeout"}, 20*time.Minute, "[Advanced] Reduction timeout") |
51 reduceBoardTimeout := flag.Duration([]string{"-x-reduce-timeout"}, 20*time.Minute, "[Advanced] Reduction timeout") |
54 buildMinRatio := flag.Uint([]string{"-x-new-min-ratio"}, 55, "[Advanced] Build empty cell ratio (40-60)") |
52 buildMinRatio := flag.Uint([]string{"-x-new-min-ratio"}, 55, "[Advanced] Build empty cell ratio (40-60)") |
65 takuzu.SetVerbosityLevel(verbosity) |
63 takuzu.SetVerbosityLevel(verbosity) |
66 takuzu.SetSchrodingerLevel(*schrodLvl) |
64 takuzu.SetSchrodingerLevel(*schrodLvl) |
67 |
65 |
68 var tak *takuzu.Takuzu |
66 var tak *takuzu.Takuzu |
69 |
67 |
70 if game != "" { |
68 if *board != "" { |
71 var err error |
69 var err error |
72 tak, err = takuzu.NewFromString(game) |
70 tak, err = takuzu.NewFromString(*board) |
73 if tak == nil || err != nil { |
71 if tak == nil || err != nil { |
74 fmt.Fprintln(os.Stderr, "Error:", err) |
72 fmt.Fprintln(os.Stderr, "Error:", err) |
75 tak = nil |
73 tak = nil |
76 } |
74 } |
77 } |
75 } |