« first day (5 days earlier)      last day (732 days later) » 

6:14 AM
@Draco18s That's an unintended feature of Ziggurat v2.1: if the queen sees an enemy ant, she creates a type 1 worker. I added it as a protection against vampire and trail-eraser, but didn't realize she'll keep spawning workers forever since the vampires won't leave.
She'll use all her food, but at least it won't go to the vampires...
 
 
1 hour later…
7:22 AM
Explorer got stuck.
 
 
2 hours later…
9:43 AM
I've discovered a bug in the confidence calculation (JavaScript doesn't allow objects to be used as keys, but doesn't tell you that, just gives incorrect output...). This means the previous leaderboards had the correct scores, and correct order, but the incorrect confidences means that it isn't certain whether any of them were in fact joint places.
Testing this with corrected confidence calculations. The confidences make a lot more sense now (I thought it was odd previously that the confidence was nearly always > 50%, but I couldn't say for certain whether it was wrong).
This now means that non-transitive relationships between groups of players will affect the confidence, and we may see more joint places (depending on how many players there are with A>B>C>A)
 
 
7 hours later…
4:33 PM
16k moves in an an empty map, my bot has 145 workers (and 0 food because I haven't made it save food yet). Multiply that by 0 and that's how good it does in a map with competition :p (it'll soo run out of map to check, because it spawned vertically, where the max food it could get is 332 or so.. )
 
4:51 PM
At the end of the game the queen got 75 food (and 199 workers) (which is really good considering the queen isn't even supposed to keep food (but does because a worker that had wrapped around the map keeps destroying the queens pattern(which happens because I haven't made it do anything else))) and the bot isn't even close to full potential
 
 
3 hours later…
7:35 PM
@trichoplax I want to see a (non-official for the purposes of scoring) leaderboard of "how much food can each bot gather" on blank maps. Obviously some designs (Vampire) won't perform well, but it would be an interesting to see each design's potential.
 
7:51 PM
@Draco18s pause after x moves sometimes doesn't work with no display
also I think it should be called pause at x moves, at first I thought that it'd pause after x frames from applying
 
8:06 PM
Maybe "at move X"
 
@dzaima It's a known issue. Particularly on Chrome and if you tab to another window. If you're intently watching it and its running slow (Firefox executes turns more slowly), it works just fine.
And yes, it annoys the hell out of me too, I'm just too lazy to figure out why
 
@Draco18s figured it out: it doesn't check in the batch playing
 
line #?
 
979 (at that I added ` || moveCounter == pauseAfterNMoves`)
 
Not the best fix, that would prevent continuing
I'll fix this up, but thanks for identifying the failure point
Actually, hold on, 966 is where it's already checked
 
8:12 PM
@Draco18s it only checks after, but yeah, it makes the play button in the next move move only once
 
its because gameOver() calls abandonGame()
Ah, here, 957, that's what I need (might be that my line numbers are different, I'll grant that!)
 
@Draco18s When the leaderboard is done and I get the chance, I'd like to see individual scores too (and screenshots...). I've also been thinking about running a game with all players included (not just 16) and turning the moves per game up to a few hundred thousand (just for one game to see how the long term behaviour plays out)
 
haha
@dzaima AH HAHA. Your line number was right, but my local file wasn't up to date correctly (I did a pull first, honest!) which put the other if (moveCounter >= movesPerGame) at line 979!
What a coincidence
 
With the confidence calculation corrected (locally - I haven't pushed the fix yet), the leaderboard doesn't converge. The order of the leaderboard is correct either way, so this isn't crititcal. Confidence was an experimental way of deciding how long to let a KotH tournament run for before trusting the leaderboard, and I think this shows it doesn't work when the players are non-transitive (Alice beats Bob beats Chris beats Alice).
 
Non-transitive relationships should be reflected as join place
I don't consider that a failing at all, but rather one of "we need to stop doing games because this IS stable."
 
8:24 PM
I'll leave a tournament running for longer to see if it settles down, but otherwise I'll need to implement a new method of deciding when to terminate a leaderboard tournament (working on one in the meantime). For now, I'll continue to post leaderboards based on the broken confidence calculation (which actually seems to work pretty well).
 
of course
 
@Draco18s I agree, but it was showing as half the players in joint second place. It might be that there isn't enough difference between 9 of the players to distinguish them further without weeks of tournament, in which case perhaps this approach does work, but I need to think more, and possibly compare with my alternative approach (which I'll probably write up on meta as it's similar to a previous idea I had, and much simpler than confidence calculations).
 
heh
New Programming Puzzle: Given an input set [{...},{...},...] calculate a leaderboard placement...must handle nontransitive orderings
winning critera...not code golf
 
Winning criterion: smallest number of games to determine an ordering
 
I think that would be more dependent on the exact nature of the results of each game. I was more thinking that the puzzle/challenge aspect was "what is the bloody approach to use here!?"
but sure
 
8:31 PM
I was just joking. I'd love someone to find a method that works after playing just one game...
 
Haha
Then you know Dennis would come along and post a 0-game solution
Downside, it's written in Jelly
 
Dennis really did post an incredibly useful proof to help with one of my challenges in the past - in CJam even though it wasn't an answer, and it wasn't even a golf challenge
 
Nice
((((I really want to know what he does for a living to be that good at programming))))
((((((((and have the time)))))))))
Just saw BH get dis'q'ed. What was its ranking prior?
 
Not sure - I was out for 5 hours so no idea at what point in that time it stopped scoring.
 
darn
oh well
:(
I'll head home and get that problem fixed before diving into the complexities of making it more error resistant and finishing up Glider.
 
8:48 PM
@Draco18s just realised you already commented on my meta post about sample sizes for KotHs back in June, so it won't be new to you - I'm going to add a slight refinement now if I can word it right.
 
9:13 PM
@Draco18s I added an extra section "A faster equivalent", which I may use as a replacement for confidence calculations if it performs well in testing.
2
A: How should authors choose the proper sample sizes for probabilistic programming competitions?

trichoplaxAdaptive Sampling Ideally an approach would be specified in the question that can be applied regardless of the number of answers or the strategies used. This would describe what will be done and how it will be determined whether a given sample size is sufficient. This should allow the sample siz...

 
10:01 PM
New leaderboard is up, including all players except Glider, which is included in the currently running tournament for the next leaderboard
@Draco18s I realised I had another tournament running in the background, in which Black Hole did not get disqualified, so the new leaderboard includes it. The currently running tournament does not though, and will likely take over 48 hours
 
10:35 PM
@trichoplax just to make you swear, I updated Glider
 
It's not as bad as you think - I just had to restart for a disqualified Steamroller so this won't set me back much :)
 
heh
in a sandbox the updated Glider scored 155
 
Glider was disqualified within a minute, but I refreshed without thinking then realised I hadn't copied and pasted the output for you. Running again now to see I can find out
 
Glider shouldn't ever return an invalid output. It has a sanity checker
 
It's been a few minutes without being disqualified in either of 2 parallel tournaments this time. If it definitely never returns invalid output, the only other thing is a timeout, which I didn't think there had been time for.
 
10:45 PM
Its logic is pretty darn simple. It shouldn't timeout either. Every loop is hard-capped at 9 operations
The last thing would be console.log...
which it doesn't have...
 
I usually so carefully copy and paste all the info. Must be overtired
 
I bet
 
Fun though :)
The sanity check seems to rule out moving onto another ant, or creating a worker on an ant or on food, but doesn't seem to cover a laden worker moving onto food. So it could potentially be that
 
Its workers can't ever be laden
every ant on every move lands next to the queen
oh. queen food stealing maybe?
 
Is that cell guaranteed to not contain food?
@Draco18s Ah that would do it
 
10:49 PM
I assumed:
-> move -> be next to queen -> have no food -> move ->
 
@Draco18s Oh I'm being slow - they instantly become unladen
 
exactly
the question is, if another queen moves next to the sweeper ants, how that gets dealt with
^ current glider as challenger
removed zigurrat, black hole, and wild fire for being slow (due to worker counts) , and vampire (because it only scores against ziggurat)
 
If an enemy queen moves next to a worker, the food will be passed to the worker, then the workers turn will be taken during which it can step on food, and this will happen before the end of its turn, which is when the food would otherwise be passed to its queen
@Draco18s Wow that's convincing. Edit to rule out stepping on food when laden and I'll see how it does against everyone
 
doing that now
 
There's a disqualification for a different reason:
"TypeError: Cannot read property 'ant' of undefined" Input: [{"color":4,"food":0,"ant":{"food":0,"type":1,"friend":true}},{"color":1,"food":‌​0,"ant":null},{"color":1,"food":0,"ant":null},{"color":3,"food":0,"ant":{"food":0‌​,"type":2,"friend":true}},{"color":8,"food":0,"ant":{"food":0,"type":3,"friend":t‌​rue}},{"color":7,"food":0,"ant":null},{"color":7,"food":0,"ant":null},{"color":7,‌​"food":0,"ant":null},{"color":5,"food":0,"ant":null}] Response: "undefined"
(although probably best to cover the case we discussed for peace of mind too)
Top of my list of things to do now is add the option to automatically restart a tournament upon disqualification, so I don't get back to the machine hours later and have nothing to show for it
 
11:03 PM
ok, replicated, second...
@trichoplax fixed it, there was a worker that couldn't find the queen
 
Reincluded...
Just Black Hole and Steamroller excluded this time
 
(essentially it said "where's my queen?" got a -1 and tried to view that cell)
 
oops
So the sanity check prevents returning -1, but doesn't help if an internally returned -1 causes something to be undefined?
 
was due to the new turning code, then something threw it for a loop. Somehow worker #3 ended up next to #1 and #2, but not the queen
I had a <0 check already, but it was after the new code
and the new code assumes >=0
 
I never expected that the entries would get such complicated code with error checking and failsafes.
 
11:16 PM
related, I love how I have default returns for some of the child functions. return {cell:100+view[4].ant.type}//oh god
 
This has turned out to be a richer space to explore than I had anticipated
 
indeed!
I thought it was too simple early on myself (remember my initial comments on meta?)
 
I deliberately went for simple, thinking I'd got it just complex enough to avoid being trivial, but it's exceeded my expectations with all the tricks and traps people have been coming up with
 
Mhm
 
You've made some pretty impressive players considering you were so pessimistic initially :)
 
11:22 PM
I know :D
I never even submitted an entry based on my first ant type that I was testing.
It was a trails one where the queen would spit out workers and they'd make paths (queen had 3 colors, workers had 3 different colors) and when one came back she'd plop her butt down and wait
then every 6 food she'd get up and move around until she found more food herself (path clogging was a problem)
but with trail eraser that became non-viable
 
I think all the ideas I experimented with have been covered (and improved) now.
 
mhm
 
I had one I called "oil slick" which was similar to black hole but had swirling colour because the workers used a different colour from the queen.
They mostly got lost inside though
 
black hole works well that way
because the interior is only ever black or blue (sans remove blue/yellow code)
 
Only escaping by random walk, which got progressively more inefficient as the blob got bigger
 
11:26 PM
nods
I love my "get unlost" pathing code. It's so elegant
 
It looks nice on the arena too
 
They can still get lost while lost and create big patches of yellow, but they get out eventually and its not super common.
less nice now :\ I like the 2nd major revision. It was still round and made neat swirls of blue and black
 
I had one with single colour worker trails and a static queen, and they changed the colour of their outward trail in order to return to the queen. It worked really well for the first few trips out, then all the old paths got in the way and the workers started going round in circles. I guess Explorer is the closest to that now
 
yeah
also, bler, I don't have my trail ant code any more
#GoneForever
 
I must admit I've been so focused on getting leaderboards running correctly I don't actually know what the latest revisions of the players look like. Just having a look now...
 
11:29 PM
haha
 
@Draco18s Was it private or did you ever post it to meta?
 
Never posted it to meta. I was using it as a basis for a real submission
I could probably rewrite it, but I'd have to do it from scratch and it would not be competitive
I ditched the code when I saw trail eraser
It also wasn't terribly good in a sandbox
because of how the ants would get confused by their own overlapping trails
Medusa is the closest entry we have to what I was doing, only straighter 1-cell wide tendrils
 
Now we're up to 17 players (excluding currently disqualified ones), 1 in 17 games will have no Trail-eraser in it. If more players come in maybe trails will become more competitive
 
No, with other players it would get too confused. It relied on six colors to work
as soon as any other ant came along and wrote over a cell, its workers would be lost
in theory I could make it work on 3, but it'd be still be easily confused
(queen writes ABC, workers write CBA)
oh BOLLOCKS. current glider's sanity check code didn't account for the queen!
 
In the sandbox it was suggested 16 colours might not be enough for interesting strategies. It was a bit of a gamble reducing it to 8, but I'm pleased I did now
@Draco18s Do you mean it prevents the queen collecting more than 1 piece of food?
 
11:38 PM
...yes...
 
That would explain it sitting at 1 on the game table...
 
mhm
fixed and restarted my own tourney
 
It's only 20 minutes in - I can restart it again.
 
yeah, 20 minutes isn't much of a loss
if it had been hours I'd have said to just let it finish
 
Yeah I don't have a set cut off but at some point I'd just need to get it finished before including any more
Restarted this time anyway
 
11:40 PM
mhm
 
Glider has 2...
 
hm?
 
I mean it almost instantly exceeded its former upper limit of 1 piece of food
So that's fixed
It has 2 type 1 workers though
 
1 and 2 are the "sweepers" and can get picked off
it might've created a second...somehow..
(there's no code explicitly to do that)
 
Its food isn't going up and I can't see it on the arena (which probably means it isn't moving - I can spot Pierce by eye with "Fit to width" set)
 
11:47 PM
it can get stuck
 
TypeError: Cannot read property 'ant' of undefined Input: [{"color":1,"food":0,"ant":null},{"color":5,"food":0,"ant":null},{"color":1,"foo‌​d":0,"ant":null},{"color":1,"food":0,"ant":null},{"color":5,"food":0,"ant":{"food‌​":0,"type":1,"friend":true}},{"color":1,"food":0,"ant":null},{"color":1,"food":0,‌​"ant":{"food":9,"type":5,"friend":true}},{"color":5,"food":0,"ant":{"food":1,"typ‌​e":1,"friend":false}},{"color":1,"food":0,"ant":null}] Response: undefined
It had been stuck for quite a while before getting disqualified, if that's any clue
 
fff
give me a minute and I'll investigate :\
 
I think I've tracked down their coordinates using the console
 
well I know that it's due to an out of bounds index, likely
 
1 523 282
2 525 282
3 525 283
4 524 284
1 524 285
5 524 283
Those are the types and coordinates to go with the image
All of the ants in the image are frozen apart from the far right enemy laden worker, which randomly moves to a vacant cell adjacent to the red cell, and then back to the red cell
 

« first day (5 days earlier)      last day (732 days later) »