CS61A 课程项目 Hog
要求参考composing programs的1.2节和1.6节,使用控制语句和高阶函数来完成该项目
Hog 游戏规则
两个玩家轮流进行游戏并试图成为第一个以让总分超过100分的人
每一轮中,当前玩家选择一定数量的骰子投掷(最多10个)
玩家该轮的分数是所有骰子投掷结果的和
投掷骰子数量太多的玩家需要承担一下风险:
- 规则Pig out. 在本轮所有骰子投掷结果中,只要有一个是1,那么当前玩家本轮得分为1
- 例1,当前玩家投掷7枚骰子,其中5个结果为1,该玩家本轮得分为1
- 例2,当前玩家投掷4枚骰子,其投掷结果均为3,由于"Pig out"规则并没有被触发,因此该玩家本轮得分为12
在正常的Hog游戏中,以上即为全部规则,该课程添加了以下特殊规则以增加趣味性以及项目难度:
-
规则Free Bacon,如果一个玩家本轮选择不投掷骰子,那么其分数为
对手本轮分数值的十位数字 + (10 - 对手本轮分数值的个位数字)
- 例1,对手该轮分数为32,当前选手不投掷,当前选手本轮分数为
10 - 2 + 3 = 11
- 例2,对手该轮分数为19,当前选手不投掷,
- 例1,对手该轮分数为32,当前选手不投掷,当前选手本轮分数为