You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
532 B
Forth

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