Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; OneCardGame
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Roles
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (role player1)
- (role player2)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Initial State
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;starting player
- (init (control player1))
- ;cards
- (init (card player1Card 7))
- (init (card player2Card 4))
- (init (card talonCard1 8))
- (init (card talonCard2 3))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Legality
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;play handcard
- (<= (legal player1 (play player1Card))
- (true (control player1))
- )
- (<= (legal player2 (play player2Card))
- (true (control player2))
- )
- ;play talon
- (<= (legal ?Player (play talonCard1))
- (true (control ?Player))
- (not (true (card talonCard1 0)))
- )
- (<= (legal ?Player (play talonCard2))
- (true (control ?Player))
- (true (card talonCard1 0))
- )
- ;switch lead
- (<= (legal player1 noop)
- (true (control player2))
- )
- (<= (legal player2 noop)
- (true (control player1))
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Update Rules
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;played card becomes 0
- (<= (next (card ?Position 0))
- (does ?Player (play ?Position))
- )
- ;player1: every card stays the same except trickposition1 becomes played card
- (<= (next (card ?Position ?Value))
- (does player1 (play ?PlayedCard))
- (true (card ?Position ?Value))
- (distinct ?Position ?PlayedCard)
- (distinct ?Position trick1Card)
- )
- (<= (next (card trick1Card ?Value))
- (does player1 (play ?PlayedCard))
- (true (card ?PlayedCard ?Value))
- )
- ;player2: every card stays the same except trickposition2 becomes played card
- (<= (next (card ?Position ?Value))
- (does player2 (play ?PlayedCard))
- (true (card ?Position ?Value))
- (distinct ?Position ?PlayedCard)
- (distinct ?Position trick2Card)
- )
- (<= (next (card trick2Card ?Value))
- (does player2 (play ?PlayedCard))
- (true (card ?PlayedCard ?Value))
- )
- ;whos turn
- (<= (next (control player2))
- (true (control player1))
- )
- (<= (next (control end))
- (true (control player2))
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Supporting Concepts
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (succ 0 1)
- (succ 1 2)
- (succ 2 3)
- (succ 3 4)
- (succ 4 5)
- (succ 5 6)
- (succ 6 7)
- (succ 7 8)
- (succ 8 9)
- (succ 9 10)
- (<= (greaterthan ?X ?Y)
- (succ ?Y ?X)
- )
- (<= (greaterthan ?X ?Y)
- (succ ?Z ?X)
- (greaterthan ?Z ?Y)
- )
- (<= (higherCard player1)
- (greaterthan ?Player1CardValue ?Player2CardValue)
- (true (card trick1Card ?Player1CardValue))
- (true (card trick2Card ?Player2CardValue))
- )
- (<= (higherCard player2)
- (greaterthan ?Player2CardValue ?Player1CardValue)
- (true (card trick1Card ?Player1CardValue))
- (true (card trick2Card ?Player2CardValue))
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Termination
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (<= terminal
- (true (control end))
- )
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; Goals
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- (<= (goal ?Player 100)
- (higherCard ?Player)
- )
- (<= (goal ?Player 0)
- (higherCard ?Opponent)
- (role ?Player)
- (distinct ?Player ?Opponent)
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement