我需要OCL操作方面的帮助才能通过我硕士的一个科目。我对OCL语言了解不多。
接下来我要做的是:
实现操作:
Server::validMovement(playerName:String, movement:Movement):bool
当且仅当存在一个游戏,其玩家之一的名称为 playerName,该玩家的属性 hasTurn 为 true,并且游戏板在调用一个操作 validMovement(movement) 时返回 true。
应该该操作
Board:validMovement(g:Game):bool
存在,没有必要在OCL中记录它。
会是这样吗?我不知道好不好...
上下文服务器 :: 有效移动(名称玩家:字符串, 移动:移动) : 布尔值
post : result = self.games->one(g : game | p. players->exists(p : Player | p.name=namePlayer and p.hasTurn=true) and p.board.validMovement(movement))