資源描述:
《Java撲克牌課件》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、Java撲克牌課件1.題目要求和程序思路2.程序講解3.遇到的困難和不足題目要求和思路題目撲克牌要求設計一個Card類代表撲克牌,每張牌都有自己的花色和大小DeskOfCards類保存52張撲克牌,設計洗牌、發(fā)一張牌、報告剩余牌數(shù)的方法思路開始:按照題目的要求,做類和方法。后來:因為要做面板的緣故,所以簡化了程序,再做方法感覺多余,也容易出錯主程序importjavax.swing.JFrame;publicclassShixing{publicstaticvoidmain(String[]args){JFrameframe=newJFrame("搞死人的
2、撲克牌");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(newCard());frame.pack();frame.setVisible(true);}}Card(1)importjava.awt.event.*;importjava.awt.*;importjava.util.ArrayList;importjavax.swing.*;publicclassCardextendsJPanel{privateJButtonxipai,fapa
3、i;//兩個按鈕的定義privateJLabellabel;privateintcount=52;//對于總剩余牌數(shù)的計數(shù)器privateArrayListcard=newArrayList();privateArrayListbao=newArrayList();publicvoidCard()Card(2)String[]card1={"黑桃","紅桃","梅花","方塊"};//定義兩個數(shù)組方便對card賦值String[]card2={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};//這
4、里設定52張牌for(inti=0;i<=3;i++){for(intj=0;j<=12;j++){card.add(card1[i]+card2[j]);bao=card;}}xipai=newJButton("洗牌");//兩個按鈕的定義fapai=newJButton("發(fā)牌");ButtonListenerlistener=newButtonListener();//同時對兩個按鈕進行監(jiān)聽xipai.addActionListener(listener);fapai.addActionListener(listener);Card(3)label=
5、newJLabel("請洗牌或是發(fā)牌");setPreferredSize(newDimension(320,80));//設定背景色和面板大小setBackground(Color.cyan);add(fapai);//添加按鈕和文檔add(xipai);add(label);}Card(4)privateclassButtonListenerimplementsActionListener{publicvoidactionPerformed(ActionEventevent){if(event.getSource()==xipai){card=bao;
6、//初始化牌組count=52;//重新設定計數(shù)器}elseif(event.getSource()==fapai){if(count!=0)//判定牌是否發(fā)完{count=count-1;intr=(int)(Math.random()*card.size());//獲取隨即數(shù)label.setText("抽取的牌為"+card.get(r)+",剩余撲克牌數(shù)為"+count);}//輸出撲克牌card.remove(r);//從ArrayList中去掉已抽到了撲克牌}elselabel.setText("牌已經(jīng)抽完");}}}}困難和不足1.遇到的困難
7、,那個洗牌程序開始不會,后來發(fā)現(xiàn)既然我發(fā)牌是亂發(fā),洗牌也就無所謂了,將洗牌改成將整個牌組初始化。定義的類,方法和面板我不能很好的結合在一起,所以到最后我不得不得放棄定義好的類和方法改成的上面的形式2.不足:這個程序還是相對簡單,實用價值幾乎為零希望大家提出意見和改進最后謝謝大家