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