More slight streamlining
This commit is contained in:
@ -7,19 +7,19 @@ import (
|
||||
)
|
||||
|
||||
type Day02 struct {
|
||||
program []int64
|
||||
program utilities.IntcodeProgram
|
||||
}
|
||||
|
||||
func (d *Day02) Parse() {
|
||||
d.program = utilities.ParseIntcodeProgram(utilities.GetStringContents("02p"))
|
||||
d.program = utilities.LoadIntcodeProgram("02p")
|
||||
}
|
||||
|
||||
func (d Day02) Num() int {
|
||||
return 2
|
||||
}
|
||||
|
||||
func (d *Day02) getProgramWithParams(param1, param2 int64) []int64 {
|
||||
program := make([]int64, len(d.program))
|
||||
func (d *Day02) getProgramWithParams(param1, param2 int64) utilities.IntcodeProgram {
|
||||
program := make(utilities.IntcodeProgram, len(d.program))
|
||||
copy(program, d.program)
|
||||
program[1] = param1
|
||||
program[2] = param2
|
||||
|
@ -11,9 +11,11 @@ const (
|
||||
opEnd = 99
|
||||
)
|
||||
|
||||
func ParseIntcodeProgram(programStr string) []int64 {
|
||||
type IntcodeProgram []int64
|
||||
|
||||
func ParseIntcodeProgram(programStr string) IntcodeProgram {
|
||||
nums := strings.Split(programStr, ",")
|
||||
program := make([]int64, len(nums))
|
||||
program := make(IntcodeProgram, len(nums))
|
||||
for idx, num := range nums {
|
||||
iNum, err := strconv.ParseInt(num, 10, 64)
|
||||
if err != nil {
|
||||
@ -25,7 +27,7 @@ func ParseIntcodeProgram(programStr string) []int64 {
|
||||
return program
|
||||
}
|
||||
|
||||
func RunIntcodeProgram(program []int64) {
|
||||
func RunIntcodeProgram(program IntcodeProgram) {
|
||||
for instructionPointer := 0; instructionPointer < len(program); {
|
||||
opcode := program[instructionPointer]
|
||||
switch opcode {
|
||||
|
@ -24,6 +24,11 @@ func getData(filename string, lineHandler func(line string)) {
|
||||
}
|
||||
}
|
||||
|
||||
func LoadIntcodeProgram(filename string) IntcodeProgram {
|
||||
programStr := GetStringContents(filename)
|
||||
return ParseIntcodeProgram(programStr)
|
||||
}
|
||||
|
||||
func GetStringContents(filename string) string {
|
||||
var retval string
|
||||
getData(filename, func(line string) {
|
||||
|
Reference in New Issue
Block a user