Guest User

Untitled

a guest
Apr 22nd, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. import LinkedList in {
  2.  
  3. contract makeGameBoard(return) {
  4. new players in {
  5.  
  6. players!([]) |
  7.  
  8. contract registerPlayer(endorse) {
  9. new friends, getFriends in {
  10.  
  11. friends!([]) |
  12.  
  13. contract endorse(@subject, @level, return) {
  14. for (oldFriends <- friends) {
  15. LinkedList!("prepend", [[subject, level], *oldFriends], *friends)
  16. }
  17. } |
  18.  
  19. contract getFriends(@level, return) {
  20. new filter in {
  21. contract filter(@friend, @acc, return) = {
  22. match friend {
  23. [s, l] => {
  24. match l == level {
  25. true => {
  26. LinkedList!("prepend", [s, acc], return)
  27. }
  28. _ => { return!(acc) }
  29. }
  30. }
  31. _ => { return!(acc) }
  32. }
  33. } |
  34. for (f <- friends) {
  35. LinkedList!("fold", [*f, [], *filter], return) |
  36. friends!(f)
  37. }
  38. }
  39. } |
  40.  
  41. for (oldPlayers <- players) {
  42. LinkedList!("prepend", [*getFriends, *oldPlayers], *players)
  43. }
  44.  
  45. }
  46. } |
  47.  
  48. contract getPlayers(return) {
  49. new gather in {
  50. contract gather(@player, @acc, return = {
  51. LinkedList!("prepend", [player, acc], return)
  52. } |
  53. for (p <- players) {
  54. LinkedList!("fold", [*p, [], *gather], return)
  55. players!(p)
  56. }
  57. }
  58. }
  59.  
  60. contract getCerts(seed, level, return) {
  61. // ouch.
  62. }
  63. }
  64. }
  65. }
Add Comment
Please, Sign In to add comment