02.fs (636B) - raw
1 variable score 2 0 constant rock 3 1 constant paper 4 2 constant scissors 5 6 : points-of 1+ ; 7 : foil ( u1 -- u2 ) 1+ 3 mod ; 8 : victim ( u1 -- u2 ) foil foil ; 9 : game-score ( u1 u2 -- u3 ) 10 2dup swap foil = if 2drop 6 exit then 11 2dup swap victim = if 2drop 0 exit then 12 2drop 3 ; 13 : add-score ( u1 u2 -- ) dup>r game-score r> points-of + score +! ; 14 15 \ data is code 16 : A rock ; 17 : B paper ; 18 : C scissors ; 19 : X rock add-score ; 20 : Y paper add-score ; 21 : Z scissors add-score ; 22 include input.txt 23 score @ u. cr \ part 1 24 25 0 score ! 26 : X dup victim add-score ; 27 : Y dup add-score ; 28 : Z dup foil add-score ; 29 include input.txt 30 score @ u. cr \ part 2 31 bye