⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculate24.java

📁 24点的游戏...好好看看哦
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.util.ArrayList; 
import java.util.List; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern; 

import javax.swing.ImageIcon; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JScrollPane; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 

public class calculate24 extends JFrame{ 

private javax.swing.JPanel jContentPane = null; 
private JLabel jLabel = null; 
private JLabel jLabel1 = null; 
private JTextField jTextField = null; 
private JTextField jTextField1 = null; 
private JTextArea jTextArea = null; 
private JLabel jLabel2 = null; 
private JButton jButton = null; 
private JScrollPane jScrollPane = null; 

private JButton jButton1 = null; 
private JButton jButton2 = null; 
private JButton jButton3 = null; 
private JButton jButton4 = null; 
private JButton jButton5 = null; 
private JButton jButton6 = null; 
private JButton jButton7 = null; 
private JButton jButton8 = null; 
private JButton jButton9 = null; 
private JButton jButton10 = null; 
/** 
* This is the default constructor 
*/ 
public calculate24() { 
super(); 
initialize(); 
} 

/** 
* This method initializes this 
* 
* @return void 
*/ 
private void initialize() { 
this.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE); 
this.setBounds(200, 200, 565, 452); 
this.setContentPane(getJContentPane()); 
this.setTitle("24点"); 
} 

/** 
* This method initializes jContentPane 
* 
* @return javax.swing.JPanel 
*/ 
private javax.swing.JPanel getJContentPane() { 
if (jContentPane == null) { 
jLabel2 = new JLabel(); 
jLabel1 = new JLabel(); 
jLabel = new JLabel(); 
jContentPane = new javax.swing.JPanel(); 
jContentPane.setLayout(null); 
jLabel.setBounds(66, 52, 150, 45); 
jLabel.setText("please unter four number"); 
jLabel1.setBounds(253, 52, 282, 45); 
jLabel1.setText("please unter how many result do you want to get"); 
jLabel2.setBounds(354, 201, 70, 36); 
jLabel2.setText("result"); 
jContentPane.add(getJButton(), null); 
jContentPane.add(jLabel, null); 
jContentPane.add(jLabel1, null); 
jContentPane.add(getJTextField(), null); 
jContentPane.add(getJTextField1(), null); 
jContentPane.add(jLabel2, null); 
jContentPane.add(getJScrollPane(), null); 
jContentPane.add(getJButton1(), null); 
jContentPane.add(getJButton2(), null); 
jContentPane.add(getJButton3(), null); 
jContentPane.add(getJButton4(), null); 
jContentPane.add(getJButton5(), null); 
jContentPane.add(getJButton6(), null); 
jContentPane.add(getJButton7(), null); 
jContentPane.add(getJButton8(), null); 
jContentPane.add(getJButton9(), null); 
jContentPane.add(getJButton10(), null); 
} 
return jContentPane; 
} 

/** 
* This method initializes jTextField 
* 
* @return javax.swing.JTextField 
*/ 
private JTextField getJTextField() { 
if (jTextField == null) { 
jTextField = new JTextField(); 
jTextField.setBounds(67, 84, 149, 41); 
jTextField.addFocusListener(new java.awt.event.FocusAdapter() { 
public void focusGained(java.awt.event.FocusEvent e) { 
jTextField.select(0,jTextField.getText().length()); 
} 
}); 
} 
return jTextField; 
} 

/** 
* This method initializes jTextField1 
* 
* @return javax.swing.JTextField 
*/ 
private JTextField getJTextField1() { 
if (jTextField1 == null) { 
jTextField1 = new JTextField(); 
jTextField1.setBounds(293, 81, 161, 41); 
jTextField1.setNextFocusableComponent(jButton); 
} 
return jTextField1; 
} 

/** 
* This method initializes jTextArea 
* 
* @return javax.swing.JTextArea 
*/ 
private JTextArea getJTextArea() { 
if (jTextArea == null) { 
jTextArea = new JTextArea(); 
jTextArea.setTabSize(8); 
} 
return jTextArea; 
} 


public static String bbb(List list1, List list2) { 
float result = 0; 
for (int i = list1.size(); i > 0; i-- ) { 
if (list1.contains("*")) { 
int j = list1.indexOf("*"); 
result = Float.parseFloat((String)list2.get(j)) 
* Float.parseFloat((String)list2.get(j + 1)); 
list1.remove(j); 
list2.remove(j); 
list2.remove(j); 
list2.add(j, String.valueOf(result)); 
} else if (list1.contains("/")) { 
int j = list1.indexOf("/"); 
result = Float.parseFloat((String)list2.get(j)) 
/ Float.parseFloat((String)list2.get(j + 1)); 
list1.remove(j); 
list2.remove(j); 
list2.remove(j); 
list2.add(j, String.valueOf(result)); 
} else if (list1.contains("+")) { 
int j = list1.indexOf("+"); 
result = Float.parseFloat((String)list2.get(j)) 
+ Float.parseFloat((String)list2.get(j + 1)); 
list1.remove(j); 
list2.remove(j); 
list2.remove(j); 
list2.add(j, String.valueOf(result)); 
} else if (list1.contains("-")) { 
int j = list1.indexOf("-"); 
result = Float.parseFloat((String)list2.get(j)) 
- Float.parseFloat((String)list2.get(j + 1)); 
list1.remove(j); 
list2.remove(j); 
list2.remove(j); 
list2.add(j, String.valueOf(result)); 
} 
} 
return (String)list2.get(0); 
} 

private static void bbb(String str, String sPrint, List list) { 
if (!"".equals(str.trim()) ? false : list.add(sPrint)) 
; 
for (int i = 0; i < str.length() && ( !"".equals(str.trim()) ); i++ ) 
if (str.charAt(i) != ' ') 
bbb(str.replace(str.charAt(i), ' '), sPrint + str.charAt(i), 
list); 
} 

private static List bbb(String str, List list) { 
List result = new ArrayList(); 
String a1 = str.substring(0, 1); 
String b1 = str.substring(1, 2); 
String c1 = str.substring(2, 3); 
String d1 = str.substring(3, 4); 
String[] a11 = new String[] { a1, b1, c1, d1 }; 
for (int i = 0; i < list.size(); i++ ) { 
String temp = (String)list.get(i); 
int a = Integer.parseInt(temp.substring(0, 1)); 
int b = Integer.parseInt(temp.substring(1, 2)); 
int c = Integer.parseInt(temp.substring(2, 3)); 
int d = Integer.parseInt(temp.substring(3, 4)); 
String tempStr = a11[a] + a11[b] + a11[c] + a11[d]; 
if(!result.contains(tempStr)){ 
result.add(tempStr); 
} 

} 
return result; 
} 

public List test(String param, int x) { 
int y = 0; 
List result = new ArrayList(); 
List a11 = new ArrayList(); 
calculate24.bbb("0123", "", a11); 
List a1 = calculate24.bbb(param, a11); 
for (int m = 0; m < a1.size(); m++ ) { 
String param1 = (String)a1.get(m); 
int[] a = new int[] { Integer.parseInt(param1.substring(0, 1)), 
Integer.parseInt(param1.substring(1, 2)), 
Integer.parseInt(param1.substring(2, 3)), 
Integer.parseInt(param1.substring(3, 4)) }; 
String[] e = new String[] { "*", "/", "+", "-" }; 
for (int i = 0; i < 4; i++ ) { 
for (int j = 0; j < 4; j++ ) { 
for (int k = 0; k < 4; k++ ) { 
List aa = new ArrayList(); 
aa.add(String.valueOf(a[0])); 
aa.add(String.valueOf(a[1])); 
aa.add(String.valueOf(a[2])); 
aa.add(String.valueOf(a[3])); 
List bb = new ArrayList(); 
bb.add(e[i]); 
bb.add(e[j]); 
bb.add(e[k]); 
String s = a[0] + e[i] + a[1] + e[j] + a[2] + e[k] 
+ a[3]; 
String tempS = s; 
s = calculate24.bbb(bb, aa); 
if (Float.parseFloat(s) == 24) { 
y++ ; 
result.add(tempS + "=24"); 
if (y == x) { 
return result; 
} 
} 

List temp1 = new ArrayList(); 
List temp2 = new ArrayList(); 
temp1.add(String.valueOf(a[0])); 
temp1.add(String.valueOf(a[1])); 
temp2.add(e[i]); 
String temp = calculate24.bbb(temp2, temp1); 
aa.clear(); 
aa.add(temp); 
aa.add(String.valueOf(a[2])); 
aa.add(String.valueOf(a[3])); 
bb.clear(); 
bb.add(e[j]); 
bb.add(e[k]); 
s = "(" + a[0] + e[i] + a[1] + ")" + e[j] + a[2] + e[k] 
+ a[3]; 
tempS = s; 
s = calculate24.bbb(bb, aa); 
if (Float.parseFloat(s) == 24) { 
y++ ; 
result.add(tempS + "=24"); 
if (y == x) { 
return result; 
} 
} 

temp1.clear(); 
temp2.clear(); 
temp1.add(String.valueOf(a[1])); 
temp1.add(String.valueOf(a[2])); 
temp2.add(e[j]); 
temp = calculate24.bbb(temp2, temp1); 
aa.clear(); 
aa.add(String.valueOf(a[0])); 
aa.add(temp); 
aa.add(String.valueOf(a[3])); 
bb.clear(); 
bb.add(e[i]); 
bb.add(e[k]); 
s = a[0] + e[i] + "(" + a[1] + e[j] + a[2] + ")" + e[k] 
+ a[3]; 
tempS = s; 
s = calculate24.bbb(bb, aa); 
if (Float.parseFloat(s) == 24) { 
y++ ; 
result.add(tempS + "=24"); 
if (y == x) { 
return result; 
} 
} 

temp1.clear(); 
temp2.clear(); 
temp1.add(String.valueOf(a[2])); 
temp1.add(String.valueOf(a[3])); 
temp2.add(e[k]); 
temp = calculate24.bbb(temp2, temp1); 
aa.clear(); 
aa.add(String.valueOf(a[0])); 
aa.add(String.valueOf(a[1])); 
aa.add(temp); 
bb.clear(); 
bb.add(e[i]); 
bb.add(e[j]); 
s = a[0] + e[i] + a[1] + e[j] + "(" + a[2] + e[k] 
+ a[3] + ")"; 
tempS = s; 
s = calculate24.bbb(bb, aa); 
if (Float.parseFloat(s) == 24) { 
y++ ; 
result.add(tempS + "=24"); 
if (y == x) { 
return result; 
} 
} 

temp1.clear(); 
temp2.clear(); 
temp1.add(String.valueOf(a[0])); 
temp1.add(String.valueOf(a[1])); 
temp1.add(String.valueOf(a[2])); 
temp2.add(e[i]); 
temp2.add(e[j]); 
temp = calculate24.bbb(temp2, temp1); 
aa.clear(); 
aa.add(temp); 
aa.add(String.valueOf(a[3])); 
bb.clear(); 
bb.add(e[k]); 
s = "(" + a[0] + e[i] + a[1] + e[j] + a[2] + ")" + e[k] 
+ a[3]; 
tempS = s; 
s = calculate24.bbb(bb, aa); 
if (Float.parseFloat(s) == 24) { 
y++ ; 
result.add(tempS + "=24"); 
if (y == x) { 
return result; 
} 
} 

temp1.clear(); 
temp2.clear(); 
temp1.add(String.valueOf(a[1])); 
temp1.add(String.valueOf(a[2])); 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -