下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南省益阳市事业单位人员招聘考试模拟试题及答案详解
- 2026年淮南市潘集区事业单位人员招聘考试参考试题及答案详解
- 梦想之旅:树立人生目标的小学主题班会课件
- 家政服务员家庭清洁与卫生标准手册
- 拒绝吸烟远离有害物质四年级主题班会课件
- 养老护理员用药管理与观察
- 2026年南京市鼓楼区事业单位人员招聘笔试参考试题及答案详解
- 2026南昌华路建设咨询监理有限公司招聘5人考试模拟试题及答案详解
- 2026内蒙古大学招聘具有硕士学位控制数(非事业编制)人员42人考试模拟试题及答案详解
- 2026年蚌埠城市轨道交通职业学院公开招聘40名(第三期)考试参考题库及答案详解
- 如何阅读英语科技文献技巧与案例
- 国家开放大学2023年7月期末统一试《23931职业卫生基础》试题及答案-开放专科
- JCT984-2011 聚合物水泥防水砂浆
- 中建最新消防工程专项施工方案
- 层压机安全操作规程
- 公路工程施工环境保护体系
- 焊缝及热影响区的组织和性能
- 广东省高中学业水平生物知识点归纳
- JJF 1287-2011澄明度检测仪校准规范
- 设备精密点检、振动诊断课件
- 设计变更单(含设计变更通知)
评论
0/150
提交评论