gotak/gotak.go
changeset 1 6a396d691a7d
parent 0 00371339bbcc
child 5 733df0275d78
equal deleted inserted replaced
0:00371339bbcc 1:6a396d691a7d
    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 	}