文件名称:java 蜘蛛纸牌源代码以及可运行的jar包
文件大小:133KB
文件格式:ZIP
更新时间:2014-09-23 07:30:55
java 蜘蛛纸牌源代码以及可运行的jar包
//整型变量,表示难度等级为:简单 public static final int EASY = 1; //整型变量,表示难度等级为:普通 public static final int NATURAL = 2; //整型变量,表示难度等级为:难 public static final int HARD = 3; //设定初始难度等级为简单 private int grade = Spider.EASY; private Container pane = null; //生成纸牌数组 private PKCard cards[] = new PKCard[104]; private JLabel clickLabel = null; private int c = 0; private int n = 0; private int a = 0; private int finish = 0; Hashtable table = null; private JLabel groundLabel[] = null; public static void main(String[] args){ Spider spider = new Spider(); spider.setVisible(true); } /** **构造函数 */ public Spider(){ setTitle("蜘蛛牌"); setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); //设置框架的大小 setSize(1024, 742); //生成SpiderMenuBar对象,并放置在框架之上 setJMenuBar(new SpiderMenuBar(this)); pane = this.getContentPane(); //设置背景颜色 pane.setBackground(new Color(0, 112, 26)); //将布局管理器设置成为null pane.setLayout(null); clickLabel = new JLabel(); clickLabel.setBounds(883, 606, 121, 96); pane.add(clickLabel); clickLabel.addMouseListener(new MouseAdapter(){ public void mouseReleased(MouseEvent me){ if (c < 60){ Spider.this.deal(); } } }); this.initCards(); this.randomCards(); this.setCardsLocation(); groundLabel = new JLabel[10]; int x = 20; for (int i = 0; i < 10; i++) { groundLabel[i] = new JLabel(); groundLabel[i] .setBorder(javax.swing.BorderFactory .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); groundLabel[i].setBounds(x, 25, 71, 96); x += 101; this.pane.add(groundLabel[i]); } this.setVisible(true); this.deal(); this.addKeyListener(new KeyAdapter(){ class Show extends Thread{ public void run(){ Spider.this.showEnableOperator(); } } public void keyPressed(KeyEvent e){ if (finish != 8) if (e.getKeyCode() == KeyEvent.VK_D && c < 60){ Spider.this.deal(); } else if (e.getKeyCode() == KeyEvent.VK_M){ new Show().start(); } } }); } /** **开始新游戏 */ public void newGame(){ this.randomCards(); this.setCardsLocation(); this.setGroundLabelZOrder(); this.deal(); } /** **返回值:int **返回牌的数量 */ public int getC(){ return c; } /** **设置等级 */ public void setGrade(int grade){ this.grade = grade; } /** **纸牌初始化 */ public void initCards(){ //如果纸牌已被赋值,即将其从框架的面板中移去 if (cards[0] != null){ for (int i = 0; i < 104; i++){ pane.remove(cards[i]); } } int n = 0; //通过难度等级,为n赋值 if (this.grade == Spider.EASY){ n = 1; } else if (this.grade == Spider.NATURAL){ n = 2; } else{ n = 4; } //为card赋值 for (int i = 1; i <= 8; i++){ for (int j = 1; j <= 13; j++){ cards[(i - 1) * 13 + j - 1] = new PKCard((i % n + 1) + "-" + j, this); } } //随机纸牌初始化 this.randomCards(); } /** **纸牌随机分配 */ public void randomCards(){ PKCard temp = null; //随机生成牌号 for (int i = 0; i < 52; i++){ int a = (int) (Math.random() * 104); int b = (int) (Math.random() * 104); temp = cards[a]; cards[a] = cards[b]; cards[b] = temp; } }