⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bobing.java

📁 java实现的模拟博饼程序
💻 JAVA
字号:
import java.applet.AudioClip;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Bobing extends JApplet implements ActionListener
{	
	//在运行时务必记得参数设置:x=450,y=500,骰子length=60,点r=6;
	JLabel[] dieLabel=new JLabel[6];
	JLabel resultLabel;
	JTextField[] dieField=new JTextField[6];
	JTextField resultField;
	JButton rollButton;
	int die[] = new int [6];//这个记录每个骰子的随机数
	AudioClip sound;
	//定义组件
	public void init()
	{
		super.init();
		Container container=getContentPane();
		container.setLayout( new FlowLayout());
		container.setBackground(new Color(177,228,240));
		sound = getAudioClip(getDocumentBase(),"1.au");
		Icon bug=new ImageIcon("pic.gif");
		for(int i = 0;i < 6;i++)
		{
			dieLabel[i] = new JLabel("骰子"+(i+1));
			this.add(dieLabel[i]);
			dieField[i] = new JTextField(10);
			this.add(dieField[i]);
			
		}//设置显示骰子标签
			
		for(int i=0;i<6;i++)
		{
	 		dieLabel[i].setSize(70, 30);
			container.add(dieLabel[i]);
			dieField[i].setEditable( false );
			dieField[i].setSize(70, 20);
			dieField[i].setBackground(Color.white);
			dieField[i].setFont(new Font("黑体",Font.ITALIC,20));
			dieField[i].setHorizontalAlignment(JTextField.CENTER);
			dieField[i].setEditable(false);
			container.add(dieField[i]);
		}
		resultLabel=new JLabel("结果:");
		container.add(resultLabel);	
		resultField=new JTextField(20);
		resultField.setHorizontalAlignment(JTextField.CENTER);
		resultField.setBackground(Color.white);
		resultField.setFont(new Font("微软雅黑",Font.ITALIC,20));
		resultField.setEditable(false);
		container.add(resultField);
		rollButton = new JButton(bug);
		rollButton.setRolloverIcon(bug);

		rollButton.addActionListener( this );
		container.add(rollButton);		 	
		resultField.setEditable(false);		
	}//end method init 
	public void paint(Graphics g)
	{
		super.paint(g);	
		
		Graphics2D g2d = ( Graphics2D ) g;  // cast g to Graphics2D

	      // draw 2D ellipse filled with a blue-yellow gradient
	    g2d.setPaint( new GradientPaint(50,270,Color.RED,225,370, Color.YELLOW, true ) ); 
		g2d.fillOval(50,270,350,200);
		for(int count=0;count<=2;count++)
	 		drawtouzi(die[count],125+70*count,300,g);
		for(int count=3;count<=5;count++)
	 		drawtouzi(die[count],125+70*(count-3),370,g);
	}

	public void actionPerformed( ActionEvent actionEvent )
	{
		
		String result;
		result =rollDice();//rollDice返回String类型,结果存入result
		resultField.setText(result);
		repaint();
		sound.play();
	}
	
	public void drawtouzi(int n,int xVal,int yVal,Graphics g){
		g.setColor(new Color(249,250,170));
		g.fillRoundRect(xVal, yVal,60,60, 10, 10);
		if (n==1||n==4)
			g.setColor(Color.RED);
		else g.setColor(Color.BLACK);
		switch (n)
		{
			case 1:
			{
				g.fillOval(xVal+24, yVal+24, 12,12);
				break;
			}
			case 2:
			{
				g.fillOval(xVal+9, yVal+24, 12, 12);
				g.fillOval(xVal+39, yVal+24, 12, 12);
				break;
			}
			case 3:
			{
				g.fillOval(xVal+9, yVal+9, 12, 12);
				g.fillOval(xVal+24, yVal+24, 12, 12);
				g.fillOval(xVal+39,yVal+39, 12, 12);
				break;			
			}
			case 4:
			{
				g.fillOval(xVal+9, yVal+9, 12, 12);
				g.fillOval(xVal+9, yVal+39, 12, 12);
				g.fillOval(xVal+39, yVal+9, 12, 12);
				g.fillOval(xVal+39, yVal+39, 12, 12);
				break;			
			}
			case 5:
			{
				g.fillOval(xVal+9, yVal+9, 12, 12);
				g.fillOval(xVal+9, yVal+39, 12, 12);
				g.fillOval(xVal+39, yVal+9, 12, 12);
				g.fillOval(xVal+39, yVal+39, 12, 12);
				g.fillOval(xVal+24, yVal+24, 12, 12);
				break;	
			}
			case 6:
			{
				g.fillOval(xVal+14, yVal+9, 12, 12);
				g.fillOval(xVal+14, yVal+24, 12, 12);
				g.fillOval(xVal+14, yVal+39, 12, 12);
				g.fillOval(xVal+34, yVal+9, 12, 12);
				g.fillOval(xVal+34, yVal+24, 12, 12);
				g.fillOval(xVal+34, yVal+39, 12, 12);
				break;	
			}
		}
		
	}
	public String rollDice()
	{  
		
		int[] sameDie = new int[] {0,0,0,0,0,0};//此数组存入摇骰子时1~6相同的数有多少个
		String rollResult = "";//此字符串存入结果
		for(int i=0;i<=5;i++)
		{
			die[i]=1+(int)(Math.random()* 6);
			dieField[i].setText( Integer.toString(die[i]));
		}//产生随机数

		for(int count=0;count<=5;count++)      
		 switch (die[count])
		 {
		 case 1 : 
			 sameDie[0]++;
			 break;
		 case 2 :
			 sameDie[1]++;
			 break;
		 case 3 : 
			 sameDie[2]++;
			 break;
		 case 4 : 
			 sameDie[3]++;
			 break;
		 case 5 : 
			 sameDie[4]++;
			 break;
		 case 6 : 
			 sameDie[5]++;
			 break;
		 }//无其他情况,不加default  
  
		switch(sameDie[3])//先判断4的个数有几个,然后便于分类讨论
		{ 
		case 0:     
			for(int i = 0; i <= 5; i++)
			{  
				if(sameDie[i]==4)
					rollResult="四进,不错!";
				if(sameDie[i]==5)
				{
					for(int countx=0;countx<=5;countx++)
						if(sameDie[countx]==1)           	    	   
							rollResult ="五子带"+(countx+1)+"手气真好!";                     	
				}
				if(sameDie[i]==6)
				{
					if(i==1)
						rollResult="哇塞!恭喜!遍地锦";    
					else
						rollResult="呜呜~黑六勃";
				}              
				else 
					continue;//执行下一个循环
			}
			if(rollResult=="")
				rollResult="啥都没有,快去洗洗手吧!";
            break;
            
		case 1:
			for(int i=0;i<=5;i++)
			{
				if(sameDie[i]==4)
					rollResult ="嘿嘿,四进带一秀";       
				if(sameDie[i]==5)        	
					rollResult ="爽歪歪,五子带一秀";         	
				else 
					continue;
			}       
			if(sameDie[0]==1&&sameDie[1]==1&&sameDie[2] ==1&&sameDie[3]==1
					&&sameDie[4]==1&&sameDie[5]==1)
				rollResult="对堂,不可思议耶~";
			else if(rollResult =="")
				rollResult ="一秀,一般般啦~";      
			break;
			
		case 2:
         
			for(int i =0;i<=5;i++)
			{           
				if( sameDie[i]==4)
					rollResult = "四进带二举,好猛~";
			}
			if( rollResult =="")
				rollResult ="二举,凑合~";                 
			break;
			
		case 3:         
			rollResult ="三红,差点状元喔~";         
			break;
         
		case 4:
			int sum=0;//sum记录当状元时带几
			if(sameDie[0]==2)
				rollResult ="状元插金花,这怎么可能!!!神啊!";			
			else 
			{
				for(int countx=0;countx<=5;countx++)
				{
					if(sameDie[countx]==1)
						sum=sum+countx+1;
					else if(sameDie[countx]==2)
						sum=sum+(countx+1)*2;
				}
				rollResult = "状元带"+sum+",太强了!";
			}
			break;
			
		case 5:
			for(int countx=0;countx<=5;countx++)
				if(sameDie[countx]==1)           	    	   
					rollResult="五红带"+(countx+1);
			break;
          
		case 6:
			rollResult="六勃红,这不是真的吧~";
			break;
		}//switch     
		return rollResult;
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -