Python 2, 97 95 75 72 71 70 69 64 55 54 52 51 5050 48 bytes
lambda a,b:(60>a+b>b-1<a>b61<~a<a>b/22*b-3)*~(19<b-(b<30)>a)
Takes input as pre-ordered a,b
.
Returns -2
, -1
, 0
for ended
, in play
, invalid
.
-1 byte, thanks to Kevin Cruijssen
Left part (b-61<~a<a>b/22*b-3
) is a validity-check, and right part (19<b-(b<30)>a
) is a check for game ended.