Author Topic: Bot Challenge!  (Read 7555 times)

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Bot Challenge!
« on: November 23, 2006, 01:02:29 PM »
Here's something that I thought would be fun, and stimulate innovation.

Rather than an ongoing league, I'm going to set little bot-engineering challenges for any takers to solve. I'll announce the rules, the DB version required, sometimes a sim file, and the objectives.

Challengers will have a a few weeks, specified beforehand, to come up with a solution and PM me their bot. Only one bot per challenger, and you should make sure it works before sending.

There will be three objectives, with increasing difficulty.

Completing the first, easiest objective will get you a bronze award. Completing the second objective, which is usually an extension of the first, will get you a silver award. Completing the third, which will usually contains a whole new level of difficulty, will get you a gold award.

Winners will be displayed in a bot challenge hall of fame.

Would it be possible for me to have my own subforum in 'General' for this?

In the mean time, use this thread to comment. What do you think of the idea?
« Last Edit: November 23, 2006, 01:03:03 PM by Elite »

Offline Jez

  • Moderator
  • Bot Overlord
  • *****
  • Posts: 788
    • View Profile
Bot Challenge!
« Reply #1 on: November 23, 2006, 01:41:42 PM »
Elaborate please, I don't know what I think until I see an example challenge.

Just a guess; I'll get bronze every time because silver will involve doing it with ties and gold will involve doing it with MB's!  
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Henk

  • Bot Destroyer
  • ***
  • Posts: 110
    • View Profile
Bot Challenge!
« Reply #2 on: November 23, 2006, 02:11:33 PM »
I like it  What's the first challenge?
cond
*.DBbugs 0 =
start
.rejoice inc
stop

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Bot Challenge!
« Reply #3 on: November 23, 2006, 02:45:51 PM »
Here's an example challenge to keep you occupied until the real thing

The sim is attached. There's gravity, there's no top-down wrap, and there's no friction or costs. Movement sysvars (ie. .up, .dn etc.) are disabled.

There are some yellow bots. If they see your bot in the vicinity, they will tie to it, and spin round. Your bot will be attached on to the lowest bot and spun in this way.

If you use the tie to store 1 in memory location 51 of the yellow bot, then the yellow bot will expand the tie and launch you with some force.

The challenge: You are attached to the lowest yellow bot. Using the launch function of the yellow bots, build a bot to launch itself from bot to bot until it reaches the top.

Other examples will include mazes, MB challenges, and lots more. You'll have to wait and see

EDIT: Forgot to mention, it's in 2.42.9e
« Last Edit: November 23, 2006, 02:54:46 PM by Elite »

Offline Jez

  • Moderator
  • Bot Overlord
  • *****
  • Posts: 788
    • View Profile
Bot Challenge!
« Reply #4 on: November 23, 2006, 04:19:54 PM »
Ooh! It's like one of those puzzle games,   I've spent to much time watching Dawkins to do it tonight but will try it soon!
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot Challenge!
« Reply #5 on: November 23, 2006, 11:23:15 PM »
Sounds fun.  I'll set up a sub forum for you.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Bot Challenge!
« Reply #6 on: November 23, 2006, 11:57:46 PM »
Okay, there's a new league sub forum for this, and I've moved the topic.

Offline Jez

  • Moderator
  • Bot Overlord
  • *****
  • Posts: 788
    • View Profile
Bot Challenge!
« Reply #7 on: November 24, 2006, 10:35:24 AM »
Ok, ok, I can't even get past the first hurdle, adding another bot to the sim.  

I think I deserve a booby prize for crashing the game lots and getting it to run really really slowly every now and then though.  

If you would be so kind as to explain to me how to enter my bot into the sim, in words of not more than 14 syllables I would be very grateful. Sorry to be a pain.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
Bot Challenge!
« Reply #8 on: November 24, 2006, 11:13:01 AM »
Oh, sorry Jez, I forgot to mention that ...

Open the sim, then click on the start new simulation button, then add your bot, then press 'Change' rather than 'Start new'. You can then insert your bot with the insert bot tool

And thanks for the new subforum Num!  

First challenge should be posted sometime soon.

EDIT: Woo! 500th post!
« Last Edit: November 24, 2006, 12:17:52 PM by Elite »

Offline Jez

  • Moderator
  • Bot Overlord
  • *****
  • Posts: 788
    • View Profile
Bot Challenge!
« Reply #9 on: November 24, 2006, 12:47:49 PM »
I've just seen that you posted a new challenge so I'll have a look at that in a min.

Meanwhile, tieang seems to only return a value of 0 and my current value of fixlen on the last incarceration of a 'bot on a string' has reached a fixlen value of 20450 without actually changing the tie length. Plus fixang doesn't change the direction my bot faces, it always faces to the right, the same angle it started at, rather than the desired affect of always facing away from the tie.

Your bot needs glasses btw, it seems to take several rotations before it spots the intruder, doesn't bode well for higher up the chain...

I could solve this by triggering the bot at a specific location each time but that seems inelligent. So instead I'm trying to get the bot to be triggered when the intruder spots the next bot, harder than it sounds when they are a little to far apart and with all the problems I have found so far.

I wonder why ties annoy me so often...

EDIT: Congrats on making the 500 mark!!
« Last Edit: November 24, 2006, 12:48:57 PM by Jez »
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline Light

  • Bot Destroyer
  • ***
  • Posts: 245
    • View Profile
Bot Challenge!
« Reply #10 on: November 24, 2006, 10:40:46 PM »
ooh this sounds like fun, might put some energy into DB, that seems to have been missing recently

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Bot Challenge!
« Reply #11 on: November 25, 2006, 08:55:19 PM »
Quote from: Jez
Meanwhile, tieang seems to only return a value of 0 and my current value of fixlen on the last incarceration of a 'bot on a string' has reached a fixlen value of 20450 without actually changing the tie length. Plus fixang doesn't change the direction my bot faces, it always faces to the right, the same angle it started at, rather than the desired affect of always facing away from the tie.
If you post a sim, I'll take a look.  A sim makes make life easier, lets me verify the bot code is correct, etc.  Thanks.
Many beers....

Offline Jez

  • Moderator
  • Bot Overlord
  • *****
  • Posts: 788
    • View Profile
Bot Challenge!
« Reply #12 on: November 26, 2006, 11:13:23 AM »
It's the sim posted above with this bot dropped to the left of the bottom yellow bot, so that it gets caught. It's probably my code so appologies in advance.  

cond
*.numties 0 !=
start
628 .fixang store
*.fixlen 50 add .fixlen store
stop

cond
*.numties 0 !=
*.eye4 0 >
*.tieang 628 =
start
*.tiepres .tienum store
51 .tieloc store
1 .tieval store
stop
end
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams

Offline EricL

  • Administrator
  • Bot God
  • *****
  • Posts: 2266
    • View Profile
Bot Challenge!
« Reply #13 on: November 26, 2006, 07:16:14 PM »
Quote from: Jez
It's the sim posted above with this bot dropped to the left of the bottom yellow bot, so that it gets caught. It's probably my code so appologies in advance.  

No worries.  It is your code.  First off, you need to set .tienum in gene 1 in order for .fixang and .fixlen to know what tie to operate on.  Second, .fixlen gets reset to 0 by the simulator every cycle, so once you do set tienum in gene 1, the DNA as written will continously set the tie length to 50, not increase it as you want.  You'll want to use a private sysvar or something like that.  Cheers.
Many beers....