Talk:Assertive

From Robowiki
Revision as of 15:54, 2 May 2009 by Nat (talk | contribs) (original code)
Jump to navigation Jump to search

Where can I see the source? Awesomeness 21:13, 1 May 2009 (UTC)

Decompile it if you like. It seem that HUNRobar has confused on how to pack the source in .jar. » Nat | Talk » 05:51, 2 May 2009 (UTC)

Okay. Awesomeness 13:46, 2 May 2009 (UTC)

In case you can't find the decompiler, here it is:

package robar.nano;

import robocode.*;
import robocode.util.Utils;

public class Assertive extends AdvancedRobot {
    static double direction = 1D;
    static StringBuffer history = new StringBuffer("00000000000000000000000000000");
    static final double APPROACHANGLE = -Math.toRadians(20D);
    static final double NINTYDEG = Math.PI/2;
    static final double FIREPOWER = 2.5D;
    static final double BULLETVEL = 12.5D;
    static final int PATTERN_DEPTH = 30;

    public void run()
    {
        setAdjustGunForRobotTurn(true);
        setAllColors(java.awt.Color.red);
        setTurnRadarRight(Double.POSITIVE_INFINITY);
    }

    public void onScannedRobot(ScannedRobotEvent e)
    {
        setTurnRightRadians(Utils.normalRelativeAngle(e.getBearingRadians() + NINTYDEG + APPROACHANGLE * direction));
        if(getDistanceRemaining() == 0.0D)
        {
            direction = -direction;
            setAhead(Math.random() * 144D * direction);
        }
        double dist = e.getDistance();
        double absB = e.getBearingRadians() + getHeadingRadians();
        int matchLenght = PATTERN_DEPTH;
        history.insert(0, (char)(int)(Math.sin(e.getHeadingRadians() - absB) * e.getVelocity()));
        int index;
        while((index = history.toString().indexOf(history.substring(0, matchLenght--), 1)) < 0) ;
        matchLenght = index - (int)(dist / BULLETVEL);
        do
            absB += Math.asin((double)(byte)history.charAt(index--) / dist);
        while(index >= Math.max(0, matchLenght));
        setTurnGunRightRadians(Utils.normalRelativeAngle(absB - getGunHeadingRadians()));
        setFire(FIREPOWER);
        setTurnRadarLeft(getRadarTurnRemaining());
    }
}

This is much like the original one yet difference from decompiled one since the decompiler can't preserve the use of static final field inside function. » Nat | Talk » 13:54, 2 May 2009 (UTC)

You cannot post new threads to this discussion page because it has been protected from new threads, or you do not currently have permission to edit.

There are no threads on this page yet.