JAVA开发--游戏24点
也比较简单,写的不好,代码里用到了LOOKANDFELL,QUAQUA8.0的包
package com.Game24; import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRootPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException; import ch.randelshofer.quaqua.jaguar.Quaqua15JaguarLookAndFeel; /*
############################################################
# #
# 【名称】 : 游戏-24点 #
# 【作者】 : Sevck(一个写代码很帅的男人) #
# 【团队】 : 网络尖刀 #
# 【主页】 : http://sevck.lofter.com #
# 【日期】 : 2015-10-17 #
# 【功能】 : 24点,并且按钮不可以重复,并且结果不可以编辑 #
# #
############################################################
# ┏┓ ┏┓
#┏┛┻━━━┛┻┓
#┃ ┃
#┃ ━ ┃
#┃ ┳┛ ┗┳ ┃
#┃ ┃
#┃ ``` ┻ ```┃
#┃ ┃
#┗━┓ ┏━┛
#####┃ ┃Code is far away from bug with the animal protecting.
#####┃ ┃神兽护佑,代码无Bug.
#####┃ ┗━━━━━┓
#####┃ ┣┓
#####┃ ┏┛
#####┗┓┓┏━┳┓┏┛
#######┃┫┫ ┃┫┫
#######┗┻┛ ┗┻┛
############################################################
*/
public class Game24 extends JFrame {
static JButton b[] = null;// 随机数按钮
JButton law[] = new JButton[] { new JButton("+"), new JButton("-"),
new JButton("*"), new JButton("/") };// 四则运算按钮
JLabel label = new JLabel("结果:");
JTextArea text = new JTextArea(1, 15);
JButton of[] = new JButton[] { new JButton("确定"), new JButton("刷新") };
static int mark = 0;
JLabel point = new JLabel("当前分数:" + mark);
JPanel jp = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
JPanel jp4 = new JPanel();
JPanel jp5 = new JPanel();
String reg = "[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}";
// 11 + 4 * 6 - 2
char c[] = new char[3]; public static String getNumber() {// 随机数方法
int i = (int) (Math.random() * 13 + 1);
String number = String.valueOf(i);
return number;
} // public static void setbname(){
// n1=Game24.getNumber();
// } public Game24() {
setUndecorated(true);
setDefaultCloseOperation(3);
setFocusableWindowState(true);
JRootPane rp = getRootPane();
setVisible(true); rp.setWindowDecorationStyle(JRootPane.FRAME);
// System.out.println(Game24.getNumber());
b = new JButton[] { new JButton(Game24.getNumber()),
new JButton(Game24.getNumber()),
new JButton(Game24.getNumber()),
new JButton(Game24.getNumber()) };
init(); } public void init() {
this.setTitle("24点--By:Sevck");
this.setVisible(true);// 是否可视
this.setDefaultCloseOperation(3);// 关闭窗口模式
this.setSize(700, 330);// 设置窗口尺寸
this.setResizable(false);// 设置是否可以修改面板大小
this.setLocationRelativeTo(null);
this.setLayout(new GridLayout(5, 5, 5, 5));// 设置布局为流式布局
this.setLocationRelativeTo(null);
for (int i = 0; i < b.length; i++) {
jp.add(b[i]);
}
for (int i = 0; i < law.length; i++) {
jp2.add(law[i]);
} Container cp = this.getContentPane();
cp.add(jp);
cp.add(jp2);
text.setEditable(false);
jp3.add(label);
jp3.add(text);
cp.add(jp3);
jp4.add(of[0]);
jp4.add(of[1]);
cp.add(jp4);
jp5.add(point);
cp.add(jp5); b[0].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub b[0].setEnabled(false);
String str = b[0].getText();
text.append(str); }
}); b[1].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
b[1].setEnabled(false);
String str = b[1].getText();
text.append(str);
}
}); b[2].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
b[2].setEnabled(false);
String str = b[2].getText();
text.append(str);
}
}); b[3].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
b[3].setEnabled(false);
String str = b[3].getText();
text.append(str);
}
});
law[0].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub String str = law[0].getText();
text.append(str); }
});
law[1].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub String str = law[1].getText();
text.append(str); }
});
law[2].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub String str = law[2].getText();
text.append(str); }
});
law[3].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub String str = law[3].getText();
text.append(str); }
});
of[0].addActionListener(new ActionListener() {
// ///////
int dian; @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String str = text.getText();
boolean z = str.matches(reg);// 符合运算规则
if (z) {
String rule = text.getText();
// System.out.println(rule);
String sp = "[^0-9]";
String num[] = rule.split(sp); // 得到4个数字
// for (int i = 0; i < num.length; i++) {
// System.out.println(num[i]);
// } // /////////////////////////////
String faze = "[0-9]+";
String[] aa = rule.split(faze);
// for (int j = 0; j < aa.length; j++) {// 得到3个运算符
// System.out.println(aa[j]);
// }
// /////////////////////////////
int num1 = Integer.parseInt(num[0]);
int num2 = Integer.parseInt(num[1]);
int num3 = Integer.parseInt(num[2]);
int num4 = Integer.parseInt(num[3]); int d1 = getjg(aa[1], num1, num2);
int d2 = getjg(aa[2], d1, num3);
int d3 = getjg(aa[3], d2, num4);
if (d3 == 24) {
JOptionPane.showMessageDialog(null, "恭喜,进入下一关!");
mark = mark + 5;
point.setText("当前分数:" + mark); b[0].setText(Game24.getNumber());// 刷新
b[1].setText(Game24.getNumber());
b[2].setText(Game24.getNumber());
b[3].setText(Game24.getNumber());
for (int i = 0; i <= 3; i++) {
b[i].setEnabled(true);
text.setText("");
}
} else {
JOptionPane.showMessageDialog(null, "不对呀,再想想~");
b[0].setEnabled(true);
b[1].setEnabled(true);
b[2].setEnabled(true);
b[3].setEnabled(true);
} } else {
JOptionPane.showMessageDialog(null, "错误的运算步骤!");
}
} public int getjg(String fh, int s1, int s2) {
if (fh.equalsIgnoreCase("+")) {
dian = s1 + s2;
}
if (fh.equalsIgnoreCase("-")) {
dian = s1 - s2;
}
if (fh.equalsIgnoreCase("*")) {
dian = s1 * s2;
}
if (fh.equalsIgnoreCase("/")) {
dian = s1 / s2;
}
return dian;
} });
of[1].addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
// Game24.setbname();
b[0].setText(Game24.getNumber());
b[1].setText(Game24.getNumber());
b[2].setText(Game24.getNumber());
b[3].setText(Game24.getNumber());
for (int i = 0; i <= 3; i++) {
b[i].setEnabled(true);
text.setText("");
}
}
}); } public static void main(String[] args) {
System.setProperty("Quaqua.tabLayoutPolicy", "wrap"); try {
UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager
.getLookAndFeel());
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block } new Game24();
} }
JAVA开发--游戏24点的更多相关文章
- JAVA开发类似冒险岛的游戏Part1
JAVA开发类似冒险岛的游戏Part1 一.总结 二.JAVA开发类似冒险岛的游戏Part1 初学嘛) ,不过总的来说这个程序还是很有意思的.这里我重新再整理了一下,希望能帮助到其他想要开发类似程序的 ...
- 博主有偿带徒 《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》
<考研专题>操作系统原理 理论解答:8K 实战 1.5W CPU设计 理论解答:1W 实战 2.5W <编程语言设计和实现>初窥门径<5K>:编译原理.编译设计小试 ...
- 如何自学 Java 开发
如何自学 Java 开发? 568赞同反对,不会显示你的姓名 李艾米IT路上学习 568 人赞同 Java Web前端技术 HTML 入门视频课程 1 HTML 简介 2 HTML基本结构[ 3 HT ...
- 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境
写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我 ...
- java围棋游戏源代码
//李雨泽源代码,不可随意修改.//时间:2017年9月22号.//地点:北京周末约科技有限公司.//package com.bao; /*围棋*/ /*import java.awt.*; impo ...
- [转] java开源游戏
收藏一下 triplea Triplea是一个开放源码的boardgame.它允许玩家选择各种各样的战略版图游戏(如:轴心国或同盟军).TripleA引擎支持联网对战,支持声音,支持使用XML文 ...
- GJM : 各大开发游戏引擎
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- Unit01: JAVA开发环境案例
Top JAVA Fundamental DAY01 JDK及Eclipse目录结构操作 JDK的安装及配置 控制台版的JAVA HelloWorld 使用Eclipse开发Java应用程序 1 JD ...
随机推荐
- SVN使用(一)
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本. Subversion是什么? ...
- 鸟哥的Linux私房菜之学习shell script
运行程序的时候一般都是创建一个子程序来执行,所以子程序中的变量什么的在当前的shell下没法使用,但是如果使用source来执行就可以在当前shell下执行程序 shift 1 去掉第一个参数,后面接 ...
- 启动hadoop报192.168.1.151: Address 192.168.1.151 maps to node1, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
使用root用户启动hadoop的时候报错: [root@node1 ~]# su - hadoop -c start-all.sh starting namenode, logging to /ap ...
- java利用zxing编码解码一维码与二维码
最近琢磨了一下二维码.一维码的编码.解码方法,感觉google的zxing用起来还是比较方便. 本人原创,欢迎转载,转载请标注原文地址:http://wallimn.iteye.com/blog/20 ...
- HDU 4035:Maze(概率DP)
http://acm.split.hdu.edu.cn/showproblem.php?pid=4035 Maze Special Judge Problem Description When w ...
- AjaxPro 的基本用法
通过 Ajax可以直接访问后台的代码 实现的步骤: 一 ,添加 引用 AjaxPro.2.dll 文件 二 配置配置文件 <httpHandlers> <add verb=" ...
- HDU 4712:Hamming Distance
Hamming Distance Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) ...
- jqeury轮播
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- hdu4935 Prime Tree(2014多校联合第七场)
首先这是一道dp题,对题意的把握和对状态的处理是解题关键. 题目给出的范围是n在1到1e11之间,由于在裂变过称中左儿子总是父亲节点的一个非平凡约数,容易看出裂变过程只与 素数幂有关,并且显然有素数不 ...
- Uva 10129 单词
题目链接:https://uva.onlinejudge.org/external/101/10129.pdf 把单词的首字母和最后一个字母看做节点,一个单词就是一个有向边.有向图的欧拉定理,就是除了 ...