Java游戏编程原理与实践教程 教学课件 ppt 作者 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编

上传人:E**** 文档编号:89369541 上传时间:2019-05-24 格式:PPT 页数:13 大小:1.27MB
返回 下载 相关 举报
Java游戏编程原理与实践教程 教学课件 ppt 作者  陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编_第1页
第1页 / 共13页
Java游戏编程原理与实践教程 教学课件 ppt 作者  陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编_第2页
第2页 / 共13页
Java游戏编程原理与实践教程 教学课件 ppt 作者  陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编_第3页
第3页 / 共13页
Java游戏编程原理与实践教程 教学课件 ppt 作者  陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编_第4页
第4页 / 共13页
Java游戏编程原理与实践教程 教学课件 ppt 作者  陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《Java游戏编程原理与实践教程 教学课件 ppt 作者 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编》由会员分享,可在线阅读,更多相关《Java游戏编程原理与实践教程 教学课件 ppt 作者 陈锐 夏敏捷 葛丽萍 Java游戏编程原理与实践教程课件 第7章--陈锐 夏敏捷主编(13页珍藏版)》请在金锄头文库上搜索。

1、Java游戏编程原理与实践教程,主编 陈锐 夏敏捷 人民邮电出版社,二十一点游戏是玩家要取得比庄家更大的点数总和,但点数超过二十一点即为输牌。J、Q、K算10点,A可算1点,其余按牌面值计点数。开始时每人发两张牌,一张明,一张暗,凡点数不足二十一点,可选择继续要牌。 本章开发21点扑克牌游戏。游戏运行结果如图7-1所示。为简化起见,游戏有两方,一方为Dealer(庄家)和一个方Player(玩家),都发明牌。Dealer(庄家)要牌过程由程序自动实现。能够判断玩家输赢。,第7章 21点扑克牌游戏,游戏界面和相关图片素材,游戏界面和相关图片素材,7.2.1 扑克牌面绘制 g.drawImage方

2、法绘制扑克牌面。 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.2 识别牌的点数 如何识别牌的点数,这里采用count表示。游戏中采用以下代码计算点数: if(value=“J“|value=“Q“|value= “K“) this.count=10

3、; else if(value=“A“) this.count=1; else this.count=Integer.parseInt(value);,7.2.3 Dealer(庄家)要牌智能实现 Dealer(庄家)要牌过程是电脑自动实现的,这里设计比较简单,仅仅判断点数和是否已超过17,如果超过则不要牌了。当然读者可以设计更复杂的游戏逻辑。,7.2.4 游戏规则的算法实现 游戏开始时,我们首先要取一副牌(Poker类实现),然后将牌洗好,xipai()洗牌时取得2个54以内随机数,将对应Card顺序对调,重复500次可以达到洗牌效果。 发牌时从第1张牌开始发起。两家的牌就保存在ArrayL

4、ist列表中,所以“开始”时首先清空ArrayList列表,同时清空积分(点数和)和输赢标志。得分(点数和)及输赢判断如下: calcComputerScore()计算电脑得分(点数和)。通过遍历存储电脑手中牌的ArrayList列表Computercards,获取每张牌的点数c.count从而得到电脑得分(点数和)。 public void calcComputerScore() public void calcComputerScore() Computerscore = 0; for (int i = 0; i Computercards.size(); i+) Card c = (Ca

5、rd) 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 游戏规

6、则的算法实现 shuying()计算两家的得分,不超过21点情况下比较点数判断输赢。 public void shuying() calcComputerScore(); calcMyScore(); if (Computerlose = false) /超过21点情况下 JOptionPane.showMessageDialog(null, “电脑输了“, “提示“, JOptionPane.ERROR_MESSAGE); if (Mylose = false) /超过21点情况下 JOptionPane.showMessageDialog(null, “玩家输了“, “提示“, JOpti

7、onPane.ERROR_MESSAGE); if (Myscore Computerscore) JOptionPane.showMessageDialog(null, “玩家赢了“, “提示“, JOptionPane.ERROR_MESSAGE); else JOptionPane.showMessageDialog(null, “电脑赢了“, “提示“, JOptionPane.ERROR_MESSAGE); ,7.3 程序设计的步骤 7.3.1 设计扑克牌类(Card.java) 二十一点游戏中,一张牌只要有四个属性说明:value牌面大小、color牌面花色,count点数,car

8、dImage牌面图片。因此,这里用Card 类实现。,7.3 程序设计的步骤 7.3.2 设计一副牌类(Poker.java) 一副牌有54张牌(Card),所以Poker中Card cards是保存54张牌(Card)。构造方法Poker()用于生成每张牌从而初始化这副扑克。游戏开始时,我们首先要取一副牌,然后将牌洗好。xipai()洗牌时取得2个54以内随机数,将对应Card顺序对调。,7.3 程序设计的步骤 7.3.3 设计游戏面板类(PokerPanel.java) 7.3.4 设计游戏主窗口类(Pai.java) 游戏界面中,添加3个命令按钮。button1为“玩家要牌”、button2为“玩家停牌”、button3为“重新开始”。 上述编程中,我们用了Card类描述牌,对Card的value取值(“A“,“2“, “3“, “4“, “5“, “6“, “7“, “8“, “9“, “10“, “J“, “Q“, “K“)和color取值(“黑桃“, “红桃“, “梅花“ , “方块“)。游戏规则也作了简化,只有两个玩家,也未对玩家属性(如:财富、下注、所持牌、持牌点数等)进行描述。实践表明,用Card、Poker类可以较好描述游戏逻辑。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号