- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java项目案例-黑杰克I
项目案例 黑杰克 项目描述 项目描述 黑杰克游戏实现如下功能: 发牌:一开始给每个玩家发一张牌,这张牌是底牌,只有玩家自己知道是什么,然后只发给要牌的玩家。如果所有玩家都不再要牌,则开牌计分。 计分:2到10都是按牌面计算点数,直接累加。J、Q、K按10点计算,A一般记作11点累加,此时如果点数大于21点则将A记作1点。 爆分:21点为最大点数值,如果玩家手中的牌点数大于21点,则属于爆分,玩家手中点数将归0,判定为输。 要牌:玩家在底牌之后可以继续要牌,知道点数满意或爆分为止。 下注:玩家在每局开局前可下注,定当前局输赢的钱数。 输赢:21点位最大点数,哪个玩家点数大,就哪个玩家赢。 任务划分 1、需求讲解(30分钟) 教员演示游戏效果,讲解基本需求。 2、编码阶段(350分钟) (1)扑克及玩家类(100分钟) (2)荷官类(50分钟) (3)玩家手中的牌类(50分钟) (4)游戏类主要方法(50分钟) (5)游戏类辅助方法(30分钟) 3、项目总结(20分钟) 第一阶段任务 扑克及玩家类(100分钟) 创建扑克类(40分钟) 创建玩家类(60分钟) 扑克类 对于一张扑克牌来说,主要有牌面值及花色,Card类用faces数组及suits数组分别存储所有牌面值及花色,并提供了getFace()方法及getSuit()方法获取一张扑克的面值及花色信息。 扑克类关键代码 扑克类关键代码 玩家类 玩家类的抽象是非常明显的,完全模拟了现实中一个玩家的属性及行为,属性有:赢次数、输次数、拥有现金数、手上的牌。 与赌场相关的行为能力也相当完善,例如获取发牌、重开一局等等。 玩家类关键代码 玩家类关键代码 第一阶段演示 第二阶段任务 荷官类(50分钟) 基本属性及构造方法(15分钟) 主要方法编写(35分钟) 荷官类 荷官的抽象只是实现了两个较核心的能力,一个是发牌,一个是洗牌。发牌涉及到一个随机算法的问题,是比较重要的运算处理。 荷官类关键代码 荷官类关键代码 第二阶段演示 第三阶段 玩家手中的牌类(50分钟) 主要方法代码实现 玩家手中的牌类 使用一个数组来模拟玩家手中的牌。 第三阶段演示 第四阶段 游戏类主要方法(50分钟) 骨架编写(10分钟) 核心方法之构造方法(10分钟) 核心方法之start()方法(10分钟) 核心方法之computePoint()方法(15分钟) 游戏类之主要方法 骨架 游戏类之主要方法 游戏类之主要方法 核心方法之构造方法 在本类中,构造方法做的事情比较多,它需要生成一个可以互动的命令行菜单,并接受用户的一些互动菜单操作 游戏类之主要方法 游戏类之主要方法 核心方法之start() 从构造方法中可知,如果用户选择了开始游戏,将会引发start()方法的调用,在start()方法中,程序将接受第一轮的投注,并通过命令行的处理,与玩家进行下一步的互动。 游戏类之主要方法 游戏类之主要方法 核心方法之computePoint() 本方法用来进行点数的计算,可以实现对电脑玩家及游戏玩家的点数统计,其中涉及了一些21点游戏的独特计分方式,。 游戏类之主要方法 第四阶段演示 第五阶段 游戏类辅助方法(30分钟) 项目总结 编写其他辅助方法代码 * * 程序逻辑与Java语言编程 package com.systop.blackjack; public class Card { //牌面值数组 String[ ] faces = {2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A}; //花色数组 String[ ] suits = {黑桃, 红桃, 梅花, 方块}; //牌的总数 int maxCards = faces.length * suits.length; //这张牌的点数 int value = 0; //……………………. } 编写主要属性代码15分钟 //构造方法 public Card() { value = 0;//用创建一章默认纸牌 } //构造方法创建第张牌 public Card(int n) { //代码省略 } //返回表示纸牌面值的字符串 public String getFace() { return faces[value % faces.length]; } //返回表示纸牌花色的字符串 public String getSuit() { return suits[value % suits.length]; } //返回当前纸牌的花色及面值 public String toString() { return getSuit() + getFace();
您可能关注的文档
最近下载
- 2025徽商银行合肥分行社会招聘笔试参考题库附答案解析.docx VIP
- 人教部编版三年级下册语文期末测试题(含答案).docx VIP
- 金属增材制造安全规程 .pdf VIP
- 2069-3-3101-002 WKB产品判定准则-外发.docx VIP
- 建筑节能工程专项施工方案.doc VIP
- 《生物质燃料气化燃烧清洁供暖技术规范》(TCRES 0025-2025).pdf VIP
- 2025全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案.docx VIP
- 武汉沿途讲解.pdf VIP
- 2014款一汽大众宝来_汽车使用手册用户操作图解驾驶车主车辆说明书电子版.pdf
- 面向制造企业的增材制造应用.pdf VIP
文档评论(0)