trans =: {{(0,~2+i.17){~'23456789TJQKAHDSC'i.y}} split =: {{<"1 y$~(x%~#y),x}} read =: {{2 split 5 split 2 split (#~0~:]) trans fread y}} score =: monad define 'values suits' =. |:>>y order =. \:values suits =. order{suits values =. order{values 'counts pairvals' =. |:\:~{{(#y),{.y}}/.~values usuits =. ~.suits NB. unique suits consecs =. 5<&|.\2+i.13 if. (1=#usuits)*.values-:10 11 12 13 14 do. type =. 10 NB. Royal flush elseif. (1=#usuits)*.(y}} problem54 =: +/0=winner"0 read 'p054_poker.txt'