石頭剪刀布人機對戰

一.使用說明

1.“構造規律展示區”僅僅記錄“智能算法區”的“石頭”、“剪刀”、“布”三個按鈕,目的是讓用戶自己構造稍有規律的出拳序列,方便用戶按照“智能算法區”自己構造的出拳序列去點擊“隨機算法區”的石頭”、“剪刀”、“布”三個按鈕,以對比兩個算法的優劣。

2.“智能算法區”的“隨機生成”按鈕中,人使用了隨機算法,計算機使用了智能算法;而“隨機算法區”的“隨機生成”按鈕中,人和計算機同時使用了隨機算法。

二.程序的適用範圍

本程序的智能算法,在每一拳都謹慎思考,並總結失敗的玩家身上,更能體現智能算法的優勢。

對於完全不經思考,快速出拳的玩家,由於隨機性太大,算法的優勢不明顯。當盤數超過200時,勝、敗率呈現統計學規律,基本穩定在0.30—0.36之間。

三.推測

1.經過人類意識作用的社會活動,基本上會呈現出某種規律。即人的意識是有規律,有模式可循的。根據每個人的思考習慣不同而不相同;

2.人思考的時間越長,是否規律性越強?

3.人的潛意識是否也存在規律或者模式?



package jiandaoshitoubu;

import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class jiandaoshitoubu {
	
	public static void main(String[] args) {
	GameFrame gf = new GameFrame();
	gf.setVisible(true);
	
	}

}

class GameFrame extends JFrame implements ActionListener{

	private static final long serialVersionUID = -7985988417690464374L;
	private int result,ren;
	public JTextArea jtext= new JTextArea(28,28);
	public JTextArea jtext2= new JTextArea(28,28);
	public JTextArea jtext3= new JTextArea(24,32);
	
	int sum=0,sum_ying=0,sum_shu=0;
	int[] xulie_ren = new int[1000];
	
	public GameFrame(){
		try {
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
		} catch (ClassNotFoundException e2) {
			e2.printStackTrace();
		} catch (InstantiationException e2) {
			e2.printStackTrace();
		} catch (IllegalAccessException e2) {
			e2.printStackTrace();
		} catch (UnsupportedLookAndFeelException e2) {
			e2.printStackTrace();
		}
	    SwingUtilities.updateComponentTreeUI(this);
		this.setTitle("剪刀石頭布");

		setSize(1000,600); 
        this.setResizable(true);   
        setLocation(160,100);  
        JMenuBar mbar = new JMenuBar();  
        this.setJMenuBar(mbar);  
        JMenu gameMenu = new JMenu("遊戲");  
        mbar.add(makeMenu(gameMenu, new Object[] {  
            "開始","清除右邊兩個框的內容", null,"退出"  
                       }, this));  
        JMenu lookMenu =new JMenu("視圖");  
        mbar.add(makeMenu(lookMenu,new Object[] {  
            "Metal","Motif","Windows"  
                       },this));  
        JMenu helpMenu = new JMenu("幫助");  
        mbar.add(makeMenu(helpMenu, new Object[] {  
            "關於"  
                        }, this));
		
        JPanel gridPanel = new JPanel();
        gridPanel.setLayout(new GridLayout(1,3));
        JPanel Jpanel1 = new JPanel();
        JPanel Jpanel2 = new JPanel();
        JPanel Jpanel3 = new JPanel();
        gridPanel.add(Jpanel1);
        gridPanel.add(Jpanel2);
        gridPanel.add(Jpanel3);
        
        JLabel jlabel = new JLabel("                                                                                 智能算法區                                                                                   ");
        JButton jButtonJiandao = new JButton("剪刀");
        JButton jButtonShitou = new JButton("石頭");
        JButton jButtonBu = new JButton("布");
        JButton jButton100 = new JButton("隨機生成100盤");
        JButton jButton50 = new JButton("隨機生成50盤");
        JButton jButton200 = new JButton("隨機生成200盤");
        JButton jButton500 = new JButton("隨機生成500盤");
        JButton jButton1000 = new JButton("隨機生成1000盤");
        JLabel jlabel2 = new JLabel("                                                                                 隨機算法區                                                                                   ");
        JButton jButtonJiandaor = new JButton("剪刀");
        JButton jButtonShitour = new JButton("石頭");
        JButton jButtonBur = new JButton("布");
        JButton jButton100r = new JButton("隨機生成100盤");
        JButton jButton50r = new JButton("隨機生成50盤");
        JButton jButton200r = new JButton("隨機生成200盤");
        JButton jButton500r = new JButton("隨機生成500盤");
        JButton jButton1000r = new JButton("隨機生成1000盤");
        JLabel jlabel3 = new JLabel("                                                                                 構造規律展示區                                                                                   ");
        Jpanel1.add(jlabel);
        Jpanel1.add(jButtonJiandao);
        Jpanel1.add(jButtonShitou);
        Jpanel1.add(jButtonBu);
        Jpanel1.add(jButton50);
        Jpanel1.add(jButton100);
        Jpanel1.add(jButton200);
        Jpanel1.add(jButton500);
        Jpanel1.add(jButton1000);
        Jpanel1.add(jlabel2);
        Jpanel1.add(jButtonJiandaor);
        Jpanel1.add(jButtonShitour);
        Jpanel1.add(jButtonBur);
        Jpanel1.add(jButton50r);
        Jpanel1.add(jButton100r);
        Jpanel1.add(jButton200r);
        Jpanel1.add(jButton500r);
        Jpanel1.add(jButton1000r);
        Jpanel1.add(jlabel3);
        Jpanel1.add(jtext3);
        jButtonJiandao.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=0;
	        	xulie_ren[sum]= 0;
	        	sum++;
	        	result=Algroithm();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	jtext3.append("剪刀—>");
	        }            
	    });
        jButtonShitou.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=1;
	        	xulie_ren[sum]= 1;
	        	sum++;
	        	result=Algroithm();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	jtext3.append("石頭—>");
	        }            
	    });
        jButtonBu.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=2;
	        	xulie_ren[sum]= 2;
	        	sum++;
	        	result=Algroithm();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	jtext3.append("布—>");
	        }            
	    });
        jButton50.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[50];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<50;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton100.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[100];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<100;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton200.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[200];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<200;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton500.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[500];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<500;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton1000.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[1000];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<1000;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        
  /*==================================華麗的分割線=========================================*/      
        
        jButtonJiandaor.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=0;
	        	xulie_ren[sum]= 0;
	        	sum++;
	        	result=Algroithm_random();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        }            
	    });
        jButtonShitour.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=1;
	        	xulie_ren[sum]= 1;
	        	sum++;
	        	result=Algroithm_random();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        }            
	    });
        jButtonBur.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	ren=2;
	        	xulie_ren[sum]= 2;
	        	sum++;
	        	result=Algroithm_random();
	        	judge(result,ren);
	        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        }            
	    });
        jButton50r.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[50];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<50;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm_random();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton100r.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[100];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<100;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm_random();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton200r.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[200];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<200;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm_random();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton500r.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[500];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<500;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm_random();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jButton1000r.addActionListener(new ActionListener() {
	        public void actionPerformed(ActionEvent e) {
	        	sum=0;sum_ying=0;sum_shu=0;
	        	try {
					finalize();
				} catch (Throwable e1) {
					e1.printStackTrace();
				}
	        	int[] xulie_ren = new int[1000];
	        	jtext.setText("");
	        	jtext2.setText("");
	        	for(int n=0;n<1000;n++)
	        	{
	        		int number = new Random().nextInt(3);
	        		ren=number;
		        	xulie_ren[sum]= number;
		        	sum++;
		        	result=Algroithm_random();
		        	judge(result,ren);
		        	jtext2.append(sum+":此時,您的勝率爲"+String.format("%.2f",(double)sum_ying/sum)+";計算機的勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        	}
	        }            
	    });
        jtext.setLineWrap(true);
        Font x = new Font("黑體",1,18);
        jtext.setFont(x);
        JScrollPane scroll=new JScrollPane(jtext);
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
        scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jtext.setCaretPosition(jtext.getText().length());
        Jpanel2.add(scroll);
   
		jtext2.setLineWrap(true);
        Font x2 = new Font("黑體",1,18);
        jtext2.setFont(x2);
        JScrollPane scroll2=new JScrollPane(jtext2);
        scroll2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
        scroll2.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jtext2.setCaretPosition(jtext2.getText().length());
        Jpanel3.add(scroll2);
        
        jtext3.setLineWrap(true);
        Font x3 = new Font("黑體",1,14);
        jtext3.setFont(x3);
        JScrollPane scroll3=new JScrollPane(jtext3);
        scroll3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); 
        scroll3.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
        jtext3.setCaretPosition(jtext3.getText().length());
        Jpanel1.add(scroll3);
        
        add(gridPanel,BorderLayout.CENTER);
	}
	
	public void judge(int count,int ren)
	{
		if((count == 0 && ren ==0)||(count == 1 && ren ==1)||(count == 2 && ren ==2))  //剪刀
		{
			if(count == 0)
				jtext.append(sum+":平局。你出的剪刀,計算機出的也是剪刀。"+"\n");
			else if(count == 1)
				jtext.append(sum+":平局。你出的石頭,計算機出的也是石頭。"+"\n");
			else
				jtext.append(sum+":平局。你出的布,計算機出的也是布。"+"\n");
		}
		else if(count == 0 && ren == 1)
		{
			jtext.append(sum+":你贏了。你出的石頭,計算機出的是剪刀。"+"\n");
			sum_ying++;
		}
		else if(count == 0 && ren == 2)
		{
			jtext.append(sum+":你輸了。你出的布,計算機出的是剪刀。"+"\n");
			sum_shu++;
		}
		else if(count == 1 && ren == 2)
		{
			jtext.append(sum+":你贏了。你出的布,計算機出的是石頭。"+"\n");
			sum_ying++;
		}
		else if(count == 1 && ren == 0)
		{
			jtext.append(sum+":你輸了。你出的剪刀,計算機出的是石頭。"+"\n");
			sum_shu++;
		}
		else if(count == 2 && ren == 0)
		{
			jtext.append(sum+":你贏了。你出的剪刀,計算機出的是布。"+"\n");
			sum_ying++;
		}
		else if(count == 2 && ren == 1)
		{
			jtext.append(sum+":你輸了。你出的石頭,計算機出的是布。"+"\n");
			sum_shu++;
		}
	}
	
	public int Algroithm_random()  //石頭剪刀布核心算法
	{
		int number = new Random().nextInt(3);
		return number;
	}
	
	public int Algroithm()  //石頭剪刀布核心算法
	{
		if(sum == 1 || sum ==2)
		{
			int number = new Random().nextInt(3);
			return number;
		}
		else
		{
			for(int n=2;sum-n>0;n++)
			{
				//長度爲n模式下的預測
				if(search(n)==0)  //下一把預測人出剪刀的概率大於0.5
					return 1;
				else if(search(n)==1)//下一把預測人出石頭的概率大於0.5
					return 2;
				else if(search(n)==2)//下一把預測人出布的概率大於0.5
					return 0;
				else if(search(n)==-1)//當前字符含本身的前n-1字符串在其本身之前不存在
				{
					int number = new Random().nextInt(3);
					return number;
				}	
				else//下一把預測人的拳型中沒有大於0.5的拳型
					continue;
			}
			int number = new Random().nextInt(3);
			return number;
		}
	}
	
	public int search(int len)
	{
		int jiandao=0,shitou=0,bu=0,sum1;
		for(int i=0;i<=sum-1-len;i++)
		{
			int j;
			for(j=0;j<len-1;j++)
			{
				if(xulie_ren[i+j]!=xulie_ren[sum-len+j])
					break;
			}
			if(j==len-1)
			{
				if(xulie_ren[i+j]==0)
					jiandao++;
				else if(xulie_ren[i+j]==1)
					shitou++;
				else
					bu++;
			}	
		}
		if(jiandao==0&&shitou==0&&bu==0)
			return -1;
		sum1=jiandao+shitou+bu;
		if((double)(jiandao/sum1)>0.5)
			return 0;
		if((double)(shitou/sum1)>0.5)
			return 1;
		if((double)(bu/sum1)>0.5)
			return 2;
		return -2;
		
	}
	
	public  JMenu makeMenu(Object parent, Object items[], Object target)
    {
        JMenu m = null;
        if(parent instanceof JMenu)
            m = (JMenu)parent;
        else if(parent instanceof String)
            m = new JMenu((String)parent);
        else
        	return null;
        for(int i = 0; i < items.length; i++)
            if(items[i] == null)
            	m.addSeparator();
           else
        	   m.add(makeMenuItem(items[i], target));
           return m;
    }
	
	public  JMenuItem makeMenuItem(Object item, Object target){
        JMenuItem r = null;
        if(item instanceof String)
           r = new JMenuItem((String)item);
       else if(item instanceof JMenuItem)
           r = (JMenuItem)item;
       else
                return null;
        if(target instanceof ActionListener)
            r.addActionListener((ActionListener)target);
        return r;
    }
	
	//構造剪刀石頭布遊戲的單選按鈕式菜單項
    public  JRadioButtonMenuItem makeRadioButtonMenuItem(
     Object item, Object target){
      JRadioButtonMenuItem r = null;
      if(item instanceof String)
         r = new JRadioButtonMenuItem((String)item);
     else if(item instanceof JRadioButtonMenuItem)
         r = (JRadioButtonMenuItem)item;
      else
      	           return null;
      if(target instanceof ActionListener)
         r.addActionListener((ActionListener)target);
     return r;
    }
    
    public void restart(){
      
     }
    
    public void actionPerformed(ActionEvent e){
        String arg=e.getActionCommand();
        try{
           if (arg.equals("Windows"))
        	   UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
           else if(arg.equals("Motif"))
               UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
           else if(arg.equals("Metal"))
        	   UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel" );
           SwingUtilities.updateComponentTreeUI(this);
        }catch(Exception ee){}
       
        if(arg.equals("開始"))
        {
	        sum=0;sum_ying=0;sum_shu=0;
	        try {
	    		finalize();
	    	} catch (Throwable e1) {
	    	    e1.printStackTrace();
	    	}
	        jtext.setText("");
	        jtext2.setText("");
	        jtext3.setText("");
	    }

    	if(arg.equals("清除右邊兩個框的內容"))
    	{
	       	jtext3.append("共"+sum+"盤,計算機勝率爲"+String.format("%.2f",(double)sum_shu/sum)+"\n");
	        sum=0;sum_ying=0;sum_shu=0;
	       	try {
				finalize();
			} catch (Throwable e1) {
				e1.printStackTrace();
			}
	        jtext.setText("");
	        jtext2.setText("");
    	}
        
        if(arg.equals("關於"))
            JOptionPane.showMessageDialog(this, "剪刀石頭布程序僅爲本人的業餘研究,歡迎提供改進意見~~——By qq:996169482", "關於", 0);
        if(arg.equals("退出"))
            System.exit(0);
    }
}

</pre><pre name="code" class="java"><p>
</p>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章