📄 visualdebugger.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 + -