首页 | 注册 | 登陆
首页 >> 技术专栏 >> java文章 >> java基础 

洗牌和发牌模拟


作者java 来源java 加入时间:2006年02月21日
摘要:
洗牌和发牌模拟
程序运行图:


  

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info2/a_a89710763469ab83.htm




洗牌和发牌模拟


站点:爱心种子小博士 关键字:洗牌和发牌模拟




洗牌和发牌模拟
程序运行图:


  
//洗牌和发牌模拟
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

   public class DeckofCards27 extends JApplet implements 
       ActionListener{
    private Card deck[];
    private int currentCard;
    private JButton dealButton,shuffleButton;
    private JTextField displayCard;
     Icon icon;

   public void init(){
     Container con=getContentPane();
     con.setLayout(new GridLayout(3,1));
     String faces[]={"1","2","3","4","5","6","7","8",
            "9","10","11","12","13"};
     String suits[]={"红心","方块","梅花","黑桃"};
     icon=new ImageIcon("image/remove.gif");
     deck=new Card[52];
     currentCard=-1;

    for(int i=0;i<deck.length;i++)
       deck[i]=new Card(faces[i%13],suits[i/13]);
    
    dealButton=new JButton("发牌",icon);
    dealButton.addActionListener(this);
    shuffleButton=new JButton("洗牌");
    shuffleButton.addActionListener(this);
    shuffleButton.setBackground(Color.red);
    displayCard=new JTextField(20);
    displayCard.setEditable(false);
    con.add(dealButton);
    con.add(shuffleButton);
    con.add(displayCard);
 }

 public void actionPerformed(ActionEvent e){
   JButton bu=(JButton)e.getSource();
     if(bu==dealButton){
       Card dealt=dealCard();
       if(dealt!=null){
          displayCard.setText(dealt.toString());
          showStatus("Card#: "+currentCard);
       }else{
           displayCard.setText("NO MORE CARDS TO DEAL");
            showStatus("sHOFFLE CARDS TO CONTINUS");

            }
      }else if(bu==shuffleButton){
        displayCard.setText("SHOFFLING...");
         showStatus("");
         shuffle();

       displayCard.setText("Deck is shoffled");
       }
   }

//洗牌

    public void shuffle(){
      currentCard=-1;
      for(int i=0;i<deck.length;i++){
         int j=(int)(Math.random()*52);
         Card temp=deck[i];
         deck[i]=deck[j];
         deck[j]=temp;
       }
       dealButton.setEnabled(true);
    }
       

  public  Card dealCard(){
    if(++currentCard<deck.length)
       return deck[currentCard];
    else{
          dealButton.setEnabled(false);
           return null;
    }
   } 

}



   
   class Card{
     private String face;
     private  String suit;
     public Card(String f,String s){
       face=f;
       suit=s;
     }

     public String toString(){
        return " "+suit+face;
     }

     
}



发布人:love
→ 推荐给我的好友 → 报告错误链接
上篇文章:判断闰年与日、月、年是否有效的函数
下篇文章:实现排列组合查询算法
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“洗牌和发牌模拟”相关内容 中“洗牌和发牌模拟”相关内容
中“洗牌和发牌模拟”相关内容 中“洗牌和发牌模拟”相关内容
中“洗牌和发牌模拟”相关内容 中“洗牌和发牌模拟”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP