Day 14 & 15 progress

This commit is contained in:
2019-12-15 08:57:44 -06:00
parent 74510f9723
commit a3cee63862
9 changed files with 336 additions and 2 deletions

80
2019/day15/main.go Normal file
View File

@@ -0,0 +1,80 @@
package main
import (
"bufio"
"fmt"
"os"
"strings"
"time"
intcode "git.bullercodeworks.com/brian/adventofcode/2019/intcode-processor"
)
var auto bool
func main() {
progFileName := "input"
if len(os.Args) > 1 && os.Args[1] == "-auto" {
auto = true
}
prog := intcode.ReadIntCodeFile(progFileName)
play(prog)
}
func play(prog []int) {
p := intcode.NewProgram(prog)
go func() {
for {
for !p.NeedsInput() {
time.Sleep(1)
}
if auto {
} else {
var gotInput bool
for !gotInput {
fmt.Print("Input (vimlike): ")
reader := bufio.NewReader(os.Stdin)
inp, err := reader.ReadString('\n')
if err != nil {
panic(err)
}
inp = strings.TrimSpace(inp)
switch inp {
case "h":
p.Input(3)
gotInput = true
case "j":
p.Input(2)
gotInput = true
case "k":
p.Input(1)
gotInput = true
case "l":
p.Input(4)
gotInput = true
}
}
}
for !p.NeedsOutput() {
time.Sleep(1)
}
moveRes := p.Output()
switch moveRes {
case 0: // Hit a wall
fmt.Println("WALL")
case 1: // Moved
fmt.Println("OK")
case 2: // Moved and done
fmt.Println("DONE")
}
}
}()
ret := p.Run()
if ret == intcode.RET_DONE {
} else if ret == intcode.RET_ERR {
fmt.Println("ERROR")
fmt.Println(p.Error())
}
}