day2: cleaner approach

master
Clyne 2 years ago
parent e20eb4c7a8
commit 01407692c1

@ -0,0 +1,35 @@
1 constant rock
2 constant paper
3 constant scissors
: is-win ( them us -- yes ) - dup <0 swap 2 = or ;
: get-score ( them us -- score )
2dup is-win if 6 + else
2dup = if 3 +
then then nip ;
: get-loser ( them -- us ) 2 - 3 mod 1+ ;
: get-winner ( them -- us ) 3 mod 1+ ;
: A rock ;
: B paper ;
: C scissors ;
: X rock get-score + ;
: Y paper get-score + ;
: Z scissors get-score + ;
0
include input
. cr
: X dup get-loser get-score + ;
: Y dup get-score + ;
: Z dup get-winner get-score + ;
0
include input
. cr
bye
Loading…
Cancel
Save