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

📄 visualdebugger.java

📁 经典的货郎担问题解决办法
💻 JAVA
字号:
/*** This code was written by Kent Paul Dolan.  See accompanying file** TravellerDoc.html for status for your use.*/package com.well.www.user.xanthian.java.tools;import java.util.*;import com.coyotegulch.genetic.*;import com.well.www.user.xanthian.java.ui.*;public class VisualDebugger{  private TravellerCanvas     m_vdbCanvas     = null;  private TravellerChromosome m_earlierGenome = null;  private TravellerChromosome m_lastGenome    = null;  private TravellerChromosome m_fatherGenome  = null;  private TravellerChromosome m_motherGenome  = null;  private TravellerWorld      m_world         = null;  private boolean             m_sexual        = false;  private static long         oneSecond       = 1000;  public VisualDebugger  (    String callerName  )  {    m_vdbCanvas     = new TravellerCanvas();    m_vdbCanvas.setup( callerName );  }  public void setup( TravellerChromosome initialGenome )  {    m_world = initialGenome.getWorld();    m_lastGenome    = new TravellerChromosome( initialGenome );    m_earlierGenome = new TravellerChromosome( initialGenome );    m_sexual = false;    int genomeLength = ValuatorControls.getNumberOfCities();    m_vdbCanvas.clearPlayfield();    m_vdbCanvas.drawEdges    (      m_earlierGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ALTERNATE_ROUTES,      true // closed path    );    m_vdbCanvas.drawNodes    (      m_world.getCityDrawAtLocations(),      genomeLength,      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_CITY    );    m_vdbCanvas.drawImage();  }  public void setup  (    TravellerChromosome fatherGenome,    TravellerChromosome motherGenome  )  {    m_world = fatherGenome.getWorld();    m_fatherGenome  = new TravellerChromosome( fatherGenome );    m_motherGenome  = new TravellerChromosome( fatherGenome );    m_sexual        = true;    int genomeLength = ValuatorControls.getNumberOfCities();    m_vdbCanvas.clearPlayfield();    m_vdbCanvas.drawEdges    (      m_fatherGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_OTHER_ROUTE,      true // closed path    );    m_vdbCanvas.drawEdges    (      m_motherGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ALTERNATE_ROUTES,      true // closed path    );    m_vdbCanvas.drawNodes    (      m_world.getCityDrawAtLocations(),      genomeLength,      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_CITY    );    m_vdbCanvas.drawImage();  }  public void step( TravellerChromosome nextGenome, boolean snoozeToo )  {    this.step( nextGenome );    if (snoozeToo) { Debugging.snooze( 3 * oneSecond ); }  }  public void step( TravellerChromosome nextGenome )  {/*** Drawing is very effortful; don't do it at all if we aren't going to** change the image.*/    if ( !m_sexual )    {      if ( m_earlierGenome != null )      {        if ( nextGenome.looksLikeMe( m_lastGenome ) ) { return; }      }    }    int genomeLength = ValuatorControls.getNumberOfCities();    m_vdbCanvas.clearPlayfield();    if ( m_sexual )    {      m_vdbCanvas.drawEdges      (        m_fatherGenome.getGenomeAsArray(),        genomeLength,        m_world.getCityDrawAtLocations(),        m_world.CITY_X,        m_world.CITY_Y,        TravellerColors.COLOR_OTHER_ROUTE,        true // closed path      );      m_vdbCanvas.drawEdges      (        m_motherGenome.getGenomeAsArray(),        genomeLength,        m_world.getCityDrawAtLocations(),        m_world.CITY_X,        m_world.CITY_Y,        TravellerColors.COLOR_ALTERNATE_ROUTES,        true // closed path      );    }    else    {      m_vdbCanvas.drawEdges      (        m_lastGenome.getGenomeAsArray(),        genomeLength,        m_world.getCityDrawAtLocations(),        m_world.CITY_X,        m_world.CITY_Y,        TravellerColors.COLOR_OTHER_ROUTE,        true // closed path      );      m_vdbCanvas.drawEdges      (        m_earlierGenome.getGenomeAsArray(),        genomeLength,        m_world.getCityDrawAtLocations(),        m_world.CITY_X,        m_world.CITY_Y,        TravellerColors.COLOR_ALTERNATE_ROUTES,        true // closed path      );    }    m_vdbCanvas.drawEdges    (      nextGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_SEED_ROUTE,      true // closed path    );    m_vdbCanvas.drawNodes    (      m_world.getCityDrawAtLocations(),      genomeLength,      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_CITY    );    m_vdbCanvas.drawImage();    if ( !m_sexual )    {      if ( m_earlierGenome != null )      {        if ( ! nextGenome.looksLikeMe( m_lastGenome ) )        {          m_earlierGenome = new TravellerChromosome( m_lastGenome );          m_lastGenome = new TravellerChromosome( nextGenome );        }      }    }  }  public void done  (    TravellerChromosome parentGenome,    TravellerChromosome childGenome  )  {    int genomeLength = ValuatorControls.getNumberOfCities();    m_vdbCanvas.clearPlayfield();    m_vdbCanvas.drawEdges    (      parentGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ALTERNATE_ROUTES,      true // closed path    );    m_vdbCanvas.drawEdges    (      childGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ROUTE,      true // closed path    );    m_vdbCanvas.drawNodes    (      m_world.getCityDrawAtLocations(),      genomeLength,      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_CITY    );    m_vdbCanvas.drawImage();    Debugging.snooze( oneSecond );  }  public void done  (    TravellerChromosome fatherGenome,    TravellerChromosome motherGenome,    TravellerChromosome childGenome  )  {    int genomeLength = ValuatorControls.getNumberOfCities();    m_vdbCanvas.clearPlayfield();    m_vdbCanvas.drawEdges    (      fatherGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_OTHER_ROUTE,      true // closed path    );    m_vdbCanvas.drawEdges    (      motherGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ALTERNATE_ROUTES,      true // closed path    );    m_vdbCanvas.drawEdges    (      childGenome.getGenomeAsArray(),      genomeLength,      m_world.getCityDrawAtLocations(),      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_ROUTE,      true // closed path    );    m_vdbCanvas.drawNodes    (      m_world.getCityDrawAtLocations(),      genomeLength,      m_world.CITY_X,      m_world.CITY_Y,      TravellerColors.COLOR_CITY    );    m_vdbCanvas.drawImage();    Debugging.snooze( oneSecond );  }  public void toFront()  {    m_vdbCanvas.toFront();  }  public void closeWindow()  {    if ( m_vdbCanvas != null )    {      m_vdbCanvas.windowClose();      m_vdbCanvas = null;    }  }}

⌨️ 快捷键说明

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