« first day (1 day earlier)      last day (736 days later) » 
00:00 - 18:0018:00 - 00:00

12:00 AM
@trichoplax posted a bot
pretty bad though
 
12:12 AM
One thing that's interesting is how certain random-walk rules / coloring patterns can create different kinds of random walks.
Example from my bot:
Notice how it travels in a straight but slightly diagonal line for a while before turning 90 degrees.
 
My controller has no entries. why... :(
Uncaught SyntaxError: Unexpected token }
    at new Function (<anonymous>)
@Christopher I think your entry is breaking the controller?
 
I have the same problem. Just tried refreshing to pick up the 2 new entries and it shows no players at all - not even the new challenger
 
I looked in the console. Seems like Christopher's entry has a mismatched }
 
Usually bad code just disqualifies the player, so I'm not sure the reason
 
It's like when I update code to the NEW CHALLENGER but it fails due to syntax reasons.
The controller did not expect syntax-faulty code.
 
12:18 AM
Another thing for my list...
 
If that's breaking the whole controller I have rewriting to do...
 
How about adding a try catch block.
 
Good idea. Then I can just disqualify that one player
 
I don't know how complex the code currently is ... if a submission fails you can just DQ it on load.
 
12:21 AM
Yes as a priority I just need to disqualify it so other players can continue. Then later I can think about how to decide on a meaningful disqualification message
 
"Your entry contains syntactic errors. Please make sure it can be loaded as a NEW CHALLENGER." or something like this, perhaps.
 
@FrenzyLi Where is this code from? I don't see lines 70 onwards in the answer
 
line 54 has an extra }
in the controller, line 55.
 
Thanks. Fixed now - all players load
 
Dank!
 
12:27 AM
Next to ensure that can't happen again by editing the controller
(I mean I only fixed the broken player - the controller will still be stalled by any further broken code)
 
12:43 AM
I might start that bot soon
ok, I have thought of a way to make communication that will not be ruined by other bots
ok so, my queen will go along until it finds a food, and then it will make a worker ant
maybe it will make more worker ants
IDK
then, it will follow the ant around
the ant will move to a position diagonal the queen, and the queen will move to its left. or something
if it doesn't move, the ant will paint the queens square with the reason why it did not move
 
So you are going to give the queen antennae made of workers?
 
well, the main idea is that the worker will just pass food from one queen to the other
but that's a good idea for other bots too
 
can we make more then one queen?
 
12:50 AM
This might be the first deliberate predator. Interesting
 
I want my bot to form a line of like 5 ants and just sweep the map leaving color behind. It will be another bot
It will screw with stuff
 
I will get my bot to move in a pseudo diagonal direction
 
@Christopher If one of your workers moves next to an enemy queen, it will steal a piece of her food
 
as in, it will move right, then down then some more right, etc.
 
@trichoplax wow cool
i had no idea that could happen
 
12:51 AM
I know, the spec is long... :P
 
Yeah
Also I want an answer to my KoTH tricho
 
it would be cool if you had been able to pass food between ants
4
 
I gave you a answer
 
like a conveyor belt
but that might be op
 
So far people have tried disrupting the colours for other ants, but not yet tried stealing food
 
12:52 AM
under some circumstances?
I mean, you could move food at quicker than light speed
which I guess happens, but only at 2c at this point
 
Double, I guess
 
or actually its 2/sqrt2 c isn't it
actually that equation might be wrong
 
Depends if you count diagonal movement as c or root2 c. I'd call it c since ants can move diagonally in a single turn
(it doesn't take them root2 turns)
 
The controller is getting horrendously slow...
 
so, I wonder if this strategy might work for more general circumstances
perhaps even I could make it so if it finds food, the queen will move over, and make a new worker
and then the old worker will do some other thing
but maybe not
 
12:55 AM
@FrenzyLi Are you running it on "No display"?
 
anyway
the starting
 
@trichoplax yes, on no display. I'm in 23000 moves now and it's about 50 moves a second.
 
Yes it's going to take a while to get a stable leaderboard to post to the question
 
right yeah I don't have any idea of js
 
Have you had a look at the different methods used by the existing answers? A lot of it is just loops and ifs, and knowing how to access the different parts of the view
 
1:01 AM
what is the extent to which I can use variables again?
 
If you just use them naturally you should be fine. It's set up so you won't access global variables by accident - the ant code is effectively sandboxed against that. The warning in the spec is so people know not to find ways around that
 
I should try and figure out how I can allow the queen to collect food without the ant moving away
or I can just disregard the possibility of the queen finding food
:P
yeah I'll just do that
what I have so far
if (view[4].ant.type == 5)
{
}
maybe someone else could make an antenna bot but it has more ants in the antenna
wait, in what order are worker ants?
if I make one ant, then another, which moves first?
actually it would make more sense for the colours to tell the queen what to do
the queen only has a few possible moves
and only a few of them would be viable
um, how do I check if there are any friend ants around my ant?
also a good strategy for messing up some ants could be colouring the ground beneath other ants
@trichoplax halp
 
@DestructibleLemon workers move directly before their queen, in the order they were created, last created moves last, then the queen
 
You can loop through view[i].ant.friend and each of these is true/false.
And beware of view[4] which is yourself.
And beware that view[i].ant is null if there's no ant there.
 
@FrenzyLi how
 
1:15 AM
var friends = []; for (var i=0; i < 9; ++i) { if (i !== 4 && view[i].ant !== null && view[i].ant.friend) { friends.push(i); } }
Idk, but you could come up with fancier versions if you'd like.
 
ok so I just need to figure out if there is an adjacent friendly ant
also I should try to make sure that I can't get hunted by another ant!
 
var hasAdjacentFriendlyAnt = view.find((s,i) => i !== 4 && view[i].ant && view[i].ant.friend) !== -1;
 
or I could just be lazy
@FrenzyLi thanks!
 
@DestructibleLemon Welcome :-)
Well I've given up on my entry. I'm amazed that it can produce a few random workers and yet maintain a 50% th percentile. It'll get wrecked sooner or later.
 
anyway, so... what should all the possible actions the ant can communicate to the queen be
should there be painting
or making ants
 
1:20 AM
I'm not an expert on that...
 
well, I don't think painting will be relevant
hmmm, how should it react if it finds an enemy ant
that is a soldier
hmmm I guess I will just ignore the possibility
I will use the communication for getting food though
how does else if work
 
if () {} else if () {} else if () {} else {}
 
I've decided to make my trail eraser ant a little more competitive and less destructive by hoarding three food before working on destroying trails. Still may not win, but will get closer
 
ppperry you should consider prioritising the cells that ants are standing on
for erasing
 
1:36 AM
And if there's nothing to erase, wander around :p
 
so, do any of you have any advice on finding food?
for the initial worker ant?
 
I think it's better to just walk in a straight line and gather any nearby food. It starts faster than random walk, at least.
 
yeah ok
but what if the line meets with another line of the same colour!
what do I do then!
 
@FrenzyLi Done. The controller now disqualifies a player for invalid code before any games are played, and still allows the other players to play
 
tricho do you have any advice for initial food gathering?
 
1:45 AM
How do most of the existing players start out?
 
@trichoplax Nice.
 
@trichoplax 😠
 
Serious suggestion - have a look because they all have to start with just a queen. Also if you can find a more efficient way than what most of them use, you can get a head start...
 
realistically the best is probably a diagonal because it explores the most spaces
diagonal speed boost ftw
also how should I make sure that I don't get messed up by other peoples colours?
hmmm, I guess that I only have to worry about that at the start of the game
 
Diagonal is a good point.
 
1:57 AM
also what if I used a food as a bait
that would be fiendish >:D
maybe I will have a bunch of workers just to try and trap the ants!
actually thats too high level
 
One thing that I've noticed about this challenge (so far) is that there's not many bots with "realistic" ant colony behaviour (which was something I was personally looking forward to). Part of this is because the real-life capabilities of ants are different than what these virtual ants can do (as in, real ants have better memory, can orient themselves using the sun, etc. but at the same time aren't computers).
I don't think we're gonna see "ant trails" that resemble the real thing.
 
Yes this is stripped right down to the simplest approximation: environment as memory, and queen with workers. I'm very interested in what that leaves possible. However, I'm also very interested to see the more physically realistic Ant KotH that's in the sandbox, that will have pheremone trails that evaporate over time. That is much more likely to give slowly adjusting paths that become more efficient over time, like real ants.
 
@PhiNotPi actually, roman ants is rather interesting
 
I really like how many different approaches have been thought up with this simple version though.
 
when I figure out js we will have ant wars!
or more realistically when someone else does
or decides to
because I am not good at this
for a single ant finding food, I think the diagonal paradigm is most efficient
 
2:12 AM
@DestructibleLemon In the absence of other complications, orthogonal movement introduces 3 new cells each step, whereas diagonal movement introduces 5 new cells each time, so a straight line strategy should be considerably more efficient going diagonally.
 
hmmm...
but at the same time
if you use the roman road paradigm...
there are two competitors here
 
On the other hand, the Roman Ants approach doesn't seem possible diagonally, so you lose the 50% speed up
 
but roman roads are also more volatile or something
 
So Roman Ants get 50% more coverage, and diagonal gets 66% more coverage, so diagonal should still be slightly more effective
 
mmhm
I'm watching a game
the medusa has begun interfering with black hole
 
2:21 AM
Can the Medusa avoid being surrounded by it?
 
well, the medusa actually initiated it... it's not surrounded... yet
hmmm
blackhole is not messing around
 
@DestructibleLemon lol
 
medusa:
thats probably not the link I should use but whatever
 
what on earth?
 
2:33 AM
@DestructibleLemon Screenshot of medusa vs black hole?
 
well, its sort of recovered
but there is still a laden worker or too just wandering around it the blackhole ocean
wild fire has a lot of ants
 
The trail-eraser has beheaded the medusa:
 
muhahaha
 
(magenta square is the queen)
 
2:51 AM
Well, well, well, it seems like my ant, while it doesn't win, accomplishes its goal of confusing other ants
 
meanie
hmmm
I just realised there might be issues with staying adjacent to enemy ants if my ant needs to communicate
 
@ppperry Some ants just want to watch the world burn.
 
anyway, you won't be able to erase MY ants messages
much
ooooooh
medusa is stealing food from blackhole by accident
the blackhole ant is walking around medusas queen and the gatekeeper is stealing the food
 
3:09 AM
Eraser is erasing my art ;w;
 
that boosted medusa up the leader boards
@PhiNotPi you should make a patch to medusa so that it takes advantage of any queens that wander by
by stealing their food
 
I think for my next ant I might go for the "antmoeba" strategy.
 
just try not to get a bunch of food stolen like blackhole :P
whoops I accidentally clicked abandon not restore display
@trichoplax please add a confirm thing
 
Idea behind antmoeba strategy: at all times, any given worker must be adjacent to at least one other ant with a higher type.
 
isn't that more like a pseudopodant?
@PhiNotPi also there are only 4 levels
 
3:16 AM
Not sure what you mean?
 
only four different types of ants...
maybe I misunderstand what you're envisioning
 
@DestructibleLemon I thought about that, and for resetting the leaderboard too, but I wasn't sure whether that would be more annoying. I'll add it to my list as a maybe
 
anyway, so I have a tiny, tiny amount of code written for this
if (view[4].ant.type == 5) // if this is the queen
{
    if (view.find((s,i) => i !== 4 && view[i].ant && view[i].ant.friend) !== -1) //we got a worker buddy
    {
        //tbd
    }
    else if (view[4].ant.food > 1) //if we clearly have spawned an ant (because we would have after having 1 food), but got separated
    {
        //tbd
    }
    else //start of game status
    {
    }
}

if (view[4].ant.type == 1) //if this is the worker
{

}
it is pathetic
 
Once you get it working, however simple, you can watch it play and make little improvements
 
so, I guess the main thing is that it moves down and right
to start with
after that it will try and follow ants
 
3:22 AM
@DestructibleLemon view.find((s,i) => i !== 4 && view[i].ant && view[i].ant.friend) !== -1
change this to
view.find((s,i) => i !== 4 && s.ant && s.ant.friend) !== -1
I wasn't sure what I was thinking then...
 
@DestructibleLemon Down and right in its local frame of reference?
 
@DestructibleLemon Fifth level is queen, but it would still have to be more complicated than that because I would have to make sure the whole group is able to stay together and move as some sort of unit.
 
also of note is that an opponent can back away without the ant finding out
actually, scratch that, the grabbing the food gives it away
so, you can tell a queen has been adjacent if the worker ant has gotten some food
without moving on to a food square
which is hard to track
and also... the food would have been passed if it picked it up?
@trichoplax if an ant picks up food from the ground, can it be passed to a queen in the same turn?
 
@DestructibleLemon All food passing is done after the turn, so yes
 
I didn't know if picking up food counted as food passing
 
3:25 AM
Good point
Picking up food from the destination cell is done immediately before checking for passing food
So food picked up at the end of a turn can be immediately passed to a worker's queen, or to a queen's enemy worker
 
3:43 AM
I will make a simple ant
 
 
2 hours later…
5:22 AM
K Zhang's Steamroller ants is disqualified after 13 games.
It moves onto other ants.
 
 
3 hours later…
8:08 AM
@trichoplax I tried again and for some reason, the code loads now. However, it's immediately disqualified for "Response undefined". Here's my test code:
var free = 4;
for (var cel = 0; cel < 9; cel++) {
    if (!view[cel].ant) {
        free = cel;
    }
}

return {cell:free};
 
8:21 AM
!null Evaluates to true...
Oh wait never mind.
 
@Zgarb I've just tried this and it works fine at first, but gets disqualified with "Response undefined" a small number of moves in. I can't yet see why.
 
It fails on the first turn for me.
 
The input in the disqualified table gives no clue as it's all null ants, color 1, and food 0, as it is every turn from the start
 
var lalala = 4;
return {cell:lalala};
this fails too.
 
It gets disqualified immediately now - I think I may have been mistaken
 
8:28 AM
@trichoplax Is the new challenger thing broken?
 
Yes - return {cell:4} fails too. Thanks for catching that. I'll have a look into this (I did make some changes to the controller yesterday)
@Zgarb It's not your code. At some point yesterday the controller has been broken. Sorry about this. I'll let you know as soon as I can fix this.
 
 
1 hour later…
9:42 AM
@FrenzyLi Yes I broke it in a previous commit, but it didn't affect any players except new challenger and I missed it. Sorry about that.
@Zgarb Sorry about this. This was my fault and it is fixed now, so if you refresh the controller page it should accept your code.
 
 
4 hours later…
1:32 PM
Over 80 games in, I'm very close to having a leaderboard stable enough to post to the challenge.
 
@trichoplax Thanks, now it works. I had a couple of typos in the code too.
 
Thanks for letting me know about the problem, by the way. I hate the thought of the controller sitting unusable if no one mentions it
 
 
1 hour later…
@Zgarb That's beautiful to watch - and looks efficient too. Running a new leaderboard tournament now...
 
@Zgarb something along those lines was my original goal for medusa, but I couldn't get the bots to "fill in" the space in a coherent manner.
 
3:02 PM
@PhiNotPi Ziggurat ants scan their surroundings in the clockwise direction, and look for a point where it switches from empty to filled. That's the cell where they want to go next.
That makes them follow the edge of the filled area.
@trichoplax If the ants are harassed, the imperfections can become so bad that the workers have trouble finding the queen. They usually find her after some wandering though.
 
No ant mills yet then...?
@Zgarb Unfortunately one of your ants tried to move onto an enemy ant, so it's disqualified. I've added the full details in a comment on your answer.
 
@Zgarb check out the "clean(move)" function I have in my answer, it serves as a failsafe that prevents invalid moves (if the ant attempts a move that's invalid, it instead stands still).
 
3:17 PM
Thanks, I'll try to fix it.
 
3:33 PM
Should be fixed now.
 
Testing now
@Zgarb A brand new error... TypeError: view[(!next_edge)] is undefined
Input: [{"color":1,"food":0,"ant":null},{"color":4,"food":0,"ant":null},{"color":4,"fo‌​od":0,"ant":null},{"color":5,"food":0,"ant":null},{"color":1,"food":0,"ant":{"foo‌​d":0,"type":1,"friend":true}},{"color":1,"food":0,"ant":null},{"color":1,"food":0‌​,"ant":null},{"color":1,"food":0,"ant":null},{"color":1,"food":0,"ant":null}]
Response: undefined
 
Ah crap
Fixed that
 
Do you use the "No display" mode to get fast results?
I'm interested to know how obvious it is that it's a speed thing, and whether many people use it
 
Yes, but my laptop is so old that a full game still takes forever.
 
Ah I see. Some of the testing was on a very limited laptop (more or less a tablet), and that was slow even with the test strategies that made few or no workers.
If you want to see how it does without the overhead of the worker-heavy players, you can untick the boxes for any you don't need included
 
3:46 PM
Yeah, that's how I tested it, and failed to see any "moved onto enemy" errors. :D
 
Oops...
I've also found the choice of browser makes a surprising difference. I did most of the work in Firefox because I prefer how it looks, and I prefer it's profiler too. But I run the leaderboard tournaments in Chromium, which is significantly faster
 
I was just looking at a breathtaking fight between ziggurat and trail eraser but mistakenly aborted the game :'(
 
I'll take that as another vote for adding a confirmation box when you press "abandon game" - you're not the first to be caught out by that...
 
It's easy to abort by accident, since "No display" becomes "Abandon current game" when you click it.
 
↑ precisely what bit me
 
3:49 PM
Oh no! On my screen they don't line up like that. I'll make a confirmation box the next thing to add then
 
Another feature request: being able to manually change the amount of food a queen has. It's useful for development because I don't have to wait for the queen to acquire X amount of food before I can test the colony.
 
That's also on the list already - I'll increase its priority
 
UI design is hard.
Especially with multiple browsers.
 
Indeed.
I'm also getting completely unexpected problems that never showed up in testing. After about 60 games into a leaderboard tournament, the binomial function used to calculate the confidence can't deal with the numbers and so the confidence starts showing as -infinity% for players ranked too close to each other
@PhiNotPi Made me wish I'd gone with your suggestion of a Normal approximation...
 
4:05 PM
I like never use a warning when you mean undo but I think it might be a lot of work for nothing for a button that is accidentally used more often than it is intentionally used. For now I'm just going to go with a confirmation pop up.
 
Some heavy disruption here
Ziggurat's fate was very sad : a trail eraser got inside the ziggurat, and eventually reached the queen, erasing parts of her home square, which prevented her worker from finding her.
Also some ziggurat workers got isolated and started to form their misshapen queenless little ziggurat
 
"Abandon game" and "Reset leaderboard" both have confirmation boxes now. You'll just need to refresh the page if you want to be protected by them.
 
Thanks
(Actually what I noted seems to be a recurring pattern, on 10-ish samples, Ziggurat always seem poised to take the lead, until it encounters a trail eraser, at which points it crumbles down and doesn't recover)
(Sorry for spamming btw, but this game is fascinating)
 
4:23 PM
It's not spamming - it's precisely what is on topic for this room... :)
 
Yeah, an idea then : the ziggurat queen should be able to detect disruption in her home square and in that case to abandon ship and try to start again elsewhere. That might mitigate the impact of disruptions.
 
A escape plan sounds good, but I can't think of a way of outrunning the disruptors (especially Trail-eraser) once one of them has found you. Even if the queen gets a fair distance away, the growing ziggurat is likely to meet the disruptor again. Maybe it would be worth creating special workers who surround the disruptor, if there's only one
 
Ant idea: I'm gonna put my antmoeba development on hold in favor of an ant whose workers carry with them the information of where they are, through some complex encoding process. They'll be very slow, but won't leave trails and won't depend on them.
 
If they have error correction too they'll be really slow...
 
but proportionally cool
 
4:34 PM
They'd be more like real ants though - I'd love to see if this is possible
 
Each worker will probably be restricted to one of the four quadrants around the queen, removes the need to store negative numbers.
 
Sounds like you've found yourself a golfing challenge :P
 
4:52 PM
Trail-eraser in particular is actually really easy to confuse, just make a worker ant that just randomly goes straight for a distance, and the eraser ant will follow that trail instead of the queen's
I really should stop helping my opponents ...
 
Oooh...
 
... but I won't. Especially if the queen random walks a short distance, that should lose the erasers until you stumble on them or they stumble on you
Trail erasers also sometimes lose themselves in double-thick trails
 
I think it's more of a problem for Ziggurat and Black Hole, because their growth naturally makes their new starting point easily discoverable (they will even spread out into otherwise stranded enemy workers)
 
particularly wildfire
 
There's no effective way for Black Hole, Ziggy, or Medusa to recover from an eraser attack.
 
4:56 PM
ha ha ha ha ha ha ha
This means that trail-eraser workers on average deny enemy ants out of more food than they wasted from their own pool.
Which makes it a competitve strategy in its own way ...
 
It's not competitive, it's a "kingmaker", which is actually a significant problem for the balance of this KOTH. in my opinion.
 
@Zgarb Another disqualification, this time for trying to move onto a friendly ant. Hopefully if we all feedback the disqualification messages we see then you'll find out what needs fixing faster than depending on just one computer...
Input: [{"color":6,"food":0,"ant":null},{"color":1,"food":0,"ant":null},{"color":1,"fo‌​od":0,"ant":null},{"color":6,"food":0,"ant":null},{"color":1,"food":0,"ant":{"foo‌​d":1,"type":1,"friend":true}},{"color":1,"food":0,"ant":null},{"color":6,"food":0‌​,"ant":{"food":0,"type":1,"friend":true}},{"color":3,"food":0,"ant":null},{"color‌​":3,"food":0,"ant":null}]
Response: {"cell":6}
 
Damn. The fix may have to wait until tomorrow.
 
@PhiNotPi That's definitely something I'm keeping in mind, following on from what I said earlier.
 
I guess I should copy the clean function after all.
 
5:05 PM
yesterday, by trichoplax
> Provided each answer is working solely towards its own victory, you are permitted to tailor your strategy to take advantage of weaknesses in specific other strategies, including changing the color of the cells to confuse or manipulate them.
yesterday, by trichoplax
I put that in the spec to prevent people adding 2 answers - one to win and the other to mess with the other players without trying to win. I'll consider enforcing that rule even for a lone strategy if it is making no attempt to win though.
yesterday, by trichoplax
I really want to see the strategies that exploit weaknesses in other players and spread confusion, but only if they are aiming to win - not to finish on zero.
Trail-eraser doesn't finish on zero, but it does finish last on the leaderboard, so it's dangerously close to being excluded
@ppperry If it could manage to hang on to enough food that the damage it does to other players gives it a chance at winning, it would fit the requirement for being competitive more
 
That's really just a number to fine tune.
 
It's a strategy that really deserves to be higher up the leaderboard
 
(the view[4].ant.food > 3 in the conditional) could be changed to view[4].ant.food > <some other number>
 
The trouble with that approach is that having more food means waiting longer and doing less disruption
 
Yah
 
5:15 PM
It would be great to be able to put all the food into disruption early on, and then somehow have a point at which you decide to start focusing on storing food
 
So, ideally I would invent some method of keeping track of how many moves passed ...
 
That could work
 
@Zgarb yeah just go ahead and copy-paste it, I don't care.
 
but I can't come up with one, especially with trail eraser's wierd use of worker types
(which I use to reduce the chance of workers getting confused by crisscrossing trails)
I also explicitly bias them against green, to reduce occurence of workers pointlessly eating their own queen's tail
it's tricky to build time-dependent strategies with no memory
 
I'm struggling to come up with a way to encode positional data in my ant. I'm not gonna have "error correction" but it still has to deal with the fact that, when it moves, it has to deal with 3 new cells that could be arbitrary colors.
 
5:19 PM
I'm interested to see if we get any ants that aren't dependent on any particular colour, using patterns instead, or somewhere in between
@ppperry Indeed. That's deliberate :)
@PhiNotPi It's orthogonal only then?
 
Yes. Diagonal moves make the problem significantly worse and greatly reduce the amount of information that is retained between moves.
 
@ppperry I like the idea of a random-based approach instead of needing to keep track of time.
@PhiNotPi Are you looking to leave the trail behind you completely clean?
 
@trichoplax maybe but not necessarily. I suppose I could use a strategy that has to go back and forth to copy data, but I'd prefer not to if possible.
 
interestingly, when I wrote trail-eraser, I didn't reallize how it would completely destroy strategies -- including its own
 
@PhiNotPi I was thinking that if you don't clean the trail behind you, then you might have to cross it again later, so you can't depend on the 3 new cells ahead of you being white
 
5:25 PM
and you might get followed by trail eraser ...
 
Seems like you'd have to store all the information required to reconstruct the next step in just 3 cells
 
@trichoplax it has to deal with that anyways, but that is a good point, since its own trail wouldn't just be arbitrary, but would have been created using the same encoding scheme and thus be much more likely to confuse the ant.
 
Including which direction to head, and all the stored info
 
8*3=27 possible states, at most
oops, 24
 
So the ant would wake up this turn and have to work out whether to read the 3 vertical or 3 horizontal cells, and in which direction, and then which direction to head itself
 
5:28 PM
I did have an idea for a medua- or ziggy-like ant, which instead of using a given set of 3 colors in a cyclic pattern, can use any set of 3 consecutive colors in a cyclic pattern. For example, the color after 5 and 6 could be 7 or 4.
 
@ppperry 3 cells should give you 8 * 8 * 8 = 2^9 = 512 states
 
I guess
although it's very tricky to use white as a data color
 
For each colour of the first cell, there are 8 of the second, so 64 ways of arranging the first 2, and for each of those 8 ways of having the 3rd, for 512 ways in total. But that assumes you know which way up to read it, so it's probably at most half that practically
@ppperry Also true
@PhiNotPi If there's more than one way to indicate the same thing, then I guess that allows encoding other info into the path too
So you could follow a trail back to your queen, using different colours depending on whether this is a trail you need to visit again
 
So, if my ant moves 1 square orthogonally, it has to decide which of the four 3x2 areas represents the area it just came from.
The probability of guessing correctly depends on the level of redundancy in the data.
The total amount of information is log(8^6) = 18 bits. If half of those are devoted to error correction, then theres a (511/512)^3 = 99.4% chance that the ant will be able to conclusively decide which direction is correct.
But that means it will only be able to make 171 steps on average before an error, which in my opinion is far too few.
 
5:46 PM
I hadn't grasped that there would be 2 rows (columns) available - I was forgetting that the ant can paint all 3 cells ahead of it before it moves. It's not quite as limited as I thought then
Is it more important to make the data error resistant or the ant's behaviour error tolerant?
 
Boils down to the same thing, really, when the ants are out exploring by themselves.
 
Can you arrange the data so that an error is likely to be a small one?
The reflected binary code (RBC), also known as Gray code after Frank Gray, is a binary numeral system where two successive values differ in only one bit (binary digit). The reflected binary code was originally designed to prevent spurious output from electromechanical switches. Today, Gray codes are widely used to facilitate error correction in digital communications such as digital terrestrial television and some cable TV systems. == Name == Bell Labs researcher Frank Gray introduced the term reflected binary code in his 1947 patent application, remarking that the code had "as yet no recognized...
I know this isn't binary so it will never be quite as convenient as just a single bit in error
 
My idea was to send ants out in pairs: one ant that stores the data and moves slowly, and another ant that orbits it to clear the surrounding space.
There might be some decent ways to keep the error small... for example making it so that "fine" positional data is more likely to be lost and "coarse" data preserved. So if the ant manages to find its way to (0,0) and the queen isn't there, then when it starts doing the "I'm lost" routine the queen is likely nearby.
 
Since it can clear the space while still adjacent to the data ant, that seems like it should keep up well. I wonder if two ants could share the data correction and new cell painting to allow faster movement
 
I guess one possible plan for trail eraseris somewhat random: everytime I reach N + x food I create a trailing worker ant that follows the queen, and I stop destroying things once surrounder by two workers
 
5:59 PM
I had a thought that will almost definitely be completely useless to any strategy. A few people have mentioned "the speed of light" and it occurred to me that this term is usually used as the speed limit on information, but since the ants move sequentially each turn, in theory you could transmit information arbitrarily far in a single turn, limited only by the number of workers you have, if you line them up in creation order so they move in order too.
 
00:00 - 18:0018:00 - 00:00

« first day (1 day earlier)      last day (736 days later) »