Talk:Watermelon/Code

From Robowiki
< Talk:Watermelon
Revision as of 09:36, 1 July 2010 by RednaxelaBot (talk | contribs) (Using <syntaxhighlight>.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

It will be more fun if you do this instead:

public void doPaint(Graphics2D g) {
	g.setStroke(new java.awt.BasicStroke(2f));
	if (bot.getOthers() == 1) {
		double radius, arcSegment, segmentHeading;
		double time = bot.getTime();
		for (Wave w : waves) {
			if (w.paint) {
				radius = (time - w.ctime) * w.velocity;
				arcSegment = w.extent / NUM_WAVEBUCKETS;
				for (int i = 0; i < NUM_WAVEBUCKETS; i++) {
					segmentHeading = w.heading + w.clockwise * (arcSegment * i - w.extent / 2);
					g.setColor(Color.getHSBColor( // this is Hue, Saturation, and Brightness
						0.058333f,
						1.0f,
						(float) (0.15 + 0.85 * waveBuckets[w.segment][i] / bucketMax[w.segment])
					));
					g.draw(new Arc2D.Double(
						w.origin.x - radius,
						w.origin.y - radius,
						radius * 2,
						radius * 2,
						segmentHeading,
						arcSegment,
						Arc2D.OPEN
					));
				}
			}
		}
	}
}

=) » Nat | Talk » 13:43, 10 June 2009 (UTC)

Originally, that's what I did, but with more waves on the screen I was skipping turns. -- Synapse 14:37, 10 June 2009 (UTC)

Really? I think robocode allow unlimited time when you are drawing. » Nat | Talk » 14:43, 10 June 2009 (UTC)

Nope -- I noticed in one of the changelogs that painting is now done by the robot's thread and counts against your cpu time. Makes sense, since you can really put any code (movement, targeting, etc.) inside of onPaint(). Nice waves, by the way! --Darkcanuck 14:54, 10 June 2009 (UTC)
Yeah, v1.6.1 does. But later changelogs (1.6.2beta) state that "Bug [2214620]: Robots were paying CPU time for painting. Now Robocode gives a robot unlimited time when painting is enabled on UI (in the robot dialog) for that robot.". =) » Nat | Talk » 15:11, 10 June 2009 (UTC)
Interesting -- if you switch on painting for a bot, it gets unlimited time? I guess that's ok. --Darkcanuck 03:29, 11 June 2009 (UTC)
Yeah I think. Sometimes when I ran RoboRumble and Robocode together (separate installations of course). Phoenix usually skips a lot of turn (running with Shadow =)). I will need to turn both bot debugging graphics on to prevent that. I guess it is OK since RoboRumble doesn't turn the debugging graphics on. » Nat | Talk » 09:23, 11 June 2009 (UTC)