下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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陕西西安高新健嘉康复医院招聘19人备考题库及一套答案详解
- 2026浙江杭州市规划和自然资源局上城分局招聘编外用工人员1人备考题库及答案详解(必刷)
- 2026年东北石油大学公开招聘工作人员15人备考题库(一)附答案详解(完整版)
- 2026云南保山昌宁县珠街彝族乡卫生院就业见习岗招聘4人备考题库含答案详解(黄金题型)
- 2026年滁州学院公开招聘工作人员3名备考题库有完整答案详解
- 2026年福建宁德福安市统计局招聘40名备考题库附答案详解(突破训练)
- 2026内蒙古锡林郭勒盟阿巴嘎旗旗直事业单位引进急需紧缺人才2人备考题库及答案详解一套
- 2026年江西省住房和城乡建设厅直属事业单位高层次人才招聘1人备考题库含答案详解(巩固)
- 2026上海市同济口腔医院(同济大学附属口腔医院)招聘21人备考题库及答案详解(基础+提升)
- 2026沈阳福园实业集团有限公司子公司招聘备考题库附答案详解(黄金题型)
- 2026湖北神农架林区公安局招聘辅警22人备考题库完整参考答案详解
- 达州市2026年面向高校毕业生招聘园区产业发展服务专员(37人)笔试参考题库及答案解析
- 2025年江西大学生村官招录考试笔试试题及答案解析
- 2026广东惠州市惠城区桥东街道招聘党建联络员和村(社区)“两委”班子储备人选补充笔试备考题库及答案详解
- 第13课 辽宋夏金元时期的对外交流 课件
- 2026年“建安杯”信息通信建设行业安全竞赛核心考点题库
- 备战2026河南中考英语:补全对话7大场景高频问句及答语梳理+解题技巧
- 《演唱 嘀哩嘀哩》课件2025-2026学年人音版三年级下册音乐
- 高中语文教师运用生成式人工智能创新阅读教学的实践研究教学研究课题报告
- 陕西省2026年高考适应性检测(二)地理试题(含答案)
- 2026年广东汕头市中考语文考试真题带答案
评论
0/150
提交评论