From 74510f9723b7a4e21d90b34886c3415562898bcc Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Fri, 13 Dec 2019 08:51:59 -0600 Subject: [PATCH] A little cleanup --- 2019/day13/main.go | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/2019/day13/main.go b/2019/day13/main.go index bf4c0d2..f9f175c 100644 --- a/2019/day13/main.go +++ b/2019/day13/main.go @@ -15,7 +15,7 @@ import ( var auto bool func main() { - progFileName := "input" + progFileName := "finishinput" if len(os.Args) > 1 && os.Args[1] == "-auto" { auto = true @@ -26,6 +26,7 @@ func main() { func play(prog []int) { p := intcode.NewProgram(prog) + // For part 1, comment out this line p.SetProgramValueAt(0, 2) //p.EnableDebug() maxX, maxY := 0, 0 @@ -70,24 +71,26 @@ func play(prog []int) { for !gotInput { fmt.Print("Input (vimlike): ") reader := bufio.NewReader(os.Stdin) - char, _, err := reader.ReadRune() + inp, err := reader.ReadString('\n') if err != nil { panic(err) } - switch char { - case 'h': + inp = strings.TrimSpace(inp) + switch inp { + case "h": p.Input(-1) gotInput = true - case 'l': + case "l": p.Input(1) gotInput = true - case 'j', 'k': + case "j", "k": p.Input(0) gotInput = true } } } } + //lookForScore(p, score) switch p.State() { case intcode.RET_ERR: panic(p.Error()) @@ -98,13 +101,27 @@ func play(prog []int) { }() ret := p.Run() if ret == intcode.RET_DONE { - fmt.Println("DONE") + fmt.Println("DONE:", score) } else if ret == intcode.RET_ERR { fmt.Println("ERROR") } //part1(screen) } +func lookForScore(p *intcode.Program, score int) { + var res []int + code := p.GetCode() + for k, v := range code { + if v == score { + res = append(res, k) + } + } + if len(res) == 1 { + fmt.Println("Score Position:", res[0]) + os.Exit(0) + } +} + func part1(s map[string]int) { var cnt int for _, v := range s { @@ -116,7 +133,7 @@ func part1(s map[string]int) { } func printScreen(screen map[string]int, maxX, maxY, score int) { - fmt.Print(helpers.CLEAR_SCREEN) + //fmt.Print(helpers.CLEAR_SCREEN) fmt.Println("Score:", score) for y := 0; y <= maxY; y++ { for x := 0; x <= maxX; x++ {