《Java扑克牌课件》由会员分享,可在线阅读,更多相关《Java扑克牌课件(9页珍藏版)》请在金锄头文库上搜索。
1、Java扑克牌课件扑克牌课件1.题目要求和程序思路题目要求和程序思路2.程序讲解程序讲解3.遇到的困难和不足遇到的困难和不足题目要求和思路题目扑克牌要求设计一个Card类代表扑克牌,每张牌都有自己的花色和大小DeskOfCards类保存52张扑克牌,设计洗牌、发一张牌、报告剩余牌数的方法思路开始:按照题目的要求,做类和方法。后来:因为要做面板的缘故,所以简化了程序,再做方法感觉多余,也容易出错主程序import javax.swing.JFrame;public class Shixingpublic static void main(String args)JFrame frame =new
2、 JFrame (搞死人的扑克牌搞死人的扑克牌);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(new Card();frame.pack();frame.setVisible(true);Card(1)import java.awt.event.*;import java.awt.*;import java.util.ArrayList;import javax.swing.*;public class Card extends JPanelprivate JButton xip
3、ai,fapai;/两个按两个按钮的定的定义private JLabel label;private int count=52;/对于于总剩余牌数的剩余牌数的计数器数器private ArrayList card = new ArrayList(); private ArrayList bao = new ArrayList(); public void Card()Card(2)String card1 = 黑桃黑桃, 红桃桃, 梅花梅花, 方方块 ; /定定义两个数两个数组方便方便对card赋值String card2 = A, 2, 3, 4, 5, 6, 7, 8, 9, 10,J,
4、Q, K ;/这里里设定定52张牌牌for (int i = 0; i = 3; i+) for (int j = 0; j = 12; j+) card.add(card1i + card2j);bao=card;xipai=new JButton(洗牌洗牌); /两个按两个按钮的定的定义fapai=new JButton(发牌牌); ButtonListener listener=new ButtonListener(); /同同时对两个按两个按钮进行行监听听xipai.addActionListener(listener);fapai.addActionListener(listener
5、); Card(3)label=new JLabel(请洗牌或是洗牌或是发牌牌);setPreferredSize(new Dimension(320,80);/设定背景色和面板大小定背景色和面板大小setBackground(Color.cyan); add(fapai);/添加按添加按钮和文档和文档add(xipai);add(label); Card(4)private class ButtonListener implements ActionListenerpublic void actionPerformed (ActionEvent event) if(event.getSour
6、ce()=xipai) card=bao;/初始化牌初始化牌组 count=52;/重新重新设定定计数器数器 else if(event.getSource()=fapai) if(count!=0)/判定牌是否判定牌是否发完完 count=count-1; int r = (int)(Math.random() * card.size(); / 获取随即数取随即数label.setText(抽取的牌抽取的牌为+card.get(r)+,剩余扑克牌数剩余扑克牌数为+count);/ 输出扑克牌出扑克牌card.remove(r); / 从从ArrayList中去掉已抽到了扑克牌中去掉已抽到了扑
7、克牌 else label.setText(牌已牌已经抽完抽完); 困难和不足1.遇到的困难,那个洗牌程序开始不会,后来遇到的困难,那个洗牌程序开始不会,后来发现既然我发牌是乱发,洗牌也就无所谓发现既然我发牌是乱发,洗牌也就无所谓了,将洗牌改成将整个牌组初始化。定义了,将洗牌改成将整个牌组初始化。定义的类,方法和面板我不能很好的结合在一的类,方法和面板我不能很好的结合在一起,所以到最后我不得不得放弃定义好的起,所以到最后我不得不得放弃定义好的类和方法改成的上面的形式类和方法改成的上面的形式2.不足:这个程序还是相对简单,实用价值几不足:这个程序还是相对简单,实用价值几乎为零希望大家提出意见和改进乎为零希望大家提出意见和改进最后谢谢大家