博饼小游戏java源代码

厦门中秋博饼程序!(JAVA编写)
/*博饼,这是一个Applet程序,要求:记录已经获取的每种奖品的数目,如果某种奖品用完了,再博出的相应点数不获奖。
游戏结束的条件是:状元已经产生,而且奖品已经用完。跟踪每个获奖过程,一直到游戏结束。游戏结束时,提示用户游戏已经结束,并提示用户重新开始一局,开始新的游戏。

复制后保存为.java文件,编译后,再写一个HTML文件(附在2楼),保存在同一目录下
运行“appletviewer Cake.html”就可以看到运行界面了!,博饼的规则附在3楼,谢谢!有什么不理解的地方,欢迎发短信
共同探讨!*/

import java.awt.*; // Container, FlowLayout
import java.awt.event.*; // ActionEvent, ActionListener

import javax.swing.*; // JApplet, JButton, JLabel, JTextField

public class Cake extends JApplet implements ActionListener {

//定义色子点数的总个数,fre代表frequency
int[] fre = new int[7]; //牺牲一个空间来换取程序的可读性

int[] die = new int[7];//各色子的点数

int zhuangyuan = 0; //统计状元数
int duitang = 0; //统计对堂数
int sanhong = 0; //统计三红数
int sijin = 0; //统计四进数
int erju = 0; //统计二举数
int yixiu = 0; //统计一秀数

String result = " ";//用于输出获奖结果

JLabel[] dieLabel = new JLabel[7];
JTextField[] dieField = new JTextField[7];
JButton rollButton;


public void init(){
Container container = getContentPane();
container.setLayout( new FlowLayout() );

// create label and text field for die 1
for(int i = 1;idieLabel[i] = new JLabel( "Die"+i);
container.add( dieLabel[i] );
dieField[i] = new JTextField( 10 );
dieField[i].setEditable( false );
container.add( dieField[i] );
}


// create button user clicks to roll dice
rollButton = new JButton( "Roll Dice" );
rollButton.addActionListener( this );
container.add( rollButton );


}//end for init

public void paint(Graphics g){
super.paint(g);
g.drawString(result,20,150);
}

public void actionPerformed( ActionEvent e ){

for(int i = 1;ifre[i] = 0 ;
}

rollDice();

displayMessage();
repaint();
}





public void rollDice(){
// pick random die values
for(int i = 1;idie[i] = 1 + ( int )(Math.random() * 6);
fre[die[i]]++;
dieField[i].setText( Integer.toString( die[i] ) );//display result in the textfiled
}

}//end for rollDice



public void displayMessage(){
switch(fre[4]){
case 6 : showStatus("六勃红");
if(zhuangyuan==0) zhuangyuan++;
break;
case 5 : showStatus("五红");
if(zhuangyuan==0) zhuangyuan++;

break;
case 4 : if(fre[1]==2) { showStatus("状元插金华"); if(zhuangyuan==0) zhuangyuan++;}
else {showStatus("状元"); if(zhuangyuan==0) zhuangyuan++;} break;
case 3 : showStatus("三红"); if(sanhong<4) sanhong++; break;
case 2 : if(fre[1]==4||fre[2]==4||fre[3]==4||fre[5]==4||fre[6]==4){
showStatus("四进带二举");
if(sijin<8) sijin++;
if(erju<16) erju++;
}
else{
showStatus("二举");
if(erju<16) erju++;
}
break;
case 1 : if(fre[1]==5||fre[2]==5||fre[3]==5||fre[5]==5||fre[6]==5){
showStatus("五子带一秀");
if(zhuangyuan<1) zhuangyuan++;
if(yixiu<32) yixiu++;
}
else
if(fre[1]==4||fre[2]==4||fre[3]==4||fre[5]==4||fre[6]==4){
showStatus("四进带一秀");
if(sijin<8) sijin++;
if(yixiu<32) yixiu++;
}
else
if(fre[1]==1&&fre[2]==1&&fre[3]==1&&fre[5]==1&&fre[6]==1){
showStatus("对堂");
if(duitang<2) duitang++;
}
else
{
showStatus("一秀");
if(yixiu<32) yixiu++;
}
break;
case 0 : if(fre[2]==6||fre[3]==6||fre[5]==6||fre[6]==6){
showStatus("六勃黑");
if(zhuangyuan<1) zhuangyuan++;
}
else
if(fre[1]==6){
showStatus("遍地锦");
if(zhuangyuan<1) zhuangyuan++;
}
else
if(fre[1]==5||fre[2]==5||fre[3]==5||fre[5]==5||fre[6]==5){
showStatus("五子");
if(zhuangyuan<1) zhuangyuan++;
}
else
if(fre[1]==4||fre[2]==4||fre[3]==4||fre[5]==4||fre[6]==4){
showStatus("四进");
if(sijin<8) sijin++;
}
else
{
showStatus("罚黑");
}

break;



}//end for switch

result ="状元:\t" + zhuangyuan +"\n" + "对堂:\t" + duitang + "\n" + "三红:\t" + sanhong + "\n" +
"四进:\t" +sijin + "\n" + "二举:\t" + erju + "\n" + "一秀:\t" + yixiu +"\n";

if(zhuangyuan == 1 && duitang == 2 && sanhong ==4 && sijin ==8 && erju == 16 && yixiu == 32){
JOptionPane.showMessageDialog(null,"奖品已全部奖完了!","Over",https://www.360docs.net/doc/5f4199968.html,RMATION_MESSAGE);
zhuangyuan = 0;
duitang = 0;
sanhong = 0;
sijin = 0;
erju = 0;
yixiu = 0;
JOptionPane.showMessageDialog(null,"重新开始游戏!","Over",https://www.360docs.net/doc/5f4199968.html,RMATION_MESSAGE);
}//end for if


}//end for displayMessage
}

--------

html>





把红色字体的内容复制后,存盘为“Cake.html”,跟Cake.java存放在同一个目录下,然后双击“Cake.html”文件,也可以看到运行的结果!(前提:.java的

文件已经编译通过,生成”Cake.class“文件

--------------------

博饼规则如下:




基本原则:红的点数比黑的好,红4的点数越多越好。点数相同的越多越好,点数越大越好。




具体规矩:
1、一秀(又称秀才):六粒骰子中有一粒为4点。共32个一秀
2、二举(又称举人):六粒骰子中有两粒为4点。共16个二举
3、四进(又称进士):六粒骰子有四粒点数相同(除点数为4外,四个骰子点数为4是状元)即为四进;共8个四进
4、三红(又称探花):六粒骰子中有三粒的点数为4点;共4个三红
5、对堂(又称榜眼):一般为六粒骰子为123456。共2个对堂。如果对堂一直没人博到,可以约定用112233或334455替代对堂。


6、状元:有四粒骰子为4点即是状元


最大的状元:六粒骰子都是四点,所有的奖品都是他的。也就是通吃啦,博到的人实在旺得不得了。实际操作中大多是把桌子上所有还没博到的奖品以及两个对堂都搬回家。



次大的状元:六粒骰子有四粒为4,两粒为1,即为状元插金花,可以把状元和连两个对堂一起带回家了



其他状元:



六粒骰子都是1点,叫六浦



六粒骰子有五粒为4,叫五红带另外那个点



六粒骰子有五粒相同(除四点外),就叫五子带另外那个点数
六粒骰子有四粒为4,另两粒除四和同时为1外,叫状元带**(**指非4的两粒骰子点数相加的数值)。例如有有四粒为4,另两粒为1和6的话,叫状元带7



备注:以上状元的顺序按从大到小排列。


六粒骰子都是相同,但不是1也不是4,叫黑六浦。这是比较另类的状元。也叫关灯抢。



博到关灯抢代表你的运气实在太差了。出现这种情况要把灯关掉大家抢饼。就是把坏运气散掉的意思




有趣的现象:



博中状元的人或博得奖品比较多的人,就代表当前鸿运当头或者来年福星高照。所以状元经常是乔迁新居,结婚,生子的人,或老板或比较有财运的人,总之就是有喜事的人或有财气的人比较容易拿状元或者拿大奖。大家博完了可以看看是不是这样。


相关文档
最新文档