logo资料库

java模拟人工洗牌代码.doc

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
模拟人工洗牌 编写一个模拟人工洗牌的程序,将洗好的牌分别发给四个人。 使用结构 card 来描述一张牌,用随机方法来模拟人工洗牌的过程,最后将洗好的 52 张牌顺序分别发给四个人。 设计要求: 1)要求使用 java 类包中的 Math.Random()方法进行随机处理。 2)要求在 dos 控制台窗口中显示每个人手上的扑克牌 3)要求将每个人手上的 13 张牌按照四种花色,从小到大排列整齐后显示出来。 *4)可以设计成图形用户界面,通过按钮进行洗牌、发牌的动作,并按上面的要求显示东西南北四个人手上的牌型。 作者:方贵深 吉林大学珠海学院 import java.awt.*; import javax.swing.*; import javax.swing.border.BevelBorder; import javax.swing.border.SoftBevelBorder; import java.awt.event.*; public class Test extends JFrame implements ActionListener { private JButton swrapCardButton=new JButton("洗牌"); private JButton dealButton=new JButton("发牌"); //private JTextArea textArea=new JTextArea(); private JTextArea []textAreas=new JTextArea[52]; private JPanel panel1=new JPanel(new GridLayout(1,12,6,10)); private JPanel panel2=new JPanel(new GridLayout(1,12,6,10)); private JPanel panel3=new JPanel(new GridLayout(1,12,6,10)); private JPanel panel4=new JPanel(new GridLayout(1,12,6,10)); private JPanel panel5=new JPanel(new GridBagLayout()); private JLabel south=new JLabel("南"); private JLabel north=new JLabel("北"); private JLabel east=new JLabel("东"); private JLabel west=new JLabel("西"); Container container=null; Poker poker=null;
public Test() { super("洗牌程序"); container=this.getContentPane(); container.setLayout(null); this.setResizable(false); container.add(panel1); container.add(panel2); container.add(panel3); container.add(panel4); container.add(panel5); container.add(south); container.add(west); container.add(east); container.add(north); for(int i=0;i<52;i++) { panel1.add(textAreas[i]); textAreas[i]=new JTextArea(); textAreas[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED)); if(i<13) else if(i<26) else if(i<39) else panel2.add(textAreas[i]); panel3.add(textAreas[i]); panel4.add(textAreas[i]); } GridBagConstraints gbc=new GridBagConstraints(); gbc.anchor=GridBagConstraints.CENTER; gbc.fill=GridBagConstraints.NONE; //container.add(textArea,gbc); gbc.gridwidth=1; gbc.weightx=50; gbc.weighty=10; gbc.fill=GridBagConstraints.NONE; panel5.add(swrapCardButton,gbc); panel5.add(dealButton,gbc); east.setBounds(5,20,20,15); panel1.setBounds(5,45,830,85); south.setBounds(5,150,20,15); panel2.setBounds(5,175,830,85); west.setBounds(5,300,20,15); panel3.setBounds(5,325,830,85); north.setBounds(5,445,20,15); panel4.setBounds(5,465,830,85); panel5.setBounds(5,575,800,50); //textArea.setBorder(BorderFactory.createRaisedSoftBevelBorder()); Font font=new Font("宋体",Font.BOLD,20); dealButton.setFont(font);
swrapCardButton.setFont(font); dealButton.addActionListener(this); swrapCardButton.addActionListener(this); } public static void main(String[] args) { Test test=new Test(); test.setSize(850,700); test.setVisible(true); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // TODO Auto-generated method stub } public void actionPerformed(ActionEvent e) { JButton button=(JButton)e.getSource(); if(button==swrapCardButton) { //点击了洗牌按钮 poker=new Poker(); for(int i=0;i<52;i++) { int j=(int)(52*Math.random()); Object []tStrings=poker.card[i]; poker.card[i]=poker.card[j]; poker.card[j]=tStrings; } } else //点击了发牌按钮 { sort(); for(int i=0;i<52;i++) { textAreas[i].setText(""); if(poker.card[i][1].toString().indexOf("10")==-1) //牌号不是10 textAreas[i].setText(poker.card[i][1]+" "+poker.card[i][0]+ "\n\n\n\n "+poker.card[i][1]+" "+poker.card[i][0]); else textAreas[i].setText(poker.card[i][1]+" "+poker.card[i][0]+ "\n\n\n\n "+poker.card[i][1]+" "+poker.card[i][0]); } } } private void sort() { for(int i=0;i<4;i++) { for(int j=i*13;j<(i+1)*13-1;j++) { int t=j; for(int k=j+1;k<(i+1)*13;k++)
t=k; t=k; } } if(t!=j) { Object []tObject=poker.card[t]; poker.card[t]=poker.card[j]; poker.card[j]=tObject; } } } } private class Poker { private Object [][]card={ { //花色顺序 Integer p2=(Integer)poker.card[t][2]; Integer q2=(Integer)poker.card[k][2]; //大小顺序 Integer p3=(Integer)poker.card[t][3]; Integer q3=(Integer)poker.card[k][3]; if(p3.compareTo(q3)==1) { } else if(p3.compareTo(q3)==0&&p2.compareTo(q2)==1) { Integer(3)},{" ♦ ","4",new Integer(1),new Integer(10)},{" ♦ ","J",new Integer(1),new {" ♦ ","A",new Integer(1),new Integer(1)},{" ♦ ","2",new Integer(1),new Integer(2)},{" ♦ Integer(1),new Integer(4)},{" ♦ ","5",new ","3",new Integer(1),new Integer(5)},{" ♦ ","6",new Integer(1),new Integer(6)},{" ♦ ","7",new Integer(1),new Integer(7)}, {" ♦ ","8",new Integer(1),new Integer(8)},{" ♦ ","9",new Integer(1),new Integer(9)},{" ♦ ","10",new Integer(11)},{" ♦ ","Q",new Integer(1),new Integer(1),new Integer(12)},{" ♦ ","K",new Integer(1),new Integer(13)},{" ♣ ","A",new Integer(2),new Integer(1)},{" ♣ ","2",new Integer(2),new Integer(2)},{" ♣ ","3",new Integer(2),new Integer(3)},{" ♣ ","4",new Integer(2),new Integer(4)},{"♣","5",new Integer(2),new Integer(5)}, {" ♣ ","6",new Integer(2),new Integer(6)},{" ♣ ","7",new Integer(2),new Integer(7)},{" ♣ Integer(8)},{" ♣ ","9",new ","8",new Integer(2),new Integer(9)},{" ♣ ","10",new Integer(2),new Integer(10)},{" ♣ ","J",new Integer(2),new Integer(11)},{" ♣ ","Q",new Integer(2),new Integer(12)},{"♣","K",new Integer(2),new Integer(13)}, {" ♥ ","A",new Integer(3),new Integer(1)},{" ♥ ","2",new Integer(3),new Integer(2)},{" ♥ ","3",new Integer(3)},{" ♥ ","4",new Integer(3),new Integer(4)},{" ♥ ","5",new Integer(3),new Integer(5)},{" ♥ ","6",new Integer(3),new Integer(6)},{" ♥ ","7",new Integer(3),new Integer(7)},{" ♥ ","8",new Integer(3),new Integer(8)},{" ♥ ","9",new Integer(3),new Integer(9)},{" ♥ ","10",new Integer(3),new Integer(10)}, {" ♥ ","J",new Integer(3),new Integer(11)},{" ♥ ","Q",new Integer(3),new Integer(12)},{" ♥ ","K",new Integer(3),new Integer(1)},{" ♠ ","2",new Integer(4),new Integer(2)},{" ♠ ","3",new Integer(4),new Integer(3)},{" ♠ ","4",new Integer(4),new Integer(4)},{"♠","5",new Integer(4),new Integer(5)},{"♠","6",new Integer(4),new Integer(6)}, {" ♠ ","7",new Integer(4),new Integer(7)},{" ♠ ","8",new Integer(4),new Integer(8)},{" ♠ ","9",new Integer(4),new Integer(10)},{" ♠ ","J",new Integer(13)},{" ♠ ","A",new Integer(9)},{" ♠ ","10",new Integer(4),new Integer(4),new Integer(2),new Integer(3),new
Integer(4),new Integer(11)},{" ♠ ","Q",new Integer(4),new Integer(12)},{" ♠ ","K",new Integer(4),new Integer(13)} }; } }
分享到:
收藏