When the race was on to create the smallest efficient bot, there were many contenders that appeared simultaneously.
What was remarkable was that they all had - or could be redefined with - the same basic structure: just four lines of active code.
For me, the HaikuBots were a revelation of beauty - poetry in robocode form. I had really good fun writing some of them.
Please vote below: Are lines like:
ahead((fireBullet(3) == null)?1:1)*100);
to be allowed in HaikuBots? Is it an imaginative way to reduce lines, or is it cheating? Please vote:
|Allow them||Disallow them|
To make it easier to keep track I'd rather we put our names in the appropriate column, as I've done. Whoever put the '1' down could probably change that or add their name and increment the top counter. I think that it's a reasonable way to push the limit of haikus, similarly to all the codesize tricks you find in minis/micros/nanos. I would agree that it's cheating if it allowed significantly more code into a haiku, but that's not really the case, other than fireBullet() I believe all the 'do something' methods in Robocode (setXxx(), their equivalent blocking calls, execute(), waitFor(), etc) return void, and such a method can't be embedded in this fashion in java. -- Kuuran
The one was put by me, in the wrong collumn. I've fixed that now. -- Tango
What about lines like:
ahead((angleLog[getTime()] = e.getHeading()) == angleLog[getTime()] ? 20 : 20);
ahead(20 + (angleLog[getTime()] = e.getHeading()) - angleLog[getTime()]);
I think you see where I'm going with this... -- Simonton
My AG haiku bot is done! It loses to half the samples, but it works and it definitly has something resembling anti-gravity. I'm sure this bot might do decently well in a haiku-bot 1 on 1 match (as the anti-gravity isn't complex enough for multiple opponents). What I want to see someone do now is to make a wave-surfing haikubot. -- Chase-san