- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
游戏界面和相关图片素材 游戏界面和相关图片素材 7.2.2 识别牌的点数 如何识别牌的点数,这里采用count表示。游戏中采用以下代码计算点数: if(value==J||value==Q||value== K) this.count=10; else if(value==A) this.count=1; else this.count=Integer.parseInt(value); 7.2.3 Dealer(庄家)要牌智能实现 Dealer(庄家)要牌过程是电脑自动实现的,这里设计比较简单,仅仅判断点数和是否已超过17,如果超过则不要牌了。当然读者可以设计更复杂的游戏逻辑。 在线教务辅导网: 教材其余课件及动画素材请查阅在线教务辅导网 QQ:349134187 或者直接输入下面地址: Java游戏编程原理与实践教程 主编 陈锐 夏敏捷 人民邮电出版社 二十一点游戏是玩家要取得比庄家更大的点数总和,但点数超过二十一点即为输牌。J、Q、K算10点,A可算1点,其余按牌面值计点数。开始时每人发两张牌,一张明,一张暗,凡点数不足二十一点,可选择继续要牌。 本章开发21点扑克牌游戏。游戏运行结果如图7-1所示。为简化起见,游戏有两方,一方为Dealer(庄家)和一个方Player(玩家),都发明牌。Dealer(庄家)要牌过程由程序自动实现。能够判断玩家输赢。 第7章 21点扑克牌游戏 7.2.1 扑克牌面绘制 g.drawImage方法绘制扑克牌面。 private Image cardImage; //图片 //画牌面 protected void paint(Graphics g) { g.drawImage(cardImage,x,y,null); } //画牌面 protected void paint(Graphics g,JPanel i) { g.drawImage(cardImage,x,y, (ImageObserver)i); } 7.2.4 游戏规则的算法实现 游戏开始时,我们首先要取一副牌(Poker类实现),然后将牌洗好,xipai()洗牌时取得2个54以内随机数,将对应Card顺序对调,重复500次可以达到洗牌效果。 发牌时从第1张牌开始发起。两家的牌就保存在ArrayList列表中,所以“开始”时首先清空ArrayList列表,同时清空积分(点数和)和输赢标志。得分(点数和)及输赢判断如下: calcComputerScore()计算电脑得分(点数和)。通过遍历存储电脑手中牌的ArrayList列表Computercards,获取每张牌的点数c.count从而得到电脑得分(点数和)。 public void calcComputerScore() public void calcComputerScore() { Computerscore = 0; for (int i = 0; i Computercards.size(); i++) { Card c = (Card) Computercards.get(i); Computerscore += c.count; } } 7.2.4 游戏规则的算法实现 calcComputerScore()计算玩家得分(点数和)。通过遍历存储玩家手中牌的ArrayList列表Mycards,获取每张牌的点数c.count从而得到玩家得分(点数和)。 public void calcMyScore() { Myscore = 0; for (int i = 0; i Mycards.size(); i++) { Card c = (Card) Mycards.get(i); Myscore += c.count; } } 7.2.4 游戏规则的算法实现 shuying()计算两家的得分,不超过21点情况下比较点数判断输赢。 public void shuying() { calcComputerScore(); calcMyScore(); if (Computerlose == false) //超过21点情况下 JOptionPane.showMessageDialog(null, 电脑输了, 提示, JOptionPane.ERROR_MESSAGE); if (Mylose == false) //超过21点情况下 JOptionPane.showMessageDialog(null, 玩家输了, 提示, JOptionPa
您可能关注的文档
- 新Java Web程序设计教程 教学课件 范立锋 林果园 第1章 Web应用开发简介.ppt
- 新Java Web程序设计教程 教学课件 范立锋 林果园 第13章 Spring与Java EE持久化数据访问.ppt
- 新Java Web应用技术与案例教程 教学课件 杨树林 胡洁萍 第三章 设计模式与分层架构.ppt
- 新Java 程序设计 教学课件 朱喜福 林建民 唐永 第01章.ppt
- 新Java 程序设计项目教程(教育部高职高专计算机教指委规划教材) 教学课件 张兴科 季昌武 项目五.ppt
- 新JavaScript程序设计基础教程 第2版 普通高等教育“十一五”国家级规划教材 教学课件 阮文江 第七章 对象编程1.ppt
- 新JavaScript程序设计基础教程 教学课件 曾海 第9章 CSS+DIV技术.ppt
- 新JavaScript脚本程序设计 教学课件 吴以欣 陈小宁 第3章 JavaScript常用内置对象.ppt
- 新Java编程与应用教程 教学课件 张莉 java_03.ppt
- 新Java编程与应用教程 教学课件 张莉 java_11.ppt
文档评论(0)