使用 Requirements Table 模块仿真骰子游戏规则
此示例显示如何使用 Requirements Table 模块来模型与掷骰子游戏相关的一些规则。通常,掷骰子游戏涉及一名玩家、一名观众和一名赌场工作人员。在游戏中,玩家掷两个六面骰子。玩家和观众根据骰子点数的总和进行下注,工作人员执行规则并管理赌注。
在第一个角色中,玩家必须遵循以下规则:
如果玩家掷骰子并且点数总和为 7 或 11,则游戏重新开始。这称为自然滚动。
如果玩家掷骰子并且点数总和为 2、3 或 12,则游戏重新开始。这称为掷骰子。
否则,总和将被赋予一个称为点数的值,游戏继续。
如果玩家确定了点数,他们就继续掷骰子。在接下来的掷骰子中,他们必须遵循以下规则:
如果玩家掷骰子并且点数总和为 7,则游戏重新开始。这叫滚七出。
如果玩家掷骰子并且点数总和等于该点数,则游戏重新开始。这叫滚动点。
否则,玩家再次掷骰子。
在这个例子中,模型确定掷骰子的结果,并在游戏必须重新开始时停止仿真。Requirements Table 模块将这些规则及其结果表示为需求。
查看模型
打开ReqTableDiceGame
模型。该模型生成两个随机整数,其值范围从1
到6
,以表示骰子的值。根据滚动情况,仿真继续或停止。
打开 Requirements Table 模块,Dice Game Rules
。这些需求通过结合时序运算符和需求层次来模型骰子游戏规则。请参阅 使用时序逻辑执行控制需求 和 在 Requirements Table 模块中建立层次结构。
该模块还包括两个假设,用于限制每个骰子的可能值。请参阅将假设添加到需求中。
需求完整且一致。请参阅识别不一致和不完整的正式需求集。
退出该模块并运行仿真。您可以在浮动 Scope 模块中查看游戏的结果。多次运行仿真以产生不同的游戏结果。该模型最多运行 10 卷。延长仿真时间以允许更多的总滚动。