java applet类开始博饼_厦门中秋博饼程序!(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;i

dieLabel[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;i

fre[i] = 0 ;

}

rollDice();

displayMessage();

repaint();

}

public void rollDice(){

// pick random die values

for(int i = 1;i

die[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",JOptionPane.INFORMATION_MESSAGE);

zhuangyuan = 0;

duitang = 0;

sanhong = 0;

sijin = 0;

erju = 0;

yixiu = 0;

JOptionPane.showMessageDialog(null,"重新开始游戏!","Over",JOptionPane.INFORMATION_MESSAGE);

}//end for if

}//end for displayMessage

}

以下非程序代码:学了将进两个月的JAVA,而自己现在又住在厦门,所以突发其想,便写下了上面这个程序!程序主要体现了模块化设计,所以每个函数的功能一般都很单一,还考虑了事件传递机制!

希望对象我这样对JAVA有着浓厚兴趣的会员有所帮助!

版权所有&:Qdieyou(软院:03369138) 希望你们复制的时候也把我的ID附上,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值