« first day (11 days earlier)      last day (32 days later) » 

1:03 AM
0
A: Art Attack KoTH

andrewMuncher function(myself, grid, bots, gameInfo) { const W = grid.length, H = grid[0].length; const rounds_left = gameInfo[1] - gameInfo[0]; const directions = [[0, -1], [1, 0], [0, 1], [-1, 0]]; function rank_square([x, y]) { if (grid[x][y] == myself[0]) return 3; ...

 
 
9 hours later…
9:52 AM
35000 moves later, everyone dead except Feudal Noble :D
now to make that die too
 
@dzaima Your trio is already capable of mass murder?! ;_;
Who did you include? Everyone?
 
everyone except DFS, Euclid, MC & Heatbot
 
Oh boy...
It seems that I am awful at being a villain.
 
but my bot often is suicidal too :p
 
Oh, okay, phew. That's what I'm trying to fix right now... well, aside from the whole throw-out-behaviors-and-remake-them endeavor.
Are we going to hold some competition who has the better trio? :P
 
9:58 AM
for the erasers & followers only I don't see why the code would have to be overly complicated. my whole code is 232 lines :p
@Alion I'd expect yours to still be better, mine is just a quick prototype with nothing fancy beyond the rhombus search & handshake
 
@dzaima My code isn't much longer - clocking in at 350 lines for now - but I want to squeeze every last bit out of the trio which means handling a truckload of edge cases and, of course, the bot-combine maneuver.
 
ah I recalled you mentioning some 500 line stuff :p
 
@dzaima Well, that's the previous spaghettios I abandoned.
 
@dzaima Feudal Noble only dies, if he wants to die :P
 
@Night2 nah, it'll die too once I implement the bot doubling :p
 
10:06 AM
To kill him, you have to end the Feudalism system first
 
@Night2 why would that be a problem? :p
 
You will need a revolution (you don't have more than 3 bots, so you can't do a revolution) or a long process of power transformation (you have only 2000 turns, not enough time).
 
@Night2 I don't care about the 2000 turns, I want sub 40000 :p
 
@Night2 @dzaima Let's just combine our swarms then - we'll have 6 bots so we can start a revolution then :D
 
@Alion People will not stand up for killers as revolution leaders anyway :P
 
10:15 AM
// TODO swap the numbers 2 and 1 sounds so stupid :p
 
$ ghci
GHCi, version 8.4.3: haskell.org/ghc  :? for help
Prelude> let 2 + 2 = 5
Prelude> 2 + 2
5
 
@tomsmeding prepend each line with 4 spaces/ctrl+k for codeblock formatting
 
that's not in the faq ;)
 
Wow. .filter on the whole grid is ~100x faster than my floodFill with no walls defined. Whoops.
Cutting down run time from 100+ ms down to 1 ms feels pretty darn good.
 
Part of my webassembly toolkit is a custom-compiled version of LLVM with clang with webassembly turned on. The whole folder, including compiled materials, is 30 GB. Rip my ssd
@Alion I can understand that :p
 
10:22 AM
Now I just need to understand what return closest(bot, floodFill(bot, undefined, (c, p) => value(c.id, bot) >= 4 && !isReserved(p) && !bots.find(b => equal(b, p)))).map(p => ({pos: p, val: neighborsOf(p).reduce((sum, next) => sum + (value(grid.at(next).id, bot) <= 2), 0)})).sort((a, b) => b.val - a.val)[0].pos; does.
 
good luck
 
Anyone knows the exact deadline time? What time on 2018-08-27?
 
from the question: "The 10,000 games is estimated to be run next Monday (2018-08-27)."
if the day isn't even clear, I doubt the time is :p
 
By the way, the wording suggest that Beta had hoped he'd be able to run the tournament within a day :D
 
This sucks, there is around 20 hours of difference in earth's eastern and western timezones.
I'm going to use GMT's timezone, sine Beta lives in UK :P
 
10:33 AM
It'll already be Monday somewhere in the world in about an hour and a half, if I can count.
 
@Alion He might decide to run it for 24 hours and then call the winner instead of 10,000 games?
 
@Night2 We've discussed this with him, I think people from chat are going to help with the tournament a bit.
 
I'm always OK with helping, but also think it is unfair for contenders to participate in actual competition games.
11
Q: Should competitors be able to run games for KoTHs?

Redwolf ProgramsIn this question, every "game" takes about 5 seconds. Ten thousand runs, maybe eight thousand, are planned. Running these on a single computer would take forever, so I suggested letting competitors and volunteers run some of the games. However, this result in cheating. My question is: should this...

 
We can verify the results if running on dzaima's controller.
 
@Night2 as long as the contender games are seeded (= verifiable if the competitors faked results) it should be fine
 
10:36 AM
I know the games can be re-produced, but who is going to re-play 10,000 games? :P
But also the other issue is
 
Not all 10k, obviously, but just a small portion...
 
Someone can skip seeded games that their bot doesn't do well
And instead submit seeds that their bot has done well
 
@Night2 beta can give out the needed seeds
 
I'm not saying that we will do something like this
 
all generated from a mother seed (e.g. "artattack")
 
10:37 AM
But my personal experience says that if something can happen, it will!
@dzaima We would need a list of 10,000 seeds then and each person can take some of it then
 
Well, it's either that or inaccurate results, and I prefer the community distribution to be frank.
 
@Night2 yeah, that's what I mean
 
We can also do overlaps
So each person should take some seeds + some random already taken seeds
That will help to the validation process
 
We will also need to verify how consistent results are across computers, as I don't think anyone's tested that yet...
 
@Alion they should be the exact same, I'd think
 
10:41 AM
Although, hopefully, as long as the browser version is identical, there should be no differences.
 
@Alion Yeah, on some rare cases, they could be different. Like when someone uses datetime or locale related stuff or when big numbers are involved, I think 32bit and 64bit browsers will have different maximums for numbers as well.
 
@Night2 which entry used datetime? :p
 
@dzaima I haven't seen any, I just said that it can result issues on those rare cases.
 
if entries use date they'd be random anyways
 
@dzaima Yeap, kindof
So if for example I'm going to take 100 seeds to run, I will take another random 10 as well and then submit all 110 results, but only the first 100 is used for competition result and the other 10 should be used for verification of other seed runners.
Is this a good format?
 
10:46 AM
@Night2 hah that's complaining about 10000 games with each taking 5 seconds being long :P
 
@dzaima That was a question asked from last KoTH we played recently. I won't have any problem as long as we can verify individual results.
 
@Night2 I'm just saying it's funny that that post thinks a measly 13.8 hours is long equals forever :p
 
@dzaima That KoTH first was supposed to run each game for 100,000 turns and around 10,000 games if I recall correctly, but ended up to be 20,000 turns and 8,000 games, again if I recall correctly. So the starting idea would actually take more than a month (at least).
 
@Night2 ah okay, the post doesn't convey that at all
 
@dzaima That meta post was a general question to see if allowing competitors to run games is OK or not. But the bots grew more and started to be more complicated over time. So don't look for the game specs in that post.
 
10:55 AM
@Night2 I'd rather say first everyone gives results for the games, probably including the results per game in the question somewhere, and then people verify as they please
 
@dzaima I feel like this would allow for some nastiness, but I can't quite put my finger on it...
 
@Alion as anyone can verify all the results if they so please I'd assume it'd be fine (of course assuming betadecay verifies some of the results)
it's way better than just assuming betadecay wouldn't fake anything imo
 
@dzaima Wait, so now we don't even trust the challenge creator?!
 
@dzaima Why would he fake it?
 
@Night2 why would anyone fake results? :p
 
11:03 AM
@dzaima The obvious answer is to "make their bot look good"
 
@Alion it's better to not assume than assume
5
A: Art Attack KoTH

Beta DecayBorderline function(myself, grid, bots, gameInfo) { // Check if already on border if (myself[1] == 0 || myself[1] == grid.length-1 || myself[2] == 0 || myself[2] == grid.length-1) { // Move anticlockwise around the border if (myself[1] == 0 && myself[2] != 0 && myself[2] ...

 
@dzaima Challenge creator has no valid reason to do it, but anyone else has.
 
@Night2 ^^
 
Actually the most scary person is @dzaima as he has made the fancy controller ready :P
@dzaima That isn't even a serious bot.
 
@Night2 I'd assume the main tournament would be run on the official controller (of course, modified to be seedable)
and the controllers' code is up online for anyone to verify too
 
11:06 AM
@dzaima Well as long as it is verifiable (without possible loopholes), I'm OK with it.
Anyways my bot won't have much of winning chance considering your trio killer bots, so I'm going to take it easy and just throw my suggestions :P
 
@Night2 well my killer bot takes 35k moves to kill everyone and kills only maybe 3 people in the 2000 moves without even being near the top of the scoreboard
maybe a better strategy is 2 killers & Jim
 
@dzaima Hmmm, good news then!
How much would 0.020ms add to total run time? ~6.66 minutes?
 
@Night2 mhm, though divided by the number of parallel games
 
@Night2 Correct.
 
Hmmm, that's not much. I might add a third bot then, a fast one if I get enough time :D
 
11:14 AM
Why does undefined++ evaluate to NaN? :c
 
Anything NaN + something = NaN?
 
@Alion because JS. An if isn't that expensive
 
2
Q: what's the result of 1 + undefined

looping1 + undefined = ? first, String(undefined) get string "undefined" second, 1 + "undefined" = "1undefined" what's wrong? I run it in chrome console ,it return NaN. can you pls explain the result? I think it should be "1undefined". tks

 
@Alion well what did you expect?
 
@dzaima 1 :P
I mean, I "expected" NaN, I'm just complaining because I wanted something else :P
 
11:17 AM
@Alion You can do that with null though :P
var a = null; ++a;
 
@Night2 Huh. That's interesting. Not useful anyway, because I just wanted to add a property by doing a ++ on it.
 
@Alion Anyways if you are going to check for undefined, use typeof x === 'undefined', that is faster
 
@Night2 TIL. I always thought it was slow because it "looked" slow. Went with a different approach anyway, though.
 
1,000,000 checks for x === undefined is 732ms and same amount of checks for typeof x === 'undefined' is 586ms on my PC.
 
@Night2 how about !undefined (i know that's not the exact same but still)?
 
11:24 AM
@dzaima 635ms for 1,000,000 checks
The empty 1,000,000 loop takes 415ms.
var d = new Date;
for(var i = 1; i < 1000000; i++) (!x);
console.log((new Date) - d);
 
@Night2 heh, I'm guessing chrome just optimizes everything out, 10M takes 23ms
 
@dzaima I'm on Firefox and my work PC which has a slower CPU. Let me try on Chrome (and yes, Chrome's JS engine is faster then FireFox)
 
@Night2 interestingly enough, FF is way faster for my controller (~35ms/round improvement IIRC)
 
On chrome, both !x and x === undefined throw and error on my Chrome: VM75:2 Uncaught ReferenceError: x is not defined
@dzaima Is your controller using Web Assembly?
 
@Night2 did you define x?
@Night2 no, I don't think so :p
 
11:29 AM
@dzaima No, I'm checking to see if it is undefined, I don't want to define it :P
 
@Night2 the question is about object properties (e.g. ({}).x)
 
On chrome all of them are 5ms, so much faster!
Wait, Chrome is cheating, I think it doesn't compare since there is no statement after the compare
 
6 mins ago, by dzaima
@Night2 heh, I'm guessing chrome just optimizes everything out, 10M takes 23ms
but a 1B long loop still takes 2s
 
I added a console.log() and I forgot it was on 1,000,000! Going to kill tab's process!
Interesting, the code below still takes 5ms:
var obj = {};
var d = new Date;
for(var i = 1; i < 1000000; i++) var a = (typeof obj.x === 'undefined');
console.log((new Date) - d);
 
@Night2 chrome is awesome at optimizing :p
 
11:35 AM
@dzaima Chrome's JS engine is faster, but everything else, I love FireFox!
 
defining var r at the start and doing r=!x in the loop is still very fast
 
while (true) console.log("Whoops"); Chrome proceeds to consume all available computing resources from the entire known universe.
 
@dzaima If it isn't using Web Assembly, then Chrome should be faster, weird!
 
@Alion Seriously, that is magical. It managed to eat 60% of my 8 thread CPU.
 
@Alion Chrome used to eat 100% of available battery just a few years ago :P 4-5 threads is nothing for it :D
 
11:41 AM
since I decided by some reason I needed to build V8, here's the bytecode it outputs for that loop (not that I can read any of that :p)
 
I have managed to cut down the after-handshake logic loop from ~200 lines down to just ~75. Holy moly that was some spaghetti before.
(not including additional functions, like behavior logic and other stuff, but all of that is shorter, better and more performant than before anyway)
Oh. I missed tracking the movements of the partner of a bot-doubling ._.
 
Can I submit a copy of my main bot with same name and count its wins as my main bot? 😊
 
@Night2 No.
 
11:56 AM
Hmmmm 😢
 
@Night2 there
the thing is I didn't add any pairing logic, the 2 followers just bunched up by themselves :p
 
@dzaima 30,000 rounds though
 
2 hours ago, by dzaima
@Night2 I don't care about the 2000 turns, I want sub 40000 :p
goal achieved :p
 
I think 1 troll bot + 2 cleaner bots should be able to do that, as long as they handshake and avoid targeting themselves. Is that the same for your bots?
@dzaima I'm interested to see the scoreboard on turn 2,000
 
12:02 PM
@dzaima How is my buggy bot at top? :|
 
@Night2 I see it at the top quite often, to be honest.
 
@Night2 it's a good bot sometimes :p
 
@Alion The published version is buggy and the unpublished version is a whole word different from that, interesting that it still can be at top with the buggy version!
@dzaima I think you have excluded good bots and that is the reason for my bot to be on top.
 
@Night2 yeah I did exclude the slower bots
 
@dzaima Bot 0 keeps following the target bot, bot 1 keeps cleaning the farthermost paints of target and bot 2 keeps cleaning the middle range paints of target, is that right?
 
12:06 PM
@Night2 the orders change with what I'm targeting because the color overwriting rule
there are only 2 types though - direct follower & cleaner
 
@Night2 I don't know about dzaima's but I can tell you that's nowhere near as simple in my experience.
I'll make sure to explain the logic very well in my submission post, so you can have a good read then ;)
 
@Alion Sometimes simple things have complicated solutions, and you don't know until actually trying to implement the solution :P But vise versa, sometimes complicated looking things have very simple solutions as well!
@dzaima I would make the cleaners target different class of paints to make sure the target is eliminated faster.
 
@Night2 I'd do that too but that's a lot of logic to make :p
 
@dzaima Not, actually. I did it by adding 2 lines :P
 
What happens when both followers are from same modulo class, like id 1 and 4?
 
12:12 PM
@Night2 I get sad and click the random game button
@Alion was one of those this? :p
 
They shouldn't be able to kill 1/3 of bots
 
@dzaima Phew. Yeah, mine are definitely more advanced :D
 
@Alion no, they're still able to beat bots, just not as effectively as all 3 being different
 
@dzaima No, that was a one-liner roaming behavior.
(that I'm still remaking ._.)
 
@Night2 the minimum needed to kill a bot is one of my bots to have Math.abs(botColor-targetColor)%3 !== 2
@Alion how many framework functions do those 2 lines have?
 
12:15 PM
@dzaima Give me a sec, let me find them...
 
all functions I have defined are log, inbounds, botName, rotate (for the handshake), and to (go towards x;y) :p
 
const closest = Math.min(...cleaners.map(b => b.distance(pos)));
const distance = bot.distance(pos);
const wrongness = distance - closest;
And all cleaners want to minimize their own wrongness.
(that's put in a reduce that finds the best position on a grid)
 
@Alion can you reveal your handshake functions as well? 🙈
 
@Night2 They're pretty long...
 
@Alion see, I just go to the nearest one and stop then and there.
 
12:19 PM
@Alion I might be interested in them, maybe fake one of my bots as yours?
 
making it search the whole board would slow my bots 0.05ms/bot down
 
@Night2 Well, you'll be able to crib them once I release them ._.
 
@Night2 with my handshake, when I finish it - impossible since then the handshake will go on forever
 
And also ^
 
@Alion It might be too late when you release them :P
@dzaima Well as long as I know how you handshake, I can keep doing that in a bot.
 
12:21 PM
@Night2 you'll be doing that for 2000 moves though
 
@dzaima Yes, but the issue will be in that case, my bot will work for you, not me :D
 
@dzaima He can technically neutralize an entire trio like that though...
...although I still believe that counts as targeting a specific bot, which is disallowed.
 
@Night2 I'd count replicating a bots moves targeting anyways
 
12:37 PM
@Alion what do you do if one of the trio can't touch the target (while the other 2 can)?
 
@dzaima Send the outcast on a roaming spree, so he has some more colors to lose for the next mission.
Basically he becomes a normal bot for the time being.
 
right, I'm targeting the top bot it can target, might be worth it skipping the ones that can't be overwritten in one move
 
Speaking of which, I finished the remake, now it's time to test and see how many bugs I've created along the way :D
Oh, a syntax error, for a start. Not good...
 
@Alion hey, at least a compile-time error :p
 
And now I have to delete all the relics of my previous framework, which creeped in because of copy-pasting...
 
1:13 PM
to keep up the tradition of Alion making an awesome bot and me releasing my version of it before them, here's my trio bots code. Change the const ID = 0; to 1&2 for the other 2 bots
it still errors upon one of the 3 dying and errors upon killing everyone, but ¯\_(ツ)_/¯
 
@dzaima Are you planning on posting it or nah?
 
@Alion if I do post it, it'll be 2 bots + Jim
whether or not I'll post it, idk
 
@dzaima Well, two killers working together is still going to be quite an upset for my trio who treats everyone as a lone wolf...
Ooh, here's a curiosity: you could make the bots choose their internal IDs in-game. Everyone does the same handshake, and after that they just use Math.random to move to communicate which ID they want to take. Which would make creating massive swarms quite a bit easier.
Ah, but there still needs to be a designated leader, otherwise victories are going to be uniformly spread across all bots (if you have some leader-specific logic, that is)
 
@Alion "Math.random to communicate" what?
oh you mean as so to not have to define a different constant in each bot
 
@dzaima Yes, exactly.
 
1:42 PM
So after my newest additions I'm back at 70ms per bot on a 63x63 grid ._.
 
1:55 PM
@Alion I don't understand how a time like that is even possible :|
 
@dzaima And with only O(n^2) algorithms, at that!
 
@Alion ಠ_______ಠ
 
You'll be able to look for yourself, 'cause I'm not gonna bother optimize it. I'm finishing it up, posting it and leaving it be. I need some fresh air.
(I will however be available for optimization reviews if someone wants to do that and will come back to optimize it myself in a day or three if nobody's taken the job by then)
 
@Alion 48 days of tournament ಠ___________________ಠ
 
@dzaima Multiply that by at least 4, because the 70ms is on 63x63 as I said.
 
2:11 PM
half a year of tournament ಠ________________________________________________ಠ
 
@dzaima Sounds like Formic if it didn't have caching :P
Hmm. Now my bots have a strong desire to paint over each other's colors. Whew.
 
@Alion also what the hell were those additions
 
@dzaima Was working on the priorities of roam and clean routines. They now include stuff like neighborhood checks and iterating over all bots, and with the current setup there's no easy way for me to skip over those checks if they're unnecessary (because previous, simpler conditions aren't met) so they run on every cell of the grid.
@dzaima Your trio was doing better until one of the members died :P
 
2:28 PM
@dzaima Do you know the URL for your controller? I've tried davidje13.github.io/koth-webplayer/artattack.htm but I've got 404
 
Ok, thanks:)
The other controller, beta-decay is just too slow, and crashing, freezing, etc.
 
@kenorb mine shouldn't be faster :p
 
but it's not freezing the browsers, or firefox and chrome doesn't ask to close the tab
 
@kenorb betadecays fast controller is "meant" to freeze the browser
although I thought that was changed
 
2:36 PM
pity that yours doesn't show column with win summary
 
@kenorb yeah I'm too lazy to make that
 
Do you guys also get this?
Muncher errored: Array(4) null TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined
 
Yes, had the same, I think I posted the comment.
I usually removing bots from the list which erroring to avoid headaches.
 
My tournament stopped on game 7 for that :(
 
2:56 PM
I have just witnessed a great battle :D
The trio decided to kill Jim, but Johnny was still alive. Jim was massive and it took forever to clean him up, so John was in time to start clearing up the bot that was keeping Jim at bay. Fortunately, survival instincts kicked in (which is what I was testing for), and the Jim was set free since the bot had to save himself.
 
@Alion You don't kill someone in front of his big brother :P
 
(they didn't abandon Jim completely though, and once the bot responsible for following Jim regained his colors, he promptly came back to kill Jim, along with John who was deemed very dangerous)
 
In other news, my 3rd bot is ready
Finished him in the simplest way possible! Now time to test ...
What is a good name for a mercenary bot? Mercenary?
 
Wow, there are sometimes turns that make my bots take almost a second each to finish thinking on a 60x60 board :O
(the average is 25ms though, but should really be <5)
 
My bots: 0.015ms + 0.321ms + 0.432ms = less than 1ms :D
 
3:04 PM
Whoopsie...?
 
@Alion What are you doing? :D
 
@Night2 I don't know, I just ran a game to the finish ._.
This greeted me 4 turns before the end.
 
O_o
 
Resumed and it was fine, but still...
Huh. My bots combined are leaking 15MB of memory every second.
Oh. Closures.
God damn it.
 
@Alion o_O
 
3:11 PM
I store the entire bot move history, but it's now stored as a new XY, and a class XY gets defined every call...
 
3:23 PM
Have you ever seen Trollbot following Annoying Little Brother who is following someone else?
 
@Alion oh god you still do that. why
oh moves only
 
@dzaima Entire bot move history? Dunno, but fixed the memory leak by declaring the classes once and loading them from this.
 
ಠ_____ಠ and why classes
 
OOP!
 
you could easily do away with [x,y]
 
3:26 PM
@dzaima I put stuff on the prototype of an XY pair, so...
I just like the syntax better.
Although distance(a, b) does make more sense than a.distance(b)
Hm... Maybe I should rethink my philosophy.
 
@Alion ಠ_______ಠ
 
@dzaima On the other hand, a.sub(b) makes more sense than sub(a, b).
 
also I hope you're not doing a.distance(b) in a loop
@Alion why do you even have sub
 
@dzaima In which loop? Some grid.filter or grid.reduce loop? Because if so, then I do that. A bunch.
 
@Alion ಠ_ಠ
 
3:31 PM
@dzaima To get relative coordinates between target and bot to calculate which way to go in my travelTo.
 
@Alion is that that hard to do manually and worth making a class for
 
function travelTo(goal, start = me) {
  const relative = goal.sub(start);
  return Math.abs(relative.x) > Math.abs(relative.y) ? (
    relative.x > 0 ? 0 : 2
  ) : (
    relative.y > 0 ? 1 : relative.y < 0 ? 3 : 4
  );
}
@dzaima I put add, mul, and div there as well, and an equals for good measure.
I don't use mul and div ._.
 
the things people do for a tiny bit more readable code
 
@dzaima Or tiny bit less readable, if we're talking about a.distance(b).
 
@Alion yeah that just should not exist
 
3:36 PM
Burn it with fire!
 
IMO a class for (x;y) is useless if at some point you still need to retrieve the separate values
 
And also Bot extends XY. Which also makes very little sense, but I use Bots as XYs basically everywhere so...
 
you have a class for a bot. Of course you would
 
@dzaima And Cell!
 
@Alion ................................................................................‌​........................................................................
 
3:37 PM
(that only has id and no functionality)
I think I'm insane.
I've been doing too much C# lately.
 
classes are useless for a 300 line program anyways
 
@dzaima Oh, and to top it all off, the Bot class is actually incredibly retarded since the whole update process (yes, I reuse bot objects!) is done outside of the class anyway.
I don't know what I'm doing.
 
see, I succeeded in making my bot, didn't go insane, and made it way faster than you did (both in writing and execution time), so its fair to assume you shouldn't've gone with classes
 
@dzaima And he should use an IDE :P
 
@Night2 I'm writing my bots in Sublime which doesn't have much for JS anyways
 
3:43 PM
@dzaima Still better than N++
 
@Night2 no, I'd use N++ if I weren't on linux or if Wine wasn't that ugly
 
@dzaima You'd lose lots of integrated features then! I always use Notepad++, but only for tiny tasks or as a default text editor, but not as a development environment.
 
@Night2 I'd call making there Art Attack bots "tiny tasks"
I'm using Atom for the controller development & Canvas too :p
 
@dzaima I'd call editing my hosts file or changing 1-10 lines a tiny task.
 
I didn't actually fix the leak ._.
 
3:47 PM
@Night2 I'm not using any integrated features :p
 
Maybe I should just ditch infinite bot move history.
What do I even use it for anyway?!
 
@Alion you don't, I hope.
or at least you shouldn't
 
.____.
I only use it to check the previous position.
 
@Alion thought so
 
@dzaima I think your controller gives 4-5 bots same color in tournament mode, is it out of colors?
 
3:54 PM
@Night2 when it's out, it just gives bots random colors
 
In normal games yes
But look at this:
 
oh that yeah
that's not my fault, the framework is what ran out of colors :p
 
It is not important anyways, since it is just the tournament
 
Hm. That's not the leak?!
I swear, if it's some other bot...
 
@Alion I don't have a problem with other bots
The only bot excluded is Muncher because of errors
 

« first day (11 days earlier)      last day (32 days later) »