人鬼过河游戏
有三个人,三只鬼,在河流的同一 侧。河中有一只两个座位的小船,小船 需要人或者鬼的操作才能从河的一侧 运动到河的另一侧。当河的一岸鬼的 数目大于人的数目,鬼会吃同岸的人。 系统不允许这种状态发生。系统如何 操作才能将人鬼全部安全的移动到河 的另一侧。
网页版游戏
人鬼过河在 Maude 中建模
POSITION模块
位置模块,该模块完成对位置的 建模,河只有“Left”、“Right”两岸。
fmod POSITION is
sort Position .
op !_ : Position -> Position .
ops Left Right : -> Position .
---var Left Right : Position
eq !( Left ) = Right .
eq !( Right ) = Left .
endfm
PASSENGER模块
该模块完成乘客的建模,乘客有两种,分别是人和鬼。