User:Blubex/Snippets

From Robowiki
< User:Blubex
Revision as of 05:59, 19 December 2011 by Blubex (talk | contribs) (If you see anything that can be fixed with this, feel free. Thanks.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Some bits of code I've put together and posted

 double x = getX() - getWidth() / 2;
    double y = getY() - getWidth() / 2;
    double a = Math.toDegrees(Math.atan(x / y)); 
		double length = getBattleFieldWidth() - (getBattleFieldWidth() - getX()); 
		double height = getBattleFieldHeight() - (getBattleFieldHeight() - getY());
		double hypotenuse = Math.sqrt(length*length + height*height); //pythagorean theorem
    turnRight(180 - getHeading() + a); // turn to face lower-left corner
ahead(hypotenuse - 40); //ahead -almost- to the corner. change the 40 to different numbers if you want.

This code sends a robot directly to the lower-left corner. How it works is that length and height are calculated and a hypotenuse is gathered. Then it turns current bearing - angle to lower-left corner. (If anyone can explain this better, please do. It's hard for me to understand, so I'm not very good at explaining this.) If you would like to use this code, put it in your run() method. There are a lot of ways you could advance this code for your robot. Some enhancements would be to make the robot choose a corner, such as sample.Corners does. You could also make something to turn a little while moving to the corner, to have more bullet avoidance.


--Blubex 04:59, 19 December 2011 (UTC)