Difference between revisions of "User talk:Voidious"

From Robowiki
Jump to navigation Jump to search
(→‎Point2D Help: drawCircle supporting code)
m (archive talk, add links)
 
(104 intermediate revisions by 20 users not shown)
Line 1: Line 1:
==Point2D Help==
+
For old discussions, see [[Archived talk:User:Voidious 20071111]] and [[Archived talk:User:Voidious 20110909]].
Hey. I'm trying to debug my Anti-Gravity Movement I'm working on implementing into [[GITS]]. I'm trying to draw a circle with Point2D, but I can't get it to compile. The code I'm using is <code>drawCircle(java.awt.Point2D.Double, int, java.awt.Color);</code>. I just want to know if I'm doing it right. Thank you --[[User:J Litewski|HACKhalo2]] 19:47, 21 May 2009 (UTC)
 
 
 
Hey dude - I'm guessing you saw that method in Dooki's DookiCape.java? I derived my drawing code from [[User:David Alves]]' DrawingBot (not migrated yet, see {{OldWiki|David_Alves/DrawingBot}}), which is similar to [[User:Nat/DrawingBot]]. Basically, you would need something like this to support that call:
 
 
 
<pre>
 
private static Vector _renderables = new Vector();
 
 
 
public void onPaint(Graphics2D g) {
 
    Iterator i = _renderables.iterator();
 
    while(i.hasNext()){
 
        Renderable r = (Renderable) i.next();
 
        r.render(g);
 
    }
 
    _renderables.clear();
 
}
 
 
 
public static void drawCircle(Point2D.Double center, double radius, Color color){
 
    _renderables.add(new Renderable.Circle(center, radius, color));
 
}
 
</pre>
 
...plus the Renderables class from DrawingBot (linked above). Does that help / make sense? --[[User:Voidious|Voidious]] 20:08, 21 May 2009 (UTC)
 
 
 
== Redirects ==
 
Hey, thanks for fixing all those redirects. I never knew that you had to do that to remove them from the category listings. --[[User:AaronR|AaronR]] 03:17, 12 November 2007 (UTC)
 
 
 
== Misc Chatter ==
 
 
 
Why not you run more TwinDuel now? I'd like to participated it. --[[User:Nat|Nat]] 07:50, 4 January 2009 (UTC)
 
 
 
Hey, have you read my message? Look [[User_talk:Nat#New_Thai_RoboWiki|here]] &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 09:24, 25 March 2009 (UTC)
 
 
 
So I see Nat said he'd be interested in the TwinDuel - is anyone else still interested? If I recall correctly, I needed to update my automation for newer versions of Robocode, but that shouldn't be a problem when I get some time. I've definitely been getting the itch recently to do some real Robocoding again, but I'm afraid that if I start, none of the rest of the wiki migration stuff will ever get done. =)
 
 
 
And whether just for TwinDuel or for some active Robocoding, I really need to either explore this "Soy Latte" version of Java 6, or find another machine to work on, as I've come to accept that I will never see Java 6 on my Mac. =(
 
 
 
--[[User:Voidious|Voidious]] 14:58, 23 April 2009 (UTC)
 
 
 
Thanks for reply. I think I add that comment very first day on this wiki ;D I don't really think the migration stuff will never finish even you start robocoding again. I'm currently take a pause from developing robot for migration work (and few other reasons) But, do you think I should finished Challenge 2K9 before start my own migration work? Does robocode require Java 6?  &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 15:23, 23 April 2009 (UTC)
 
 
 
: I don't know, I think that's up to you about Challenge 2K9. I haven't really read all the Challenge 2K9 info yet, but I'll try to soon. No, Robocode doesn't require Java 6, but some people use Java 6 in their TwinDuel bots, and it feels silly at this point to require people not to use Java 6 just because I don't have it on my Mac! --[[User:Voidious|Voidious]] 15:54, 23 April 2009 (UTC)
 
 
 
:: If you have time, please help me doing the thing on Komarious. I want it to controlled distance at 450 (using Dookious AgressiveDistanceController), surf non-firing wave (rolled at 1, weight 1/6), surf hit (rolled at 0.8, weight 2), surf visit (rolled 1, weight 1) from Komarious 1.78 please? Thanks. &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 16:08, 23 April 2009 (UTC)
 
 
 
I used SoyLatte successfully until I upgraded to Leopard (which has an optional 1.6 install).  Let me know if you ever want to integrate TwinDuel into the rumble.  --[[User:Darkcanuck|Darkcanuck]] 15:35, 23 April 2009 (UTC)
 
 
 
: Wow, cool, thanks for the info! I definitely heard of a developer beta at some point, but I think it was only for 64-bit processors, and I'm still on a 1st gen MacBook. Looking to upgrade soon, though, so maybe Java 6 is one more thing I can look forward to there. =) --[[User:Voidious|Voidious]] 15:54, 23 April 2009 (UTC)
 
:: You're probably right about 64-bits -- mine's one of the first 64bit models.  Buy SoyLatte worked great under X11 last time I tried. --[[User:Darkcanuck|Darkcanuck]] 16:41, 23 April 2009 (UTC)
 
 
 
: And a TwinDuel rumble sounds very appetizing! The scoring is the only kind of weird thing, since it's survivalist, ignores total score, and is 75 rounds. If we could make the ELO + Glicko + PL stuff look at % rounds won instead of % total score, that would seem more "right" to me. But even just a 2v2 team battle on an 800x800 battlefield with all the normal scoring could be cool, too, if all of the "weird scoring" is a problem. --[[User:Voidious|Voidious]] 15:54, 23 April 2009 (UTC)
 
 
 
: (Edit conflict) I'm curious, can roborumble client handler the 2000-bytes thing? And will 75 rounds take too long on the client? I don't know really that will anyone run battle for it. MeleeRumble and TeamRumble get only little battles before Deewiant come along with melee rumble, then GrubbmGait start to run team rumble. &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 16:01, 23 April 2009 (UTC)
 
 
 
:: We would have to modify the client to add the new game type and maybe work out a modified version of scoring.  The new server does have a % survival scoring option though.  With a low number of participants, it wouldn't require much client processing time (less than melee rumble for sure).  --[[User:Darkcanuck|Darkcanuck]] 16:41, 23 April 2009 (UTC)
 
 
 
----
 
 
 
Do you have any planned with any of your robots now? [[Dookious]] hasn't been updated for an ages. &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 14:08, 12 May 2009 (UTC)
 
 
 
: Well, rest assured that I'm working on something. =) I'm not sure when it will be released, maybe a couple more weeks? As for my existing bots, I don't have specific plans, but they have all been on my mind. I will definitely get back to Dookious sometime -- I can't let Skilgannon have all that fun all by himself. --[[User:Voidious|Voidious]] 14:20, 12 May 2009 (UTC)
 
 
 
== Segmenting Help ==
 
 
 
I WILL NOT GIVE UP!  I'm going to keep trying!  I need a bit of help.  I understand wave surfing much better now because of the tutorial you made.  Thanks!  In the [[GuessFactor Targeting Tutorial]], it teaches you what to change to segment it.  Very useful.  I've segmented my GF gun with distance, velocity, etc. already.  However, I only see part of what I have to change in the wave surfing code.  Could you give a simple example in the tutorial to help me?  Thanks. -- [[User:Awesomeness]]
 
 
 
Sure, here's a real simple example. Let's say you want to segment your surf stats on distance. Let's go real simple and just segment into "distance < 300" and "distance >= 300".
 
 
 
* In your instance variable declarations:
 
** <code>public static double _surfStats[] = new double[BINS];</code>
 
** becomes <code>public static double _surfStats[][] = new double[2][BINS];</code>
 
* You need to track distance at fire time in your EnemyWave class now.
 
** In the EnemyWave class definition, add <code>double distance;</code>
 
** In <code>onScannedRobot</code>, where you detect the bullet and initialize the EnemyWave class, add <code>ew.distance = e.getDistance();</code>
 
* In <code>logHit</code>:
 
** <code>_surfStats[x] += 1.0 / (Math.pow(index - x, 2) + 1);</code>
 
** becomes <code>_surfStats[ew.distance < 300 ? 0 : 1][x] += 1.0 / (Math.pow(index - x, 2) + 1);</code>. (That's an inline if/else statement, you don't have to do it like that if you don't want. Just need to use 0 or 1 for the first array index, depending on the distance.)
 
* Similarly, in <code>checkDanger</code>:
 
** <code>return _surfStats[index];</code>
 
** becomes <code>return _surfStats[surfWave.distance < 300 ? 0 : 1][index];</code>
 
 
 
Basically, any information you want to segment on, you would store that information in your wave class. Then whenever you access your _surfStats, you use that data to come up with the array indexes. Effectively, you end up with a bunch of surfStats[] arrays, one for each situation (segment). Make sense?
 
 
 
--[[User:Voidious|Voidious]] 01:05, 7 May 2009 (UTC)
 
 
 
There is another way doing this. I'm not using that way because it more complex. I use the magic of reference to do the thing similar to the one in [[GuessFactor Targeting Tutorial]]:
 
 
 
* In your instance variable declarations:
 
** <code>public static double _surfStats[] = new double[BINS];</code>
 
** becomes <code>public static double _surfStats[][] = new double[2][BINS];</code>
 
* You need to reference the new segment in your enemy wave now.
 
** In the EnemyWave class definition, add <code>double[] stats;</code>
 
** In <code>onScannedRobot</code>, where you detect the bullet and initialize the EnemyWave class, add <code>ew.stats = _surfStats[e.getDistance() < 300 ? 0 : 1];</code> (That's an inline if/else statement, you don't have to do it like that if you don't want. Just need to use 0 or 1 for the first array index, depending on the distance.)
 
* In <code>logHit</code>:
 
** <code>_surfStats[x] += 1.0 / (Math.pow(index - x, 2) + 1);</code>
 
** becomes <code>ew.stats[x] += 1.0 / (Math.pow(index - x, 2) + 1);</code>.
 
* Similarly, in <code>checkDanger</code>:
 
** <code>return _surfStats[index];</code>
 
** becomes <code>return surfWave.stats[index];</code>
 
 
 
(copy from yours, [[User:Voidious|Voidious]]) This way if you are adding more segment, you just need to change only one place (vs. 2 places). Actually I done the <code>ew.stats = _surfStats[ew.distance < 300 ? 0 : 1];</code> thing in constructor of EnemyWave class (by assigning the data to the global variable first of corse). &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 15:13, 7 May 2009 (UTC)
 
 
 
== Time to upgrade ==
 
 
 
Hi Voidious. I think the upgrade time has come. Please upgrade soon. Thanks. I know you are backing the database up, but first you need is "Wiki Lockdown" <!-- like:
 
<pre>
 
$wgGroupPermissions['*'    ]['edit']            = false;
 
$wgGroupPermissions['*'    ]['createpage']      = false;
 
$wgGroupPermissions['*'    ]['createtalk']      = false;
 
$wgGroupPermissions['user' ]['move']            = false;
 
$wgGroupPermissions['user' ]['edit']            = false;
 
$wgGroupPermissions['user' ]['createpage']      = false;
 
$wgGroupPermissions['user' ]['createtalk']      = false;
 
$wgGroupPermissions['user' ]['upload']          = false;
 
$wgGroupPermissions['user' ]['reupload']        = false;
 
</pre>
 
... will totally lockdown for anonymous and registered user. (LocalSettings.php) --> or your backup will never present. &raquo; <span style="font-size:0.9em;color:darkgreen;">[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]</span> &raquo; 15:21, 7 May 2009 (UTC)
 
 
 
Soon. =) Probably tomorrow, as I'll be on the away from the computer this evening. --[[User:Voidious|Voidious]] 15:50, 7 May 2009 (UTC)
 

Latest revision as of 20:37, 9 September 2011