Package com.barrybecker4.simulation.habitat.creatures

Examples of com.barrybecker4.simulation.habitat.creatures.CreatureType


     * @param params
     */
    public void optimizerChanged(ParameterArray params) {
        // update our current best guess at the solution.
        TantrixPath path = (TantrixPath)params;
        solution_ = new TantrixBoard(path.getTilePlacements(), path.getPrimaryPathColor());
        puzzlePanel_.refresh(solution_, numTries_++);
    }
View Full Code Here


        drawGrid(g2, board);

        Location topLeftCorner = board.getBoundingBox().getTopLeftCorner();

        for (Location loc : board.getTantrixLocations()) {
            TilePlacement placement = board.getTilePlacement(loc);
            tileRenderer.render(g2, placement, topLeftCorner, hexRadius);
        }
    }
View Full Code Here

            optimizer.doOptimization(strategy, initialGuess, SOLVED_THRESH);

        solution_ =
            new TantrixBoard(((TantrixPath)solution).getTilePlacements(), board.getPrimaryColor());

        TilePlacementList moves;
        if (evaluateFitness(solution) >= SOLVED_THRESH) {
            moves = ((TantrixPath)solution).getTilePlacements();
        } else {
            moves = null;
        }
View Full Code Here

        int numTiles = path.size();
        double distance = path.getEndPointDistance();
        boolean isLoop = distance == 0 && path.isLoop();

        ConsistencyChecker checker = new ConsistencyChecker(path.getTilePlacements(), path.getPrimaryPathColor());
        int numFits = checker.numFittingTiles();
        boolean allFit = numFits == numTiles;
        boolean consistentLoop = isLoop && allFit;
        boolean perfectLoop = false;
        double compactness = determineCompactness(path);
View Full Code Here

        boolean perfectLoop = false;
        double compactness = determineCompactness(path);

        if (consistentLoop) {
            Tantrix tantrix = new Tantrix(path.getTilePlacements());
            InnerSpaceDetector innerDetector = new InnerSpaceDetector(tantrix);
            perfectLoop = !innerDetector.hasInnerSpaces();
            //System.out.println("perfect loop");
        }

        double fitness =
                LOOP_PROXIMITY_WEIGHT * (numTiles - distance) / (0.1 + numTiles)
View Full Code Here

                               boolean useConcurrency) {
        super(board);
        puzzlePanel_ = puzzlePanel;
        strategy = useConcurrency ? OptimizationStrategyType.CONCURRENT_GENETIC_SEARCH :
                                    OptimizationStrategyType.GENETIC_SEARCH;
        evaluator = new PathEvaluator();
    }
View Full Code Here

     * @return list of moves to a solution.
     */
    @Override
    public TilePlacementList solve()  {

        ParameterArray initialGuess = new TantrixPath(board);
        assert(initialGuess.size() > 0) : "The random path should have some tiles!";
        long startTime = System.currentTimeMillis();

        Optimizer optimizer = new Optimizer(this);
        optimizer.setListener(this);

View Full Code Here

     * We show the current status.
     * @param params
     */
    public void optimizerChanged(ParameterArray params) {
        // update our current best guess at the solution.
        TantrixPath path = (TantrixPath)params;
        solution_ = new TantrixBoard(path.getTilePlacements(), path.getPrimaryPathColor());
        puzzlePanel_.refresh(solution_, numTries_++);
    }
View Full Code Here

    /**
     * Constructor.
     */
    public TantrixViewer() {
        renderer_ = new TantrixBoardRenderer();
    }
View Full Code Here

        commonInit(createSliderProperties());
    }

    private SliderProperties[] createSliderProperties()  {

        CreatureType type = creaturePop_.getType();
        double normSpeed = type.getNormalSpeed();
        SliderProperties[] props = normSpeed==0? new SliderProperties[4] : new SliderProperties[6];


        String creatureName = type.getName();
        setBackground(type.getColor());

        double size = type.getSize();
        props[0] = new SliderProperties(creatureName + SIZE_LABEL,
                                        MIN_FACTOR * size, MAX_FACTOR * size, size, 200);
        int gestation = type.getGestationPeriod();
        props[1] = new SliderProperties(creatureName + GESTATION_LABEL,
                                        1, (int)(MAX_FACTOR * gestation), gestation);
        int starveTime = type.getStarvationThreshold();
        props[2] = new SliderProperties(creatureName + STARVATION_LABEL,
                                       (int)(MIN_FACTOR * starveTime), (int)(MAX_FACTOR * starveTime), starveTime);
        int nutrition = type.getNutritionalValue();
        props[3] = new SliderProperties(creatureName + NUTRITION_LABEL,
                                         1, (int)(MAX_FACTOR * nutrition), nutrition);
        if (normSpeed > 0) {
            props[4] = new SliderProperties(creatureName + NORM_SPEED_LABEL,
                                             0, MAX_FACTOR * normSpeed, normSpeed, 1000.0);
            double maxSpeed = type.getMaxSpeed();
            props[5] = new SliderProperties(creatureName + MAX_SPEED_LABEL,
                                             0, MAX_FACTOR * maxSpeed, maxSpeed, 1000.0);
        }
        return props;
    }
View Full Code Here

TOP

Related Classes of com.barrybecker4.simulation.habitat.creatures.CreatureType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.