Umm...It possible I messed up some logic in here somewhere, but this *seems* right to me atm. Just based on the idea of the win pattern being circular.

Code:
alias win {
  var %win paper,scissors,rock
  if (%PRS_u == $gettok(%win, $iif($calc($findtok(%win, %PRS_b, 1, 44) - 1) == 0,3,$v1),44)) { .msg # win }
  if (%PRS_u == $gettok(%win, $iif($calc($findtok(%win, %PRS_b, 1, 44) + 1) == 4,1,$v1),44)) { .msg # lose }
  if (%PRS_u == %PRS_b)  { .msg # tie }
}