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

📄 utils.java

📁 2004年robotcup世界冠军源代码
💻 JAVA
字号:
package MRL.Utilities;import MRL.Utilities.Partitioning.Path;import java.io.*;import java.util.*;import yab.agent.Condition;import yab.agent.object.*;public abstract class Utils { //saeed 85-2-3  public static int getConditionCount(Collection col , Condition cond){    int res = 0;    for(Iterator it = col.iterator();it.hasNext();){      if(cond.eval(it.next())) res++;    }    return res;  }  public static void initWriting(){    if(! fileNameSet){        synchronized(dirName){            setNewFileName();        }    }  }  public static void printInFile(String fName, String str) {    if(! MRL.MRLConstants.WRITE_MODE ) return;    initWriting();    FileWriter fw;    try {      fw = new FileWriter(          dirName+ fName, true);      fw.write(str);      fw.close();    }    catch (Exception ex) {      System.out.println(ex);    }  }  public static void setNewFileName() {    if(fileNameSet) return;    dirName ="";    fileNameSet = true;    String res = Integer.toString((new java.util.GregorianCalendar()).get(java.util.Calendar.DAY_OF_YEAR));    String tmp = dirBaseName+"/"+res;    File f;    int i = 0;    for(;;i++){      f = new java.io.File(tmp+"_" + i);      if(!f.exists()) break;      //if(!f.getParentFile().exists()) break;    }    f.mkdirs();    dirName = tmp + "_" + i + "/";  }  private static float [] res = null;  public static float [] getAlphasFromFile(){    if(res != null) return res;    FileReader fr;    String fName = dirBaseName + "InitAlphas.txt";    char [] buff = new char [10000];    try{      fr = new FileReader(fName);      fr.read(buff,0,buff.length);      fr.close();    }    catch (Exception ex){      System.out.print(ex);      return null;    }    String resR = new String(buff);    String avgVal="";    int indx = resR.indexOf("#");    if(indx!= -1){      String [] t = resR.split("#");      avgVal= t[1];    }    else{      avgVal=resR;    }    String [] vals = avgVal.split("&");    vals[vals.length-1] = vals[vals.length-1].trim();    res= new float [Path.valCount];    for(int i = 0 ; i < res.length;i++){      System.out.println("vals["+i+"] : " + vals[i]);      res[i] = Float.parseFloat(vals[i]);    }    return res;  }  private static Collection aiFs = new ArrayList();  private static int count=0;  public static boolean writeAlphasToFile(float [] ais,int totalData){    aiFs.add(ais);    count++;    if(count == totalData){      writeAlphasToFile();      return true;    }    return false;  }  protected static boolean writeAlphasToFile(){    if(! MRL.MRLConstants.WRITE_MODE) return false;    initWriting();    FileWriter fw;    File f,fB;    String fName = dirBaseName + "InitAlphas.txt";    String end = dirName.substring(39,dirName.length()-1);    System.out.println("end : " + end);    String backFN = dirBaseName + "InitAlphas/InitAlphas_" + end +".txt";    String res;    try{      f=new File(fName);      if(f.exists()) {        fB = new File(backFN);        f.renameTo(fB);        if(! fB.exists()) throw new Error("File Didn't Renamed");        if(f.exists()) throw new Error("File Didn't Renamed");      }      float [] ais;      float [] avgAis = new float [Path.valCount];      Arrays.fill(avgAis,0f);      fw = new FileWriter(fName);      for(Iterator it = aiFs.iterator();it.hasNext();){        res ="";        ais = (float[]) it.next();        for(int i = 0 ; i < ais.length;i++){          if(i>0) res += "&";          avgAis[i] += ais[i];          res+= Float.toString(ais[i]) ;        }        res += "\n";        fw.write(res);      }      res ="#";      for(int i = 0 ; i< avgAis.length;i++){        avgAis[i] /= aiFs.size();        if(i>0) res +="&";        res += Float.toString(avgAis[i]);      }      fw.write(res);      fw.close();    }    catch (Exception ex){      System.out.print(ex);      return false;    }    System.out.println("Writing ALPHAS Finished ..........................................................");    return true;  }  private static final String dirBaseName = "/MRL/Rescue Simulation/MRL/Agent/Vals/";  private static boolean fileNameSet = false;  private static String dirName = new String(dirBaseName);  public final static String vivalfileName = "Vi_Vals.txt";  public final static String pathfileName = "PATH_VALS.txt";  public final static String alphafileName = "ALPHAS.txt";  public final static String msgCenterFileName = "MSGS_CENTR.txt";  public final static String msgAgentFileName = "MSGS_AGENT.txt";  public static int size(Condition cond, ArrayList list) {      int result = 0;      for (Iterator it = list.iterator(); it.hasNext(); ) {          if (cond.eval(it.next())) {              result++;          }      }      return result;  }}

⌨️ 快捷键说明

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