Guest User

Untitled

a guest
May 24th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. xquery version "1.0-ml";
  2.  
  3. declare variable $deck-counter := map:map();
  4. declare variable $deck := map:map();
  5.  
  6. declare function local:get-card($num) {
  7. let $card := map:get($deck-counter, xs:string($num))
  8. return
  9. if (fn:empty($card)) then
  10. local:get-card(xdmp:random(52))
  11. else ($card, map:delete($deck-counter, xs:string($card)))
  12. };
  13.  
  14. let $suit := ("diamonds", "spades", "clubs", "hearts") let $counter := 0
  15.  
  16. let $count :=
  17. for $suit-count at $p in (1 to 4)
  18. for $card-num in (1 to 13)
  19. let $_ := xdmp:set($counter, ($counter + 1)) let $card :=
  20. if($card-num eq 1) then
  21. fn:concat("ace of ", $suit[$p])
  22. else if ($card-num eq 11) then
  23. fn:concat("jack of ", $suit[$p])
  24. else if ($card-num eq 12) then
  25. fn:concat("queen of ", $suit[$p])
  26. else if ($card-num eq 13) then
  27. fn:concat("king of ", $suit[$p])
  28. else fn:concat($card-num, " of ", $suit[$p])
  29. return map:put($deck, xs:string($counter), $card)
  30.  
  31. let $_load_deck :=
  32. for $i in (1 to 52)
  33. return map:put($deck-counter, xs:string($i), $i)
  34.  
  35. let $cards-to-deal := 2
  36. let $max-players := 3
  37.  
  38. for $card in (1 to $cards-to-deal)
  39. for $player in (1 to $max-players)
  40. let $card :=
  41. local:get-card(xdmp:random(52))
  42. return (fn:concat("player: ", $player, " card: ", map:get($deck, xs:string($card))))
Add Comment
Please, Sign In to add comment