如题,最好有详细代码,麻烦大家了。
解决方案 »
- 如何替换html文件中的字符啊
- 请各位推荐关于Java游戏编程的书籍
- 在线求救大侠们,如何给容器设置背景图片?
- 新手,问Servlet同JavaBean的区别在哪。我怎样判断一个class什么
- 学着写了一个buttonEvent的例子,有两个地方不明白,请指点一下。谢谢。
- 请问这个算法要怎么实现?
- 用java的socket作client端,用vc的socket做server端,应该注意些什么?
- 同一台机器可不可以安装几套不同版本的JDK?
- 为什么还出现Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
- 装jet怎吗象死机,装不成,几次都是这个样,请问咋办?
- 各位csdn上的高手哪个有联通的spip网关的源代码呀,用java写的,如果没有可以进来知道一下吗
- 这个配置用jbuilder2006会不会很慢
你写写看。
我看你有长进没有~
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class game24 implements ActionListener
{
JTextField num1;
JTextField num2;
JTextField num3;
JTextField num4;
JLabel string1;
JLabel string2;
JLabel string3;
JLabel string4;
JButton button;
JLabel label;
JPanel panel;
int[] store; public static void main(String[] args){
JFrame frame=new JFrame("算24点");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout()); game24 mygame=new game24();
mygame.num1=new JTextField(12);
mygame.num2=new JTextField(12);
mygame.num3=new JTextField(12);
mygame.num4=new JTextField(12);
mygame.string1=new JLabel("数字1:");
mygame.string2=new JLabel("数字2:");
mygame.string3=new JLabel("数字3:");
mygame.string4=new JLabel("数字4:");
mygame.button=new JButton("计算");
mygame.label=new JLabel();
mygame.panel=new JPanel();
mygame.button.addActionListener(mygame); frame.add(mygame.string1);
frame.add(mygame.num1);
frame.add(mygame.string2);
frame.add(mygame.num2);
frame.add(mygame.string3);
frame.add(mygame.num3);
frame.add(mygame.string4);
frame.add(mygame.num4);
mygame.panel.setLayout(new GridLayout(2,1));
mygame.panel.add(mygame.button);
mygame.panel.add(mygame.label);
frame.add(mygame.panel);
//frame.add(mygame.button);
//frame.add(mygame.label); mygame.store=new int[4]; frame.setSize(200,220);
frame.setVisible(true);
} public void actionPerformed(ActionEvent e){
Double[] a=new Double[4];
a[0]=Double.valueOf(num1.getText());
a[1]=Double.valueOf(num2.getText());
a[2]=Double.valueOf(num3.getText());
a[3]=Double.valueOf(num4.getText());
if(!result(a)){
label.setText("无解");
label.validate();
}
//System.out.println(Integer.valueOf(num1.getText()));
} public boolean result(Double a[]){
Double[] b=new Double[4];
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++){
if(i==j||k==i||k==j){
continue;
}
b[0]=a[i];
b[1]=a[j];
b[2]=a[k];
b[3]=a[6-i-j-k];
if(four(b)){
showresult(b,store);
return true;
}
}
}
}
return false;
} public boolean four(Double[] a){
Double[] b1=two(a[0],a[1]);
Double[] b2=two(a[2],a[3]);
//(a+b)+(c+d)
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
Double[] b3=two(b1[i],b2[j]);
for(int k=0;k<4;k++){
//if(b3[k]==24.0){
if(Math.abs(b3[k]-24)<Math.exp(-6)){
store[0]=1;
store[1]=i;
store[2]=k;
store[3]=j;
return true;
}
}
}
}
//((a+b)+c)+d
for(int i=0;i<4;i++){
Double[] b4=two(b1[i],a[2]);
for(int j=0;j<4;j++){
Double[] b5=two(b4[j],a[3]);
for(int k=0;k<4;k++){
//if(b5[k]==24.0){
if(Math.abs(b5[k]-24)<Math.exp(-6)){
store[0]=2;
store[1]=i;
store[2]=j;
store[3]=k;
return true;
}
}
}
}
//(a+(b+c))+d
Double[] b6=two(a[1],a[2]);
for(int i=0;i<4;i++){
Double[] b3=two(a[0],b6[i]);
for(int j=0;j<4;j++){
Double[] b4=two(b3[j],a[3]);
for(int k=0;k<4;k++){
if(Math.abs(b4[k]-24)<Math.exp(-6)){
store[0]=3;
store[1]=j;
store[2]=i;
store[3]=k;
return true;
}
}
}
}
//a+((b+c)+d)
for(int i=0;i<4;i++){
Double[] b3=two(b6[i],a[3]);
for(int j=0;j<4;j++){
Double[] b4=two(a[0],b3[j]);
for(int k=0;k<4;k++){
if(Math.abs(b4[k]-24)<Math.exp(-6)){
store[0]=4;
store[1]=k;
store[2]=i;
store[3]=j;
return true;
}
}
}
}
//a+(b+(c+d))
for(int i=0;i<4;i++){
Double[] b3=two(a[1],b2[i]);
for(int j=0;j<4;j++){
Double[] b4=two(a[0],b3[j]);
for(int k=0;k<4;k++){
if(Math.abs(b4[k]-24)<Math.exp(-6)){
store[0]=5;
store[1]=k;
store[2]=j;
store[3]=i;
return true;
}
}
}
}
return false;
} public Double[] two(Double a,Double b){
Double[] c=new Double[4];
c[0]=a+b;
c[1]=a-b;
c[2]=a*b;
if(b==0){
b=-1000.0;
}
c[3]=a/b;
return c;
} public void showresult(Double paramnum[],int operation[]){
int[] num=new int[4];
for(int i=0;i<4;i++){
num[i]=paramnum[i].intValue();
} String[] stringopration=new String[3];
for(int i=0;i<3;i++){
if(operation[i+1]==0)stringopration[i]="+";
if(operation[i+1]==1)stringopration[i]="-";
if(operation[i+1]==2)stringopration[i]="*";
if(operation[i+1]==3)stringopration[i]="/";
}
String text=new String();
if(operation[0]==1){//(a+b)+(c+d)
text="("+String.valueOf(num[0])+stringopration[0]+String.valueOf(num[1])+")"+stringopration[1]+"("+String.valueOf(num[2])+stringopration[2]+String.valueOf(num[3])+")=24";
}else if(operation[0]==2){//((a+b)+c)+d
text="(("+String.valueOf(num[0])+stringopration[0]+String.valueOf(num[1])+")"+stringopration[1]+String.valueOf(num[2])+")"+stringopration[2]+String.valueOf(num[3])+"=24";
}else if(operation[0]==3){//(a+(b+c))+d
text="("+String.valueOf(num[0])+stringopration[0]+"("+String.valueOf(num[1])+stringopration[1]+String.valueOf(num[2])+"))"+stringopration[2]+String.valueOf(num[3])+"=24";
}else if(operation[0]==4){//a+((b+c)+d)
text=String.valueOf(num[0])+stringopration[0]+"(("+String.valueOf(num[1])+stringopration[1]+String.valueOf(num[2])+")"+stringopration[2]+String.valueOf(num[3])+")=24";
}else if(operation[0]==5){//a+(b+(c+d))
text=String.valueOf(num[0])+stringopration[0]+"("+String.valueOf(num[1])+stringopration[1]+"("+String.valueOf(num[2])+stringopration[2]+String.valueOf(num[3])+"))=24";
} System.out.println(text);
label.setText(text);
label.validate();
/*System.out.println(operation[0]);
System.out.print(num[0]);
for(int i=1;i<4;i++){
if(operation[i]==0)System.out.print("+");
if(operation[i]==1)System.out.print("-");
if(operation[i]==2)System.out.print("*");
if(operation[i]==3)System.out.print("/");
System.out.print(num[i]);
}*/
}
};jdk1.5