-3

我需要 OCL 操作方面的帮助才能通过我的硕士课程之一。我对OCL语言了解不多。

接下来我要做的是:

实现操作:

Server::validMovement(playerName:String, movement:Movement):bool

当且仅当存在一个游戏,该游戏有一个名为 playerName 的玩家,该玩家的属性 hasTurn 为 true,并且游戏板在调用一个操作 validMovement(movement) 时返回 true,此操作才返回 true。

假设该操作Board:validMovement(g:Game):bool存在,并且没有必要在 OCL 中记录它。

4

1 回答 1

2

会是这样吗?不知道好不好...

上下文服务器 :: validMovement(namePlayer:String, motion:Movement) : boolean

post : result = self.games->one(g : Game | p. player->exists(p : Player | p.name=namePlayer and p.hasTurn=true) and p.board.validMovement(movement))

于 2014-02-09T22:34:51.643 回答