Difference between revisions of "User talk:Voidious"

From Robowiki
Jump to navigation Jump to search
m (→‎Segmenting Help: my thing)
m (archive talk, add links)
 
(110 intermediate revisions by 21 users not shown)
Line 1: Line 1:
== Redirects ==
+
For old discussions, see [[Archived talk:User:Voidious 20071111]] and [[Archived talk:User:Voidious 20110909]].
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)
 
 
 
== 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)
 

Latest revision as of 20:37, 9 September 2011