ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:18.10KB ,
资源ID:8588805      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8588805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(梭哈游戏程序设计题意分析.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

梭哈游戏程序设计题意分析.docx

1、梭哈游戏程序设计题意分析 题目1:请按照游戏规则和要求编程。 “梭哈”游戏规则如下: 梭哈(来自英文showhands)是从扑克牌中借鉴过来的。每人五个骰子,摇出后,依其点数牌形可分为:散牌(五个骰子点数各不一样)、一对(五个骰子中仅有两个骰子点数一样,其余皆不一样)、两对(两个对子加一个其他点数,如一对二加一对四加一个三)、三条(三个骰子的点数一致,余下两个骰子点数各不相同,如三个四加一个二和一个六)、葫芦(也就是扑克牌中的三条带一对:三个骰子点数同为某数,余下两个骰子点数同为另一数,如三个三加一对二)、(其中四个骰子的点数一致,如四个一加一个五)、顺子(五个骰子点数呈连续分布,如12345

2、和23456)、豹子(五个骰子点数全一样)。 胜负规则为豹子顺子葫芦三条两对对子散牌。若属于同一类型,则依次比较类型构成主次要成分的骰子点数大小。如先比较四个相同骰子的点数,再比较散牌;葫芦先比较三个相同骰子再比较对牌;两对先比较较大的对,再比较稍小的对,最后比较散牌;如此类推。比较点数时165432。试举例,如双方均为葫芦,一人为三个五带对二,另一人为三个四带对六,前者胜;又若双方均为两对,同有对二、对六,但一方散牌为五、另一方为一,则后者胜。 要求:请编程实现如下功能: 分别产生六组随机数(对应六个玩家),根据上面的规则判断所产生的骰子点数牌型,并输出。 比较六个玩家的胜负,并输出。 设计

3、个类 该类有两个字段表示类的优先级Card kind ;1,2,3,4,5,6,7,8/葫芦有两种,所以要区分开来 我另外设计了类型 Rankscore/同一个类型下的积分分布积分: 1、豹子:积分按所得骰子 的 getrankscore() 2、顺子,分布12345 积分为1,分布23456积分为0 3、葫芦4:所得最多骰子的getrankscore*100 + 剩余的一个的getrankscore 4、葫芦3:所得最多的骰子的getrankscore*100+剩余的两个的getrankscore 5 、三条 :所得最多骰子的getrankscore*100 + 一个getrankscore

4、*10 + 一个getrankscore 6、两对。所得骰子rank前的一对getrankscore*100+第二对geteankscore*10 + 余下的一个的骰子分getrankscore 7、一对、所得骰子对getrankscore*1000+剩余骰子rank最前的getrankscore*100 + .(类似) 8 散牌,没有的那一张的rank分(另外设计一个函数)package showHands.FiveDice;import showHands.Dice.*;public class FiveDice private int dices = new int5; public F

5、iveDice() throwDices(); private void throwDices() Dice dice = new Dice(); for(int i = 0; i 5 ; i +) dicesi = dice.rollTheDice(); public int getDices() throwDices(); return this.dices; package showHands.Dice;import java.util.Random;public class Dice private int number; public Dice() rollIt(); private

6、 void rollIt() Random rand = new Random(); this.number = 1 + rand.nextInt(6); public int rollTheDice() rollIt(); return this.number; import showHands.FiveDice.*;import showHands.Dice.*;public class Game final int numberOfPlayers = 6; int results = new int65; int spare = new int 67;/每个点数的个数 /enum kin

7、dOfCadbaozi,shunzi,hulu4,hulu3,santiao,liangdui,yidui,sanpai Card card = new Card6; private static class kindOfCard static int baozi = 8; static int shunzi = 7; static int hulu4 = 6; static int hulu3 = 5; static int santiao = 4; static int liangdui = 3; static int yidui = 2; static int sanpai = 1; c

8、lass Card public int player; public int kind; public int score; public Game() play(); initSpare(); /* * 初始化每个点数个数为零 */ private void initSpare() for(int i = 0 ; i this.numberOfPlayers ; i+ ) for( int j = 0 ; j 7 ; j+) spareij =0; private void play() for(int i = 0 ; i this.numberOfPlayers; i +) FiveDi

9、ce fivedice = new FiveDice(); resultsi = fivedice.getDices(); private void printRollResults() for(int i = 0 ; i this.numberOfPlayers ; i +) System.out.print(Player + (i+1) + ); for(int j = 0 ; j 5 ; j +) System.out.print(this.resultsij + ); System.out.println(getName(cardi.kind); public void printGa

10、meResults() getSpare(); judge(); printRollResults(); for(int i = 0 ; i this.numberOfPlayers ; i+) System.out.printf(第%d名 玩家%d %sn, i+1,cardi.player + 1,getName(cardi.kind); private void getSpare() for(int i = 0 ; i this.numberOfPlayers ; i+) for ( int j = 0 ; j 5 ; j +) this.spareithis.resultsij+;/第

11、 I + 1个人点数为resultsij的分布数加一 private void judge() again: for(int i = 0 ; i this.numberOfPlayers ; i+) cardi = new Card(); cardi.player = i; for(int j = 1 ; j 7 ; j +)/根据点数个数来进行分类 if(this.spareij = 5)/判断为豹子 cardi.kind = kindOfCard.baozi; cardi.score = getRankScore(j); continue again; else if (this.spar

12、eij = 4)/判断为葫芦 4 cardi.kind = kindOfCard.hulu4; for(int k = 1 ; k 7 ; k +) if( j != k & this.spareik=1) cardi.score = getRankScore(j)*100 + getRankScore(k); continue again; else if(this.spareij = 3)/三个同点数 for(int k =1; k 7 ; k+) if(j != k & this.spareik =2)/判断为葫芦 3 cardi.kind = kindOfCard.hulu3; car

13、di.score = getRankScore(j)*100 + getRankScore(k); continue again; else if( j!= k & this.spareik =1)/判断为三条 for(int l = 1 ; l b) cardi.score = getRankScore(j)*100 + a * 10 + b ; else cardi.score = getRankScore(j)*100 + b * 10 + a; continue again; else if(this.spareij = 2)/两个点数相同 for(int k = 1; k 7 ; k

14、+) if( k != j & this.spareik =2)/判断为两对 for(int l = 1 ; l 7 ; l+)/两对 if(this.spareil = 1) cardi.kind = kindOfCard.liangdui; cardi.score = getRankScore(j) * 100 + getRankScore(k)*10 + getRankScore(l); continue again; else if(this.spareik = 1)/判断为一对 for(int l = 1 ; l 7 ; l+) if( l != k & this.spareil =

15、 1) for(int m = 1 ; m 7 ; m +) if( m != k & m != l & this.spareim = 1) cardi.kind = kindOfCard.yidui; cardi.score = getRankScore(j)*1000+getRankScore(k)*100+getRankScore(l)*10+getRankScore(m); continue again; else if(onlyOne(this.sparei)/处理每个点数只有一个的情况 if(this.sparei1 = 0 ) cardi.kind = kindOfCard.sh

16、unzi; cardi.score = 0; continue again; else if( this.sparei2 = 0) cardi.kind = kindOfCard.shunzi; cardi.score = 1; continue again; else for( int k = 1 ; k 7; k+ ) if( this.spareik = 0) int score;/按缺失的牌计分 switch(k) case 1 :score = 1;/一是最大的少掉了就是最小的 case 6 :score = 2; case 5 :score = 3; case 4 :score =

17、 4; case 3 :score = 5; default :score = 6; cardi.kind = kindOfCard.sanpai; cardi.score = score; continue again; compare(); private boolean onlyOne(int a) int nums = 0; for(int i = 1 ; i 7 ; i+) if(ai = 1) nums +; if(nums = 5) return true; else return false; private void compare() for(int i = 0 ; i t

18、his.numberOfPlayers -1 ; i +) for(int j = i+1 ; j this.numberOfPlayers ; j +) if(cardi.kind cardj.kind) Card temp; temp = cardi; cardi = cardj; cardj = temp; else if(cardi.kind = cardj.kind) if(cardi.score cardj.score) Card temp; temp = cardi; cardi = cardj; cardj = temp; private int getRankScore(in

19、t num) switch(num) case 1 :return 6; case 6 :return 5; case 5 :return 4; case 4 :return 3; case 3 :return 2; case 2 :return 1; default: return 0; private String getName(int kind) switch(kind) case 8:return 豹子; case 7:return 顺子; case 6: case 5:return 葫芦; case 4:return 三条; case 3:return 两对; case 2:ret

20、urn 一对; case 1:return 散牌; default : return 恶心; import showHands.Dice.*;import showHands.FiveDice.*;public class ShowHands public static void main(String args) /*Dice dice = new Dice (); System.out.print(dice.rollTheDice();*/ Game game = new Game(); /game.printRollResults(); game.printGameResults();

21、/* FiveDice fd = new FiveDice();*/ /* int FIves = new int 55; for(int i = 0 ; i 5 ; i+) FiveDice fd = new FiveDice(); FIvesi = fd.getDices(); for(int i = 0 ; i 5; i +) for( int j = 0 ; j 5 ; j +) System.out.print(FIvesij);*/ /* Dice dice = new Dice(); for(int i = 0 ; i 100 ; i +) System.out.print(dice.rollTheDice();*/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1