# A = Rock # B = Paper # C = Scissors # X = Rock 1 points # Y = Paper 2 points # Z = Scissors 3 points # Loss 0 points # Draw 3 points # Win 6 points $scoring = @{ # rock X = 1 # paper Y = 2 # scissors Z = 3 loss = 0 draw = 3 win = 6 } $shapes = @{ # rock A = @{ # rock X = $scoring.draw # paper Y = $scoring.win # scissors Z = $scoring.loss } # paper B = @{ # rock X = $scoring.loss # paper Y = $scoring.draw # scissors Z = $scoring.win } # scissors C = @{ # rock X = $scoring.win # paper Y = $scoring.loss # scissors Z = $scoring.draw } } $points = 0 Get-Content input | ForEach-Object { $shape,$response = $_.Split(' ') $points += $scoring.$response $points += $shapes.$shape.$response } $points