java 博饼 算法_java博饼游戏( 完善中。。。。。。。。。。。)

java博饼游戏( 完善中。。。。。。。。。。。)

(2012-09-02 10:41:44)

标签:

java

游戏

杂谈

作者:荣 福州大学

import java.awt.*;

import java.io.IOException;

import java.net.*;

import java.util.logging.Logger;

import java.util.regex.*;

import javax.swing.JDialog;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyAdapter;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.JButton;

import javax.swing.JDialog;

public class BetCake extends JFrame {

public class Test {//游戏结束,是否重新开始游戏?

public Test(){

int response=JOptionPane.showConfirmDialog(null, "是否重新开始?",

"选择对话框",

JOptionPane.YES_NO_OPTION);

if(response==0)

{

dispose();

new BetCake().setVisible(true);

}

else

{

System.exit(1);

}

}}

public class Test1 {//游戏开始设置判断

public Test1(){

JOptionPane.showMessageDialog(null, "未进行游戏设置或设置未完成!", "警告",

JOptionPane.WARNING_MESSAGE);

dispose();

new BetCake().setVisible(true);

}}

public static boolean isNumer(String str){//正则表达式法

判断输入字符串是否为数字0-9。

Pattern pattern = Pattern.compile("[0-9]*");

Matcher isNumer=pattern.matcher(str);

return isNumer.matches();

}

int []diceNum =new int[7];

int []dice = new int[7];

int []man=new int[7];

int yixiu=0;//设置一秀;

int erju=0;//设置二举;

int sanhong=0;//设置三红;

int sijin=0;//设置四进;

int duitang=0;//设置对堂;

final int zhuangyuan=1;//设置状元;

int liuhong=0;//六杯红,判断结束;

int people=0;//玩家数;

int yixiu1=0;//统计一秀;

int erju1=0;//统计二举;

int sanhong1=0;//统计三红;

int sijin1=0;//统计四进;

int duitang1=0;//统计对堂;

int zhuangyuan1=0;//统计状元;

int wuzi=0;

int chajin=0;

String Result="";

JTextField []t = new JTextField[7];// 创建单行文本框,其长度为3。

public static void main(String args[]) {

BetCake zhongqiu=new BetCake();

zhongqiu.setVisible(true);//绘出窗体,否则你写的东西都是存在于内存中,并不可见。

}

public String ShowResult(int[]sum)

{

String result="";

switch(sum[4])

{

case 0:

if(sum[1]==4||sum[2]==4||sum[3]==4||sum[5]==4||sum [6]==4)

{

result="四进,恭喜。";

if(sijin1

else {result+="很遗憾,奖品已发完嘿嘿。";man[4]=1;}

}

else if(sum[1]==5||sum[2]==5||sum[3]==5||sum[5]==5||sum

[6]==5)

{

result="五子登科,恭喜。";

if(wuzi+zhuangyuan1+chajin

wuzi++;

else

if(zhuangyuan1>0){zhuangyuan1--;wuzi++;}

else {result+="很遗憾,您的状元级不大于已获状元任意玩家。";}

}

else {result=" 无奖,继续努力!"; }

break;

case 1:

if(sum[1]==1&&sum[2]==1&&sum[3]==1&&sum[5]==1&&sum

[6]==1)

{

result="对堂,恭喜。";

if(duitang1

else {

result+="很遗憾,奖品已发完。";

man[5]=1;

if(yixiu1

else {result+="晕。。。一秀奖品也已发完。";}

}

}

else if(sum[1]==5||sum[2]==5||sum[3]==5||sum[5]==5||sum

[6]==5)

{

result="五子登科,恭喜。";

if(wuzi+zhuangyuan1+chajin

wuzi++;}

else

if(zhuangyuan1>0){zhuangyuan1--;wuzi++;}

else {

result+="很遗憾,您的状元级不大于已获状元玩家。";

if(yixiu1

else {result+="嘿嘿,一秀奖品也已发完.";}

}

}

else

if(sum[1]==4||sum[2]==4||sum[3]==4||sum[5]==4||sum [6]==4)

{

result=" 四进,恭喜.";

if(sijin1

else {

result+="不过,奖品已发完。";

man[4]=1;

if(yixiu1

else {result+="(*^__^*) 嘻嘻,一秀奖品也已发完.";}

}

}

else {

result=" 一秀,恭喜。";

if(yixiu1

else {result+="不过,奖品已发完.";man[1]=1;}

}

break;

case 2:

if(sum[1]==4||sum[2]==4||sum[3]==4||sum[5]==4||sum [6]==4)

{

result=" 四进,恭喜.";

if(sijin1

else

{

result+="不过,奖品已发完.";

man[4]=1;

if(erju1

else {result+="悲剧。。。二举奖品也已发完.";man[2]=1;}

}

}

else

{

result=" 二举,恭喜.";

if(erju1

else {result+="不过,奖品已发完.";man[2]=1;}

}

break;

case 3:

result=" 三红,恭喜。";

if(sanhong1

else {result+="不过,奖品已发完.";man[3]=1;}

break;

case 4:

if(sum[1]==2)

{

result=" 状元插金花,恭喜。";

if(wuzi+zhuangyuan1+chajin

{chajin++;}

else if(wuzi>0){wuzi--;chajin++;}

else

if(zhuangyuan1>0){zhuangyuan1--;chajin++;}

else {result+="不过,您的状元级不大于已获状元玩家.";}

}

else

{

result=" 状元,恭喜。个性台历";

if(wuzi+zhuangyuan1+chajin

{zhuangyuan1++;}

else {result+="NO,奖品已发完.";man[6]=1;}

}

break;

case 5:

result=" 五子登科,恭喜。";

if(wuzi+zhuangyuan1+chajin

{wuzi++;}

else

if(zhuangyuan1>0){zhuangyuan1--;wuzi++;}

else {result+="不过,您的状元级不大于已获状元玩家.";}

break;

case 6:

result=" 六杯红,恭喜。";

liuhong=1;

break;

}//end switch

return result;

}

public boolean GameOver()

{

if(liuhong==1||(man[1]==1&&man[2]==1&&man[3]==1&&m

an[4]==1&&man[5]==1&&man[6]==1))

{

return true;

}

return false;

}

public BetCake(){

super();

URL url1=BetCake.class.getResource("1.jpg");//设置窗体标题栏图标

ImageIcon imageicon=new ImageIcon(url1);

Image image=imageicon.getImage();

setIconImage(image);

setBounds(50,50, 450, 450);

setTitle("中 秋 博 饼 ");

getContentPane().setLayout(new GridLayout(3,1)); //

设置窗体容器布局。

JPanel p1= new JPanel(); // 声明面板容器。

p1.setLayout(new GridLayout(3,3)); // 设置面板布局,放置6个骰子;

JLabel []label1 = new JLabel[7];

for(int i=1;i<=6;++i)

{

label1[i]=new JLabel("骰子"+i+":");// 创建标签。

t[i] = new JTextField(2);

t[i].setEditable(false);

p1.add(label1[i]);

p1.add(t[i]);

}

getContentPane().add(p1);

JPanel p2=new JPanel();

p2.setLayout(new FlowLayout());

JLabel label3 = new JLabel("设 置 奖 品 数 :");

p2.add(label3);

JLabel []label4 = new JLabel[6];//设置奖品数;

JTextField []beginText= new JTextField[7];

label4[0]=new JLabel("一秀:");

p2.add(label4[0]);

beginText[0]=new JTextField(3);

p2.add(beginText[0]);

beginText[0].addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

char code=e.getKeyChar();

String s=String.valueOf(code);

if(isNumer(s))

yixiu = Integer.parseInt(s);

else {

JOptionPane.showMessageDialog(null, "输入不符合或非法!相册制作个性挂历请重新输入。。。");

dispose();

new BetCake().setVisible(true);

}

}});

label4[1]=new JLabel("二举:");

p2.add(label4[1]);

beginText[1]=new JTextField(3);

p2.add(beginText[1]);

beginText[1].addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

char code=e.getKeyChar();

String s=String.valueOf(code);

if(isNumer(s))

erju = Integer.parseInt(s);

else {

JOptionPane.showMessageDialog(null, "输入不符合或非法!请重新输入。。。");

dispose();

new BetCake().setVisible(true);

}

}});

label4[2]=new JLabel("三红:");

p2.add(label4[2]);

beginText[2]=new JTextField(3);

p2.add(beginText[2]);

beginText[2].addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

char code=e.getKeyChar();

String s=String.valueOf(code);

if(isNumer(s))

sanhong = Integer.parseInt(s);

else {

JOptionPane.showMessageDialog(null, "输入不符合或非法!请重新输入。。。");

dispose();

new BetCake().setVisible(true);

}

}});

label4[3]=new JLabel("四进:");

p2.add(label4[3]);

beginText[3]=new JTextField(3);

p2.add(beginText[3]);

beginText[3].addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

char code=e.getKeyChar();

String s=String.valueOf(code);

if(isNumer(s))

sijin= Integer.parseInt(s);

else {

JOptionPane.showMessageDialog(null, "输入不符合或非法!请重新输入。。。");

dispose();

new BetCake().setVisible(true);

}

}});

label4[4]=new JLabel("对堂:");

p2.add(label4[4]);

beginText[4]=new JTextField(3);

p2.add(beginText[4]);

beginText[4].addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

char code=e.getKeyChar();

String s=String.valueOf(code);

if(isNumer(s))

duitang = Integer.parseInt(s);

else {

JOptionPane.showMessageDialog(null, "输入不符合或非法!请重新输入。。。");

dispose();

new BetCake().setVisible(true);

}

}});

label4[5]=new JLabel("状元:");

p2.add(label4[5]);

beginText[5]=new JTextField(3);

p2.add(beginText[5]);

beginText[5].setText("1");

beginText[5].setEditable(false);

JLabel txt= new JLabel("注意:所有的输入不能有0.");

p2.add(txt);

JLabel label2 = new JLabel("博 饼 结 果:");

final JTextField resultText= new JTextField(35);

p2.add(label2);

p2.add(resultText);

resultText.setEditable(false);

getContentPane().add(p2);

JPanel p3=new JPanel();

//URL url=BetCake.class.getResource("1.jpg");//图片的载入;

//Icon icon=new ImageIcon(url);

JButton button1 = new JButton("开 始 博 饼!");

p3.add(button1);

getContentPane().add(p3);

JButton button2 = new JButton(" 博饼介绍请点击!");

p3.add(button2);

getContentPane().add(p3);

button2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

try {

Desktop dp = Desktop.getDesktop();

dp.browse(new URI("http://baike.baidu.com/view/.htm"));

}

catch (IOException ex) {

JOptionPane.showMessageDialog(null, " 注意:此网络地址不存在!");

}

catch (URISyntaxException ex) {

JOptionPane.showMessageDialog(null, "网络地址不存在!");

}

}

});

button1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

if(yixiu==0||erju==0||sanhong==0||sijin==0||duitan

g==0||zhuangyuan==0)

{

new Test1();

}

for(int j=1;j<=6;++j)

diceNum[j]=0;

//开始博饼;

for(int w=1;w<=6;++w)

{

dice[w]=1+(int)((Math.random()) * 6);//产生随机数1-6;

diceNum[dice[w]]++;

t[w].setText(Integer.toString(dice[w]));

}

Result=ShowResult(diceNum);

resultText.setText(Result);

if(GameOver())

{

resultText.setText("游戏结束!");

new Test();

}

}});

}

}

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值