欢迎来到天天文库
浏览记录
ID:22670299
大小:489.00 KB
页数:33页
时间:2018-10-21
《java项目案例-黑杰克》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、项目案例黑杰克项目描述项目描述黑杰克游戏实现如下功能:发牌:一开始给每个玩家发一张牌,这张牌是底牌,只有玩家自己知道是什么,然后只发给要牌的玩家。如果所有玩家都不再要牌,则开牌计分。计分:2到10都是按牌面计算点数,直接累加。J、Q、K按10点计算,A一般记作11点累加,此时如果点数大于21点则将A记作1点。爆分:21点为最大点数值,如果玩家手中的牌点数大于21点,则属于爆分,玩家手中点数将归0,判定为输。要牌:玩家在底牌之后可以继续要牌,知道点数满意或爆分为止。下注:玩家在每局开局前可下注,定当前局输赢的钱数。输赢:21点位最大点数
2、,哪个玩家点数大,就哪个玩家赢。任务划分1、需求讲解(30分钟)教员演示游戏效果,讲解基本需求。2、编码阶段(350分钟)(1)扑克及玩家类(100分钟)(2)荷官类(50分钟)(3)玩家手中的牌类(50分钟)(4)游戏类主要方法(50分钟)(5)游戏类辅助方法(30分钟)3、项目总结(20分钟)第一阶段任务扑克及玩家类(100分钟)创建扑克类(40分钟)创建玩家类(60分钟)扑克类对于一张扑克牌来说,主要有牌面值及花色,Card类用faces数组及suits数组分别存储所有牌面值及花色,并提供了getFace()方法及getSuit
3、()方法获取一张扑克的面值及花色信息。扑克类关键代码packagecom.systop.blackjack;publicclassCard{//牌面值数组String[]faces={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};//花色数组String[]suits={"黑桃","红桃","梅花","方块"};//牌的总数intmaxCards=faces.length*suits.length;//这张牌的点数intvalue=0;//…………………….}编写主要属性代
4、码15分钟扑克类关键代码//构造方法publicCard(){value=0;//用创建一章默认纸牌}//构造方法创建第张牌publicCard(intn){//代码省略}//返回表示纸牌面值的字符串publicStringgetFace(){returnfaces[value%faces.length];}//返回表示纸牌花色的字符串publicStringgetSuit(){returnsuits[value%suits.length];}//返回当前纸牌的花色及面值publicStringtoString(){returnget
5、Suit()+getFace();}编写主要方法代码25分钟玩家类玩家类的抽象是非常明显的,完全模拟了现实中一个玩家的属性及行为,属性有:赢次数、输次数、拥有现金数、手上的牌。与赌场相关的行为能力也相当完善,例如获取发牌、重开一局等等。玩家类关键代码packagecom.systop.blackjack;publicclassPlayer{intwinNumber;//赢的次数intloseNumber;//输的次数intcash;//玩家手中的现金//CardsInHandhand;//玩家手中的牌/***构造方法,初始化玩家信息*
6、/publicPlayer(){winNumber=0;loseNumber=0;hand=newCardsInHand();cash=10000;}}编写主要属性代码15分钟玩家类关键代码/***获取玩家手中牌的列表*@return牌列表*/publicStringgetHandList(){}/***获取玩家手中牌的张数*@return*/publicintgetSize(){}/***接受发来的牌*@paramcard*/publicvoidsetHand(Cardcard){}/***胜利一局*/publicvoidyouWi
7、n(){}/***再玩一局,清空玩家手中的牌*/publicvoidplayAgain(){}/***输了一局*/publicvoidyouLose(){}编写主要方法代码35分钟第一阶段演示第一阶段代码演示及点评第二阶段任务荷官类(50分钟)基本属性及构造方法(15分钟)主要方法编写(35分钟)荷官类荷官的抽象只是实现了两个较核心的能力,一个是发牌,一个是洗牌。发牌涉及到一个随机算法的问题,是比较重要的运算处理。荷官类关键代码packagecom.systop.blackjack;importjava.util.Random;pub
8、licclassDealer{intmaxSize=52;//最大牌数Card[]cards;//能够发派的扑克Randomrandom;//用于随机生成数字的andom/***构造方法*/publicDealer(){
此文档下载收益归作者所有