duobianxingyouxi.txt

来自「算法分析的多边形游戏,通过算法实现多边形之间数字的计算」· 文本 代码 · 共 176 行

TXT
176
字号
package suanfa1.java;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Suanfa extends Applet 
implements ActionListener{
 /**
  * 
  */
 private static final long serialVersionUID = 1L;
 char []a = {'t','t','t','x','x'};
 //int []m = {4,-7,4,2,5};
 int []m = {0,0,0,0,0};
 int []m1 ;
 int ma[];
 int maxf[]= {0,0,0,0,0};
 int maxf1[]= {0,0,0,0,0};
 
 boolean ok = false;
 Label label1 = null;
 TextField text1 = null;
 Label label2 = null;
 TextField text2 = null;
 Label label3 = null;
 TextField text3 = null;
 Label label4 = null;
 TextField text4 = null;
 Label label5 = null;
 TextField text5 = null;
 public static void main(String[] args) {
  // TODO Auto-generated method stub
 }
 public void init(){
  setSize(500+getWidth()/2,400+getHeight()/2);
  label1 = new Label("第一个顶点:");
  add(label1);
  text1 = new TextField("0",1);
  text1.addActionListener(this);
  add(text1);
  
  label2 = new Label("第二个顶点:");
  add(label2);
  text2 = new TextField("0",1);
  text2.addActionListener(this);
  add(text2);
  
  label3 = new Label("第三个顶点:");
  add(label3);
  text3 = new TextField("0",1);
  text3.addActionListener(this);
  add(text3);
  
  label4 = new Label("第四个顶点:");
  add(label4);
  text4 = new TextField("0",1);
  text4.addActionListener(this);
  add(text4);
  
  label5 = new Label("第五个顶点:");
  add(label5);
  text5 = new TextField("0",1);
  text5.addActionListener(this);
  add(text5);
  
  
 }
 public void paint(Graphics g){
  
  int mm = 0;
  char m1;
  char n[] = {0,0,0,0,0};
  m1 = a[a.length-1];
  n[0] = m1;
  for(int i = 1;i<a.length;i++){
   n[i] = a[i-1];
  }
  //检测是否交换
  System.out.println(n[0]);
  maxf1 = getDingdian();
     
  if(getOk() == true)
  while(mm<5){
   //保存数组a[]经过交换的数据
   
	  int maxf[]= {0,0,0,0,0};		
		for(int b = 0; b<5;b++){
			maxf[b]=maxf1[b];			
		}
   
   //以下核心算法   
   //记录第一个k的值
   
   int j = 0 ;
   int t[] = {0,0,0,0,0};
   
   for(int k = mm;k<5;k++){
    t[j] = k;
    j++;
    //以下循环计算从k开始的数据
    for(int i = k; i <4;i++){    
     if(a[k] == 't'){
      maxf[i] = maxf[i]+maxf[i+1];
      maxf[i+1]= maxf[i];
     }
     else {
      maxf[i] = maxf[i]*maxf[i+1];
      maxf[i+1]= maxf[i];
     }     
     k++;
     System.out.println(maxf[i]);
    } 
    System.out.println();
    
    //数组m[]的数据
    int minf[]= {0,0,0,0,0};
    minf[0] = maxf[m.length-1];
    for(int i = 1;i<m.length;i++){
     minf[i] = maxf[i-1];
    } 
    //以下循环用来计算k以前的数据
    for(int z = 0;z<t[0];z++){
     if(n[z] == 't'){     
      minf[z] = minf[z]+minf[z+1];
      minf[z+1]= minf[z];
     }
     else if(n[z] =='x'){     
      minf[z] = minf[z]*minf[z+1];
      minf[z+1]= minf[z];
     }
     
     System.out.println(minf[z]);
    }
   }
   mm++;
   g.fill3DRect(getWidth()/2,getHeight()/2,7,7,true);
   g.setColor(Color.blue);
  }
  g.drawLine(200,100,360,100);
  g.setColor(Color.blue);
  g.dispose();
  
 }
  
 public void setDingdian(int m[]){
  this.m =  m;
 }
 public int[] getDingdian(){
  return m;
 }
 public void setOk(boolean ok){
  this.ok = ok;
 }
 public boolean getOk(){
  return ok;
 }
 public void actionPerformed(ActionEvent e) {
  
  int m01[] = {0,0,0,0,0};
  m01[0] = Integer.parseInt(text1.getText());
  m01[1] = Integer.parseInt(text2.getText());
  m01[2] = Integer.parseInt(text3.getText());
  m01[3] = Integer.parseInt(text4.getText());
  m01[4] = Integer.parseInt(text5.getText());
  setDingdian(m01);
  setOk(true);
  repaint();
  System.out.print(m[0]+"\t"+m[1]+
    "\t"+m[2]+"\t"+m[3]+"\t"+m[04]+"\t");
  }
}

⌨️ 快捷键说明

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