也比较简单,写的不好,代码里用到了LOOKANDFELL,QUAQUA8.0的包

  1. package com.Game24;
  2.  
  3. import java.awt.Container;
  4. import java.awt.Dimension;
  5. import java.awt.FlowLayout;
  6. import java.awt.GridLayout;
  7. import java.awt.Toolkit;
  8. import java.awt.event.ActionEvent;
  9. import java.awt.event.ActionListener;
  10.  
  11. import javax.swing.JButton;
  12. import javax.swing.JFrame;
  13. import javax.swing.JLabel;
  14. import javax.swing.JOptionPane;
  15. import javax.swing.JPanel;
  16. import javax.swing.JPopupMenu;
  17. import javax.swing.JRootPane;
  18. import javax.swing.JTextArea;
  19. import javax.swing.JTextField;
  20. import javax.swing.UIManager;
  21. import javax.swing.UnsupportedLookAndFeelException;
  22.  
  23. import ch.randelshofer.quaqua.jaguar.Quaqua15JaguarLookAndFeel;
  24.  
  25. /*
  26. ############################################################
  27. # #
  28. # 【名称】 : 游戏-24点 #
  29. # 【作者】 : Sevck(一个写代码很帅的男人) #
  30. # 【团队】 : 网络尖刀 #
  31. # 【主页】 : http://sevck.lofter.com #
  32. # 【日期】 : 2015-10-17 #
  33. # 【功能】 : 24点,并且按钮不可以重复,并且结果不可以编辑 #
  34. # #
  35. ############################################################
  36. #   ┏┓ ┏┓
  37. #┏┛┻━━━┛┻┓
  38. #┃ ┃
  39. #┃ ━ ┃
  40. #┃ ┳┛ ┗┳ ┃
  41. #┃ ┃
  42. #┃ ``` ┻ ```┃
  43. #┃ ┃
  44. #┗━┓ ┏━┛
  45. #####┃ ┃Code is far away from bug with the animal protecting.
  46. #####┃ ┃神兽护佑,代码无Bug.
  47. #####┃ ┗━━━━━┓
  48. #####┃ ┣┓
  49. #####┃ ┏┛
  50. #####┗┓┓┏━┳┓┏┛
  51. #######┃┫┫ ┃┫┫
  52. #######┗┻┛ ┗┻┛
  53. ############################################################
  54. */
  55. public class Game24 extends JFrame {
  56. static JButton b[] = null;// 随机数按钮
  57. JButton law[] = new JButton[] { new JButton("+"), new JButton("-"),
  58. new JButton("*"), new JButton("/") };// 四则运算按钮
  59. JLabel label = new JLabel("结果:");
  60. JTextArea text = new JTextArea(1, 15);
  61. JButton of[] = new JButton[] { new JButton("确定"), new JButton("刷新") };
  62. static int mark = 0;
  63. JLabel point = new JLabel("当前分数:" + mark);
  64. JPanel jp = new JPanel();
  65. JPanel jp2 = new JPanel();
  66. JPanel jp3 = new JPanel();
  67. JPanel jp4 = new JPanel();
  68. JPanel jp5 = new JPanel();
  69. String reg = "[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}.[0-9]{1,2}";
  70. // 11 + 4 * 6 - 2
  71. char c[] = new char[3];
  72.  
  73. public static String getNumber() {// 随机数方法
  74. int i = (int) (Math.random() * 13 + 1);
  75. String number = String.valueOf(i);
  76. return number;
  77. }
  78.  
  79. // public static void setbname(){
  80. // n1=Game24.getNumber();
  81. // }
  82.  
  83. public Game24() {
  84. setUndecorated(true);
  85. setDefaultCloseOperation(3);
  86. setFocusableWindowState(true);
  87. JRootPane rp = getRootPane();
  88. setVisible(true);
  89.  
  90. rp.setWindowDecorationStyle(JRootPane.FRAME);
  91. // System.out.println(Game24.getNumber());
  92. b = new JButton[] { new JButton(Game24.getNumber()),
  93. new JButton(Game24.getNumber()),
  94. new JButton(Game24.getNumber()),
  95. new JButton(Game24.getNumber()) };
  96. init();
  97.  
  98. }
  99.  
  100. public void init() {
  101. this.setTitle("24点--By:Sevck");
  102. this.setVisible(true);// 是否可视
  103. this.setDefaultCloseOperation(3);// 关闭窗口模式
  104. this.setSize(700, 330);// 设置窗口尺寸
  105. this.setResizable(false);// 设置是否可以修改面板大小
  106. this.setLocationRelativeTo(null);
  107. this.setLayout(new GridLayout(5, 5, 5, 5));// 设置布局为流式布局
  108. this.setLocationRelativeTo(null);
  109. for (int i = 0; i < b.length; i++) {
  110. jp.add(b[i]);
  111. }
  112. for (int i = 0; i < law.length; i++) {
  113. jp2.add(law[i]);
  114. }
  115.  
  116. Container cp = this.getContentPane();
  117. cp.add(jp);
  118. cp.add(jp2);
  119. text.setEditable(false);
  120. jp3.add(label);
  121. jp3.add(text);
  122. cp.add(jp3);
  123. jp4.add(of[0]);
  124. jp4.add(of[1]);
  125. cp.add(jp4);
  126. jp5.add(point);
  127. cp.add(jp5);
  128.  
  129. b[0].addActionListener(new ActionListener() {
  130.  
  131. @Override
  132. public void actionPerformed(ActionEvent e) {
  133. // TODO Auto-generated method stub
  134.  
  135. b[0].setEnabled(false);
  136. String str = b[0].getText();
  137. text.append(str);
  138.  
  139. }
  140. });
  141.  
  142. b[1].addActionListener(new ActionListener() {
  143.  
  144. @Override
  145. public void actionPerformed(ActionEvent e) {
  146. // TODO Auto-generated method stub
  147. b[1].setEnabled(false);
  148. String str = b[1].getText();
  149. text.append(str);
  150. }
  151. });
  152.  
  153. b[2].addActionListener(new ActionListener() {
  154.  
  155. @Override
  156. public void actionPerformed(ActionEvent e) {
  157. // TODO Auto-generated method stub
  158. b[2].setEnabled(false);
  159. String str = b[2].getText();
  160. text.append(str);
  161. }
  162. });
  163.  
  164. b[3].addActionListener(new ActionListener() {
  165.  
  166. @Override
  167. public void actionPerformed(ActionEvent e) {
  168. // TODO Auto-generated method stub
  169. b[3].setEnabled(false);
  170. String str = b[3].getText();
  171. text.append(str);
  172. }
  173. });
  174. law[0].addActionListener(new ActionListener() {
  175.  
  176. @Override
  177. public void actionPerformed(ActionEvent e) {
  178. // TODO Auto-generated method stub
  179.  
  180. String str = law[0].getText();
  181. text.append(str);
  182.  
  183. }
  184. });
  185. law[1].addActionListener(new ActionListener() {
  186.  
  187. @Override
  188. public void actionPerformed(ActionEvent e) {
  189. // TODO Auto-generated method stub
  190.  
  191. String str = law[1].getText();
  192. text.append(str);
  193.  
  194. }
  195. });
  196. law[2].addActionListener(new ActionListener() {
  197.  
  198. @Override
  199. public void actionPerformed(ActionEvent e) {
  200. // TODO Auto-generated method stub
  201.  
  202. String str = law[2].getText();
  203. text.append(str);
  204.  
  205. }
  206. });
  207. law[3].addActionListener(new ActionListener() {
  208.  
  209. @Override
  210. public void actionPerformed(ActionEvent e) {
  211. // TODO Auto-generated method stub
  212.  
  213. String str = law[3].getText();
  214. text.append(str);
  215.  
  216. }
  217. });
  218. of[0].addActionListener(new ActionListener() {
  219. // ///////
  220. int dian;
  221.  
  222. @Override
  223. public void actionPerformed(ActionEvent e) {
  224. // TODO Auto-generated method stub
  225. String str = text.getText();
  226. boolean z = str.matches(reg);// 符合运算规则
  227. if (z) {
  228. String rule = text.getText();
  229. // System.out.println(rule);
  230. String sp = "[^0-9]";
  231. String num[] = rule.split(sp); // 得到4个数字
  232. // for (int i = 0; i < num.length; i++) {
  233. // System.out.println(num[i]);
  234. // }
  235.  
  236. // /////////////////////////////
  237. String faze = "[0-9]+";
  238. String[] aa = rule.split(faze);
  239. // for (int j = 0; j < aa.length; j++) {// 得到3个运算符
  240. // System.out.println(aa[j]);
  241. // }
  242. // /////////////////////////////
  243. int num1 = Integer.parseInt(num[0]);
  244. int num2 = Integer.parseInt(num[1]);
  245. int num3 = Integer.parseInt(num[2]);
  246. int num4 = Integer.parseInt(num[3]);
  247.  
  248. int d1 = getjg(aa[1], num1, num2);
  249. int d2 = getjg(aa[2], d1, num3);
  250. int d3 = getjg(aa[3], d2, num4);
  251. if (d3 == 24) {
  252. JOptionPane.showMessageDialog(null, "恭喜,进入下一关!");
  253. mark = mark + 5;
  254. point.setText("当前分数:" + mark);
  255.  
  256. b[0].setText(Game24.getNumber());// 刷新
  257. b[1].setText(Game24.getNumber());
  258. b[2].setText(Game24.getNumber());
  259. b[3].setText(Game24.getNumber());
  260. for (int i = 0; i <= 3; i++) {
  261. b[i].setEnabled(true);
  262. text.setText("");
  263. }
  264. } else {
  265. JOptionPane.showMessageDialog(null, "不对呀,再想想~");
  266. b[0].setEnabled(true);
  267. b[1].setEnabled(true);
  268. b[2].setEnabled(true);
  269. b[3].setEnabled(true);
  270. }
  271.  
  272. } else {
  273. JOptionPane.showMessageDialog(null, "错误的运算步骤!");
  274. }
  275. }
  276.  
  277. public int getjg(String fh, int s1, int s2) {
  278. if (fh.equalsIgnoreCase("+")) {
  279. dian = s1 + s2;
  280. }
  281. if (fh.equalsIgnoreCase("-")) {
  282. dian = s1 - s2;
  283. }
  284. if (fh.equalsIgnoreCase("*")) {
  285. dian = s1 * s2;
  286. }
  287. if (fh.equalsIgnoreCase("/")) {
  288. dian = s1 / s2;
  289. }
  290. return dian;
  291. }
  292.  
  293. });
  294. of[1].addActionListener(new ActionListener() {
  295.  
  296. @Override
  297. public void actionPerformed(ActionEvent e) {
  298. // TODO Auto-generated method stub
  299. // Game24.setbname();
  300. b[0].setText(Game24.getNumber());
  301. b[1].setText(Game24.getNumber());
  302. b[2].setText(Game24.getNumber());
  303. b[3].setText(Game24.getNumber());
  304. for (int i = 0; i <= 3; i++) {
  305. b[i].setEnabled(true);
  306. text.setText("");
  307. }
  308. }
  309. });
  310.  
  311. }
  312.  
  313. public static void main(String[] args) {
  314. System.setProperty("Quaqua.tabLayoutPolicy", "wrap");
  315.  
  316. try {
  317. UIManager.setLookAndFeel(ch.randelshofer.quaqua.QuaquaManager
  318. .getLookAndFeel());
  319. } catch (UnsupportedLookAndFeelException e) {
  320. // TODO Auto-generated catch block
  321.  
  322. }
  323.  
  324. new Game24();
  325. }
  326.  
  327. }

  

JAVA开发--游戏24点的更多相关文章

  1. JAVA开发类似冒险岛的游戏Part1

    JAVA开发类似冒险岛的游戏Part1 一.总结 二.JAVA开发类似冒险岛的游戏Part1 初学嘛) ,不过总的来说这个程序还是很有意思的.这里我重新再整理了一下,希望能帮助到其他想要开发类似程序的 ...

  2. 博主有偿带徒 《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》

    <考研专题>操作系统原理 理论解答:8K 实战 1.5W CPU设计 理论解答:1W 实战 2.5W <编程语言设计和实现>初窥门径<5K>:编译原理.编译设计小试 ...

  3. 如何自学 Java 开发

    如何自学 Java 开发? 568赞同反对,不会显示你的姓名 李艾米IT路上学习 568 人赞同 Java Web前端技术 HTML 入门视频课程 1 HTML 简介 2 HTML基本结构[ 3 HT ...

  4. 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境

    写这篇文章的目的首先是为让自己以后再装linux环境时候,不用再通宵google+百度,做个备忘录,其次,给新入Linux环境的同学分享一点个人经验,再高尚点的动机也算是想做为开源技术的传播布道者.我 ...

  5. java围棋游戏源代码

    //李雨泽源代码,不可随意修改.//时间:2017年9月22号.//地点:北京周末约科技有限公司.//package com.bao; /*围棋*/ /*import java.awt.*; impo ...

  6. [转] java开源游戏

    收藏一下   triplea  Triplea是一个开放源码的boardgame.它允许玩家选择各种各样的战略版图游戏(如:轴心国或同盟军).TripleA引擎支持联网对战,支持声音,支持使用XML文 ...

  7. GJM : 各大开发游戏引擎

    感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...

  8. Java编程思想重点笔记(Java开发必看)

    Java编程思想重点笔记(Java开发必看)   Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...

  9. Unit01: JAVA开发环境案例

    Top JAVA Fundamental DAY01 JDK及Eclipse目录结构操作 JDK的安装及配置 控制台版的JAVA HelloWorld 使用Eclipse开发Java应用程序 1 JD ...

随机推荐

  1. php的ssh2扩展安装

    折腾半天,结论如下: 1.先需要openssl 用which openssl看是否已安装 2.然后libssh2 用rpm -ql libssh2查看 3.下载源码的shh2x.x.x.tgz的包 4 ...

  2. C#中的属性————只谈属性

    废话少说直接一剑封喉--属性是对私有字段的保护(其实是对私有字段引用的另外一种变相公开化),属性在没有任何操作的时候是无法看出其优势来,上例子 // Field used by property.pr ...

  3. C#:控制WinForm界面的显示

    控制WinForm界面在屏幕的四个角落显示,具体代码中有说明: using System; using System.Collections.Generic; using System.Drawing ...

  4. Asp.net Vnext Filters

    ASP.NET MVC 提供Filters(筛选器)之前或之后调用操作方法执行筛选逻辑,和AOP面向切面编程一样. 本文已经同步到<Asp.net Vnext 系列教程 >中] 本章主要介 ...

  5. JAVA导出数据到excel中大数据量的解决方法

    最近在做项目功能时 ,发现有20万以上的数据.要求导出时直接导出成压缩包.原来的逻辑是使用poi导出到excel,他是操作对象集合然后将结果写到excel中. 使用poi等导出时,没有考虑数据量的问题 ...

  6. [工具][windows][visualStudio][充电]番茄助手vaassist常见用法

    参考:http://blog.csdn.net/hotdog156351/article/details/43955565 1 安装好VAS打开VS2010之后,首先关闭VA outline与VA V ...

  7. ACM题目————最长回文串

    Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等   Input 输入有多组cas ...

  8. [转]android使用shape stroke描边只保留底部

    在项目中遇到这种情况:由于一些原因,自己需要用LinearLayout的垂直布局做出ListView的那种效果,但是ListView是自带了分割线的,而且顶部底部都是没有分割线的,每个item中间都是 ...

  9. C#利用POST实现杭电oj的AC自动机器人,AC率高达50%~~

    暑假集训虽然很快乐,偶尔也会比较枯燥,,这个时候就需要自娱自乐... 然后看hdu的排行榜发现,除了一些是虚拟测评机的账号以外,有几个都是AC自动机器人 然后发现有一位作者是用网页填表然后按钮模拟,, ...

  10. 训练集(train set) 验证集(validation set) 测试集(test set)

    转自:http://www.cnblogs.com/xfzhang/archive/2013/05/24/3096412.html 在有监督(supervise)的机器学习中,数据集常被分成2~3个, ...