斯坦福大学开放课程——编程方法 作业5

来源:互联网 发布:js教程视频下载 编辑:程序博客网 时间:2024/05/13 05:00

 

      原PDF中的内容不想一点点的翻译过来,直接Goolge了一下游戏规则贴上来了。其基本内容相同

游戏规则

  每位玩家丢五个骰子, 总和最高的玩家为起始玩家, 其它依顺时钟方式进行每个玩家回合将五个骰子丢进骰子杯里, 摇动后翻开来, 每个回合最多有摇三次机会, 当第一次摇出后, 玩家可以选择任意数量的骰子丢回骰子杯里重摇, 第二次摇后,玩家可以再选择丢任意数量的骰子丢回骰子杯里重摇, 包括第一次保留的, 最后一次摇完后即计分

  计分卡

  在计分卡有 13 格计分位置, 分别详述如下

  1's 每一个1得到 1分

  2's 每一个2得到 2分

  3's 每一个3得到 3分

  4's 每一个4得到 4分

  5's 每一个5得到 5分

  6's 每一个6得到 6分

  3 of a Kind 若你有三颗一样的骰子, 加总所有骰子的总和

  4 of a Kind 若你有四颗一样的骰子, 加总所有骰子的总和

  Full House 若你有一种三颗一样的骰子及一种二颗一样的骰子, 得25分

  small straight 需要四个连续数字骰子, 得30分

  straight 需要五个连续数字骰子, 得40分

  Yahtzee 若你有五颗一样的骰子, 得50分

  Chance 加总所有骰子的总和

  奖分

  游戏中共有二种奖分

  1.若上层数字 1 到 6 的总和相加等于或大于 63 分, 可以得到 35 分奖分

 * 2.若你已在Yahtzee的地方计分, 每再额外掷出一个Yahtzee则会得到 100 额外的奖分, 你可以放在下层任一格当作Joker或是放在上层正常计分(本程序中未考虑

  游戏结束

 

  当13格均已计满后, 计算总分, 分数最高着获胜

 

      其主体思路很简单,游戏共进行13轮,每轮中玩家一次进行。在每轮内,玩家按照游戏规则进行掷骰子并选择相关策略,完成后,根据玩家的选择,程序判断是否满足该策略的要求并更新右侧的积分表。游戏结束后,程序统计各玩家的Upper Score、Upper Bonus、Lower Score以及最终的Total,并找出最高得分者输出最终的胜利信息。

 

程序源代码如下(由于YahtzeeConstants.java内只包含相关的常量,故只贴出Yahtzee.java文件):

 

 

最后再加一个游戏截图

原创粉丝点击