Skip to content

Commit

Permalink
clearer parameter parsing in Intcode
Browse files Browse the repository at this point in the history
  • Loading branch information
bradleymackey committed Sep 8, 2020
1 parent 3bdbd5c commit eeed443
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions Sources/AdventOfCode19/Models/Intcode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,15 @@ final class Intcode {
throw Exception.invalidOpcode(rawCodeNumber)
}
let rawParameterCodes = fullCode / 100
let desiredParameters = code.desiredParameters
let parameterModes = Instruction.Parameter.Mode.modesFrom(
rawValue: rawParameterCodes,
totalDesired: code.desiredParameters
totalDesired: desiredParameters
)
let offset = pointer + 1
var parameterValues = [Int]()
for i in offset..<(offset+code.desiredParameters) {
parameterValues.append(data[i]!)
for i in offset..<offset+desiredParameters {
parameterValues.append(data[i, default: 0])
}
let parameters = zip(parameterModes, parameterValues).map {
Instruction.Parameter(mode: $0, value: $1)
Expand Down

0 comments on commit eeed443

Please sign in to comment.