下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 要求系统自动帮玩家抽2张卡,统计总数;电脑(delaer)自动抽两张卡,一张看得见一张看不见(用*表示);然后玩家(player)选择是继续抽(HIT)还是停止抽(STAY);再抽的话是抽一张牌,每次都统计总数;电脑的得分如果小于17的话他也会抽一张,大于等于17的话就不抽了;最后接近21的人赢,但不能超过21,超过就输了(BUST),如果两个人的得分一样(tie)的话是电脑(dealer)赢。2. 效果3. 实现1)BlackJack.javapackage test;import java.util.ArrayList;import java.util.List;import jav
2、a.util.Random;public class BlackJack /扑克牌private String card = new String"A","2","3","4","5","6","7","8","9","J","Q","K"/用来存储玩家的抽排的集合private List<String> playCard ;/用来存储电脑的抽排
3、的集合private List<String> computerCard;/玩家得分private int pScore;/电脑得分private int cScore;Random r = new Random();/* * 玩家再次抽排 */public void nextCard()playCard.add(getCard();/如果电脑的得分小于17则再次抽排if(getScore(computerCard)<17)computerCard.add(getCard();msg(playCard);/打印玩家抽排信息/* * 系统初始化,默认玩家和电脑各抽2张牌,并打印
4、信息 */public void init()/玩家抽2张牌playCard = new ArrayList();playCard.add(getCard();/把玩家抽到的牌放入集合中playCard.add(getCard();msg(playCard);/电脑抽2张牌computerCard = new ArrayList();computerCard.add(getCard();/把电脑抽到的牌放入集合中computerCard.add(getCard();System.out.println("Dealer Cards: "+computerCard.get(0)
5、 + " *");/* * 从扑克牌中随机抽排 * return */public String getCard()String c = cardr.nextInt(card.length);return c;/* *根据传入的集合打印玩家或电脑的抽排信息 ,传入玩家扑克牌的集合则打印玩家的抽排信息,反之。 * param card 存储玩家或电脑扑克牌的集合 */ public void msg(List<String> card) String msg ="" for(String p : card) msg = msg+p+"
6、 " System.out.print("Player Cards: "+msg + "t" + "Total: "); System.out.println(getScore(card); /* * 判胜 * return true玩家胜利 false电脑胜 */ public boolean getWinner() pScore = getScore(playCard);/玩家得分 cScore = getScore(computerCard);/电脑得分 String pMsg ="" for(St
7、ring p : playCard) pMsg = pMsg+p+" " System.out.println("Player Cards: "+pMsg + "t" + "Total: " +pScore); String dMsg ="" for(String d : computerCard) dMsg = dMsg+d+" " System.out.println("Dealer Cards: "+ dMsg + "t" + &
8、quot;Total: "+cScore); int p = 21-pScore; int c = 21-cScore; if(p<0)/玩家得分超过21 System.out.println("电脑胜!"); return false; if(c<0)/电脑得分超过21 System.out.println("玩家胜!"); return true; if(p>=c)/电脑得分比玩家的分更接近21 System.out.println("电脑胜!"); return false; else System.
9、out.println("玩家胜!"); return true; /* * 根据传入的集合计算玩家或电脑的得分 * param card 存储玩家或电脑扑克牌的集合 * return 得分 */ public int getScore(List<String> card) int score = 0; for(String c : card) switch(c) case "A": score += 1;break; case "2": score += 2;break; case "3": scor
10、e += 3;break; case "4": score += 4;break; case "5": score += 5;break; case "6": score += 6;break; case "7": score += 7;break; case "8": score += 8;break; case "9": score += 9;break; case "J": score += 10;break; case "Q":
11、 score += 11;break; case "K": score += 12; return score; 2)PlayBlackJack.javapackage test;import java.text.NumberFormat;import java.util.Scanner;public class PlayBlackJack /游戏次数private static int count;/玩家赢得次数private static int playWin;public static void main(String args) BlackJack jack =
12、new BlackJack();Scanner scan = new Scanner(System.in);System.out.println("Let's play Blackjack!n");/Welcome!while(true)/默认无限循环游戏,数据n/N结束游戏jack.init();/游戏初始化while(true)/默认无限玩家无限再次抽排,输入1结束抽排System.out.println("HIT (0) or STAY (1): ");int input = scan.nextInt();if(input = 1)if(j
13、ack.getWinner()playWin+;count+;break;/结束抽排else/玩家再次抽排jack.nextCard();System.out.println("Would you like to play again?(y for yes, n for no): ");String again = scan.next();if("N".equals(again)|"n".equals(again)break;/结束游戏/当前默认语言环境的百分比格式。NumberFormat percent = NumberFormat.getP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版房屋买卖合同中的房屋抵押及解押约定3篇
- 二零二五河南事业单位100人招聘项目合同执行标准3篇
- 二零二五版建筑工程项目现场勘察与监测服务合同3篇
- 二零二五版混凝土结构防雷接地施工合同2篇
- 二零二五年度草场承包管理与开发合同范本3篇
- 二零二五版国际贸易实务实验报告与国际贸易实务实训合同3篇
- 二零二五年度虚拟现实(VR)技术研发合同3篇
- 二零二五年度特种货物安全运输服务合同范本2篇
- 二零二五年度体育设施建设与运营管理复杂多条款合同3篇
- 二零二五年度电梯门套安装与安全性能检测合同3篇
- 建筑工程一切险条款版
- 人教版八年级下册第一单元英语Unit1 单元设计
- PEP小学六年级英语上册选词填空专题训练
- 古建筑修缮项目施工规程(试行)
- GA 844-2018防砸透明材料
- 化学元素周期表记忆与读音 元素周期表口诀顺口溜
- 非人力资源经理的人力资源管理培训(新版)课件
- MSDS物质安全技术资料-201胶水
- 钼氧化物还原过程中的物相转变规律及其动力学机理研究
- (完整word)2019注册消防工程师继续教育三科试习题及答案
- 《调试件现场管理制度》
评论
0/150
提交评论