Advertisement
simserver

oneCardGDL.kif

Sep 8th, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 3.83 KB | None | 0 0
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. ;;; OneCardGame
  3. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  4.  
  5. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ;; Roles
  7. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  8.  
  9. (role player1)
  10. (role player2)
  11.  
  12. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  13. ;; Initial State
  14. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  15.  
  16. ;starting player
  17. (init (control player1))
  18.  
  19. ;cards
  20. (init (card player1Card 7))
  21. (init (card player2Card 4))
  22. (init (card talonCard1 8))
  23. (init (card talonCard2 3))
  24.  
  25. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  26. ;; Legality
  27. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  28.  
  29. ;play handcard
  30. (<= (legal player1 (play player1Card))
  31.   (true (control player1))
  32. )
  33. (<= (legal player2 (play player2Card))
  34.   (true (control player2))
  35. )
  36. ;play talon
  37. (<= (legal ?Player (play talonCard1))
  38.     (true (control ?Player))
  39.     (not (true (card talonCard1 0)))
  40. )
  41. (<= (legal ?Player (play talonCard2))
  42.     (true (control ?Player))
  43.     (true (card talonCard1 0))
  44. )
  45.  
  46. ;switch lead
  47. (<= (legal player1 noop)
  48.   (true (control player2))
  49. )
  50. (<= (legal player2 noop)
  51.   (true (control player1))
  52. )
  53.  
  54. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  55. ;; Update Rules
  56. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  57.  
  58. ;played card becomes 0
  59. (<= (next (card ?Position 0))
  60.   (does ?Player (play ?Position))
  61. )
  62.  
  63. ;player1: every card stays the same except trickposition1 becomes played card
  64. (<= (next (card ?Position ?Value))
  65.   (does player1 (play ?PlayedCard))
  66.   (true (card ?Position ?Value))
  67.   (distinct ?Position ?PlayedCard)
  68.   (distinct ?Position trick1Card)
  69. )
  70. (<= (next (card trick1Card ?Value))
  71.   (does player1 (play ?PlayedCard))
  72.   (true (card ?PlayedCard ?Value))
  73. )
  74.  
  75. ;player2: every card stays the same except trickposition2 becomes played card
  76. (<= (next (card ?Position ?Value))
  77.   (does player2 (play ?PlayedCard))
  78.   (true (card ?Position ?Value))
  79.   (distinct ?Position ?PlayedCard)
  80.   (distinct ?Position trick2Card)
  81. )
  82. (<= (next (card trick2Card ?Value))
  83.   (does player2 (play ?PlayedCard))
  84.   (true (card ?PlayedCard ?Value))
  85. )
  86.  
  87. ;whos turn
  88. (<= (next (control player2))
  89.   (true (control player1))
  90. )
  91. (<= (next (control end))
  92.   (true (control player2))
  93. )
  94.  
  95. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  96. ;; Supporting Concepts
  97. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  98.  
  99. (succ 0 1)
  100. (succ 1 2)
  101. (succ 2 3)
  102. (succ 3 4)
  103. (succ 4 5)
  104. (succ 5 6)
  105. (succ 6 7)
  106. (succ 7 8)
  107. (succ 8 9)
  108. (succ 9 10)
  109.  
  110. (<= (greaterthan ?X ?Y)
  111.   (succ ?Y ?X)
  112. )
  113. (<= (greaterthan ?X ?Y)
  114.   (succ ?Z ?X)
  115.   (greaterthan ?Z ?Y)
  116. )
  117.  
  118. (<= (higherCard player1)
  119.   (greaterthan ?Player1CardValue ?Player2CardValue)
  120.   (true (card trick1Card ?Player1CardValue))
  121.   (true (card trick2Card ?Player2CardValue))
  122. )
  123. (<= (higherCard player2)
  124.   (greaterthan ?Player2CardValue ?Player1CardValue)
  125.   (true (card trick1Card ?Player1CardValue))
  126.   (true (card trick2Card ?Player2CardValue))
  127. )
  128.  
  129. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  130. ;; Termination
  131. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  132.  
  133. (<= terminal
  134.   (true (control end))
  135. )
  136.  
  137. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  138. ;; Goals
  139. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  140.  
  141. (<= (goal ?Player 100)
  142.   (higherCard ?Player)
  143. )
  144. (<= (goal ?Player 0)
  145.   (higherCard ?Opponent)
  146.   (role ?Player)
  147.   (distinct ?Player ?Opponent)
  148. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement