Skip to content

Instantly share code, notes, and snippets.

@zakhar-kogan
Created July 1, 2024 19:48
Show Gist options
  • Save zakhar-kogan/8c45a2a8b1a9e124de2a03100769a349 to your computer and use it in GitHub Desktop.
Save zakhar-kogan/8c45a2a8b1a9e124de2a03100769a349 to your computer and use it in GitHub Desktop.
Properties (Predicates):
A block can be on top of another block
A block can be on the table
A block can be clear (nothing is on top of it)
The hand can be empty
The hand can be holding a block
Actions:
Pick-up: The hand picks up a block from the table
Can only be done if the block is clear, on the table, and the hand is empty
Results in the block no longer being on the table or clear, and the hand is no longer empty but holding the block
Put-down: The hand puts down a block it's holding onto the table
Can only be done if the hand is holding a block
Results in the hand no longer holding the block, the block becoming clear and on the table, and the hand becoming empty
Stack: The hand places a block it's holding on top of another block
Can only be done if the hand is holding a block and the destination block is clear
Results in the hand no longer holding the block, the destination block no longer being clear, the stacked block becoming clear, the hand becoming empty, and the stacked block being on top of the destination block
Unstack: The hand picks up a block that's on top of another block
Can only be done if a block is on top of another, the top block is clear, and the hand is empty
Results in the hand holding the top block, the bottom block becoming clear, the picked-up block no longer being clear, the hand no longer being empty, and the picked-up block no longer being on top of the other block
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment