« first day (1308 days earlier)      last day (3539 days later) » 
00:00 - 12:0012:00 - 00:00

12:11 PM
@Sparr Do you have the latest?
Because I completely removed offset in the latest
 
0
A: Sandbox for Proposed Challenges

Beta DecayAutomatic Plagiarism Disclaimer I don't approve of plagiarism, but I thought it would make for an interesting challenge Challenge Now we've got that over with, it's time for the challenge. What you have to do is write a script that takes a piece of work (whether it's from online or from a tex...

 
@PhiNotPi I believe so
yes, my latest fixes. Whether that is all of them, I don't know
 
12:59 PM
@VisualMelon Haha np. And welcome to the world of free video lectures.
 
1:11 PM
Some days I just really want to destroy the 1100 Visual Studio warnings we have in our solution. Goodbye unreachable code. Goodbye variable that was declared but never used. Goodbye conditional statement that always results in true.
 
2:02 PM
The Board and Card Games chat is really depressing. "IM SORRY YOU TAPPED OUT ON TURN TWO NOW TAKE 20 - dec 26 '12 at 16:47 by OrigamiRobot"
I didn't even know dates could appear in the transcript
I thought it was always "How many h's or d's ago"
 
@NathanMerrill still lots of offset logic github.com/thenameipicked/CodeBots/blob/master/CodeBots/…
 
Ah, my last push failed
pushed
 
@NathanMerrill SuperFreeze now scores high :)
 
awesome
 
whatever was buggy about its reference to *#*C is probably working now
 
2:16 PM
yeah
wait..I still have him as 71 points...maybe I haven't ran the scores since the latest fix
 
I'm running a full set now
> There were 3225 bots with equal flags
> FreezeTag had 1159 points
> FastMoveCloneDodge had 952 points
> SuperFreeze had 939 points
> FastForwardClone had 785 points
> TheCommonCold had 742 points
> RovingVirus had 711 points
> ForwardClone had 549 points
> HideBlockAttack had 478 points
> QuickFreezerbot had 402 points
> Randomcopier had 384 points
> Copycat had 270 points
> BlockFreezeAttack had 265 points
> RushAttackDodge had 260 points
> QuickFreeze had 251 points
> BoringCopybot had 244 points
looking forward to comparing to your results
 
2:53 PM
Aha. I think I finished the Java parser
 
:)
 
wow
I got really similar results on my own
> There were 3328 bots with equal flags

> FreezeTag had 1151 points

> RovingVirus had 938 points

> FastForwardClone had 864 points

> TheCommonCold had 724 points

> HideBlockAttack had 628 points

> QuickFreezerbot had 530 points

> ForwardClone had 524 points

> RandomCopier had 507 points

> BlockFreezeAttack had 423 points

> Copycat had 386 points

> RushAttackDodge had 282 points

> QuickFreeze had 281 points

> BoringCopybot had 265 points

> RepairAndProtect had 225 points

> Magus had 203 points
well, maybe not
Roving virus got dramatically different results
 
3:06 PM
25% different
better than the 50%+ variance I was seeing on 1*50k runs
the virus bots' performance depends heavily on their starting neighborhood
if they can make one copy of themselves on turn 20, that's a much faster start than taking until turn 50+ to get that first copy made
maybe the official scoreboard should be something like 100*5000? would take three hours for you, right?
I've been just using short runs like 2*1000 for my bot testing purposes
next time I have some free time I'll fork this to a real repo and start making it question/challenge agnostic. gist.github.com/sparr/b310b1e1273c9265dadf
 
What on earth...
else //I don't know
{
}
 
3:45 PM
@Sparr my Java version is running significantly faster than Python
with the standard numbers, it's under 20 seconds
 
similar results?
also, yay :)
 
I haven't fixed all of the bugs
 
I haven't done graphics in Java, but with that speedup I'd switch to Java for my GUI/debug/etc attempts
ahh, ok
 
there's only one that I see
but I can't figure out what's happening
The A variable becomes negative at some point in time
FYI, java doesn't do good %
It allows negative results
which is so annoying
 
Is it worth creating a complete data dump (all bots at all steps) for identical runs in python and java in order to highlight any differences in what should be identical output? Having two implementations seems like a perfect opportunity for cross testing.
@NathanMerrill yes I do love the python %. It has some unusual cases but for positive modulus it behaves nearly always exactly how I'd want it to.
 
3:49 PM
just add 24*bignumber before you modulus
 
@githubphagocyte getting initial setup to be similar would be different
 
0
A: Sandbox for Proposed Challenges

ManuChess king-of-the-hilljava General This is a chess-KOTH with simplified rules (because chess itself is already complicated, playing it via a simple program isn't making it easier). At the moment it is limited to java (version 8), but creating a wrapper-class isn't that difficult (in case someon...

 
I don't want to do that...as there should never be negative values except for random
but for random, I just do abs()
 
ahh, well, find the negative source :)
 
@NathanMerrill yes you might need to use a non-standard PRNG to ensure they are both using the same one, but you could write a very basic one just for that purpose, and not use it in the real contest. A one liner should do it
Other than that the fact that it's all integers should ensure the results are identical (or that where they are not is evidence of a bug which would be useful to know about)
 
3:54 PM
being able to seed the PRNG in one or both of them would be handy
for re-running a contest to debug
 
Even a hardcoded seed would suffice for that.
Being able to specify the seed as a command line argument would be even better
 
I wouldn't do a hardcoded seed, because the PRNG would be different for the two platforms
but there'll still be differences
as the Java one probably gets a random number at a different time than the Python version
 
A home made PRNG could be added to both as a one line function - for testing purposes I imagine something as simple as the following would suffice:
t += 1; return (t * p) % 24
for some constant p coprime with 24
 
aha!
I found the bug
A=A+A+A+A+A+A
got executed over and over until A looped into the negatives
 
Does addition treat large numbers as whatever they equal modulo 24, without actually reducing them?
 
4:03 PM
well, my implementation did
it shouldn't
 
well spotted
I don't see that a difference in program layout should affect the order in which random numbers are requested from the PRNG unless one of the implementations is parallel, which I wouldn't expect since the bots are updated sequentially.
 
I'd be ok if the scores are about the same
Maybe later, but now, I just want to get it working
I'm currently doing score accumulation
 
There are some interesting (though potentially useless) things you can do with in-line addition. For example, A+A+A+A==B+B+B+B returns true if A is congruent to B mod 6.
 
4:24 PM
bah, Java has no easy way to sort a map
 
I've added some rather terrible art to the top of PNG Pixel Forces
Essentially making it impossible to pretend you are working while reading it
I should go back and illustrate my older challenges :-/
Time to break out the Whack 'Em tablet!
 
@NathanMerrill That's one of the areas where I would have been happy for Java to not follow C. Operator precedence is another.
@NathanMerrill In Java for random integers in a range you should create an instance of java.util.Random and use nextInt(range).
@NathanMerrill Use java.util.SortedMap.
 
If you're in need of some art: scratch.mit.edu/projects/12563144
 
@NathanMerrill I'm thinking of making a preprocessor for codebots bots
in particular, I want to be able to use named labels as my If targets, so I don't have to keep re-writing my conditionals when I rearrange my code
 
thanks for Sorted Map @PeterTaylor
 
4:36 PM
Named labels will be a great feature.
 
If D startclone turn
Move
Copy 23 C
:turn Copy E D
:startclone Copy startclone C
that's what my code looks like while I'm writing it, then I manually do the replacement
 
I typically use labels at the end of the lines, and do replacement.
 
@Sparr that wouldn't work for relative labels
 
@NathanMerrill I'm ok with that
 
bah, @PeterTaylor Sorted map is sorted by Key, not value
 
4:43 PM
I would definitely be interested in a preprocessor.
 
@NathanMerrill Ah, you want to sort bots by score?
List<Bot> sort(final Map<Bot, Integer> scores) {
	List<Bot> bots = new ArrayList<Bot>(scores.keySet());
	Collections.sort(bots, new Comparator<Bot>() {
		public int compare(Bot a, Bot b) {
			// Sorts ASC; to sort DESC negate the value or swap a and b
			return scores.get(a).compareTo(scores.get(b));
		}
	});
	return bots;
}
 
Is the amount of bots we're writing getting ridiculous?
 
@overactor no?
I'd expect to see a contest like this have 50-100 entries
it's getting hard to keep up with whether my ideas are copies of existing bots, though
 
But not written by essentially 4 people
and I know what you mean
My new bot is rather novel I think btw
It's a combination of a freezer and a virus
Freezes opponent, replaces only flags
lets the other bot run again
with one line damaged though
 
I just posted a new bot that copies a four-line loop to other bots, that loop fills the other bot with my flags :)
 
4:57 PM
I just lost over 50 rep, and not sure why
 
well, 5 lines total, 3 line loop.
@EricTressler mod-deleted question that you answered
 
That's not bad
you basically rather quickly create some minions
 
For some reason, the misspelling "substraction" annoys me inordinately
 
that are not quite as clever as you, but do work for you
I wonder
 
4:59 PM
I was trying to think of something reasonable that could be called "substraction", so I can make a question about implementing it
 
If you could write a bot that turns enemies into the bot you just pushed
So you essentially have 3 levels of bots working for you eventually
 
Instead of a virus, it's MLM
 
@Sparr
Move
Copy 0 C
As your first two lines
doesn't that freeze you right from the bat?
 
thanks, fixed
missing line :)
running a full test with that bot now
short test had this leaderboard:
> FastMoveCloneDodge had 142 points
> Insidious had 135 points
> SuperFreeze had 128 points
> FreezeTag had 114 points
> RovingVirus had 72 points
 
Was Cancer included?
 
5:05 PM
no
let me run GetBots
 
Btw
 
Error on Line 6 in Cancer
Copy #23 *#*C==#23
???
 
wtf am I trying to do there
 
I think your editor's autocomplete was being "helpful"
 
I think so too
it also constantly makes Copy out of C
It's cute that it tries though
should be good now
 
5:09 PM
@NathanMerrill right now, something in one of the published bots is leading to arg==26 and an exception on this line: return person.actions[arg].name == "Flag"
 
Hey, *#*C, he typed that earlier! He's going to be so stoked when I autocomplete this for him.
 
yeah, completing C to Copy is annoying to me
if I keep writing these bots I'll write a syntax definition for codebots so it knows C is a keyword
 
Maybe we should just make an IDE?
With flow charts and stuff
on an unrelated, I had my first encounter with scratch today
It's kind of fun in a way
 
@overactor, those were bugs in my influenza bot.
(Pardon the pun?)
It was because I added a line an stuff got messed up.
 
Sparr's working on that problem
 
5:16 PM
I might :p
 
I'm thinking "smallpox" may be next.
 
almost done with a full run with cancer and insidious etc
> There were 2975 bots with equal flags
> Insidious had 1122 points
> FreezeTag had 1059 points
> RovingVirus had 1019 points
> SuperFreeze had 1018 points
> FastForwardClone had 844 points
> FastMoveCloneDodge had 822 points
> TheCommonCold had 774 points
> ForwardClone had 550 points
> HideBlockAttack had 500 points
> QuickFreezerbot had 452 points
> Randomcopier had 400 points
> BoringCopybot had 339 points
> BlockFreezeAttack had 332 points
> Copycat had 266 points
> QuickFreeze had 246 points
@overactor Cancer doesn't seem to be doing well
 
Yeah, those bugs really messed up influenza.
 
@overactor so far my best debugging approach has been to change the settings to run just one copy of my bot against one copy of flagbot, and print out their Actions every turn
@NathanMerrill __repr__ or __str__ for Argument, Action, Bot would be really handy for debugging purposes.
 
(I'm writing bots in iPad Pages, btw.)
 
5:22 PM
Well, the design might just be flawed
Since it is kind of slow and only copies in a few flags
And then hopes the bot can function without the line I destroyed
 
Since the arena is very dense (and bots are practically lined up with each other at the start) fast bots have a solid advantage.
 
I'd be interested in seeing what a sparser field does to shake up the scores
 
want me to run a sparser one?
 
Would be interesting
how much sparser?
double sides?
 
Yes @PeterTaylor
@Sparr I'lll add a str function for each of them
 
5:30 PM
I golfed a line off of Insidious:
Move
If D #3 #0
Copy 0 C
Copy 3 C
Copy #11 *#*C
Copy #12 *#*C
Copy #13 *#*C
Copy #14 *#*C
Copy #15 *#*C
Copy E D
Copy 0 C
Flag
Copy C+3 A
Copy #C+22 #A
Copy A+1 A
Copy C+21 C
 
@overactor I'm running one now with 7 empty spaces between orthogonal neighbors instead of 3
@PhiNotPi it's not all about line golfing...
 
Does grant you another flag though
 
Actually, I might be able to take another line off.
 
yeah, that's a strict improvement
 
You should add some more If D #3 #0 lines though
 
5:31 PM
@Sparr str has been added, untested , but shouldn't be buggy
 
only attacking/moving once every 2 turns is not worth the slight increase in flags
 
@overactor not a bad idea.
actually can do better, too
I can abort the infection if the target moves away
 
@Sparr I don't understand the bug you are describing
 
That's also probably worth it
should only cost flags, no moves
 
@NathanMerrill I lost the stacktrace, but the gist is that return person.actions[arg].name == "Flag" was occurring where arg==26, and 26 is larger than len(actions) so it was bailing out
 
5:35 PM
The original bot also only moved every 2 turns.
 
@overactor will only cost one flag to check every tick
 
Exactly
 
> There were 1371 bots with equal flags
> FreezeTag had 614 points
> Insidious had 570 points
> FastForwardClone had 557 points
> SuperFreeze had 480 points
> ForwardClone had 442 points
> TheCommonCold had 286 points
> FastMoveCloneDodge had 273 points
> QuickFreezerbot had 255 points
> HideBlockAttack had 244 points
> BoringCopybot had 215 points
> Randomcopier had 190 points
> RovingVirus had 183 points
> Copycat had 178 points
> RushAttackDodge had 172 points
> QuickFreeze had 138 points
> Flagbot had 128 points
that's with a 4x size arena
not a huge difference
 
Did you update the Influenza bot?
 
@Sparr can you do a pull request with your auto-grabber?
 
5:38 PM
@NathanMerrill I've been meaning to fork your project anyway so I could send pull requests for the GUI and such
 
Ok.
I'll soon be pushing a new repo for Java
 
@Sparr Interesting
 
updated insidious with improvements from @PhiNotPi and @overactor :)
it's winning my local leaderboard pretty consistently now
 
Nice
 
Here is a version with a slightly faster reaction time if it rotates and sees another bot:
Move
If D #3 #0
Copy 0 C
Copy 3 C
Copy #11 *#*C
Copy #12 *#*C
Copy #13 *#*C
Copy #14 *#*C
Copy #15 *#*C
Copy E D
If D #3 #2
Flag
Copy C+3 A
Copy #C+22 #A
Copy A+1 A
Copy C+21 C
 
5:42 PM
@PhiNotPi I just did that too :)
along with other smarts
@overactor faster moving costs flags, and those flags get more precious the fewer I have :)
 
Especially with these new cancerous bots
 
@Sparr Seems like balancing that an evolutionary approach could perfect
 
My QuickFreeze bot was also based on copying some code into another bot to fill it with flags, but it took much longer to fill.
 
"evolutionary"
 
@overactor I went with two moves every three turns
@PhiNotPi I'm now reacting to turning towards a bot faster, AND reacting immediately when my current target moves away.
@overactor 3/4 wasn't worth the loss of another flag, it seems
 
5:52 PM
I can imgine that
it's a significantly smaller step
 
with plenty of flags to spare I went up to 5/6 and 5/7 for my fast attack bots
 
Heh
I had a bug where bots could move and overwrite each other
it made movebot outscore everybody
with a score of 6
 
:p
> There were 3371 bots with equal flags
> SuperFreeze had 1137 points
> FreezeTag had 1099 points
> FastForwardClone had 947 points
> RovingVirus had 921 points
> FastMoveCloneDodge had 914 points
> Insidious had 810 points
> TheCommonCold had 671 points
> ForwardClone had 571 points
> HideBlockAttack had 488 points
> QuickFreezerbot had 391 points
> Randomcopier had 311 points
> Copycat had 274 points
> BoringCopybot had 265 points
> Magus had 256 points
> QuickFreeze had 252 points
> BlockFreezeAttack had 230 points
that's a full normal run, I think
Insidious does less well on long matches, since its thralls are mostly defenseless
I might try putting a Move or even a turn into the thrall loop
 
6:11 PM
Aha!
I got my scores
They aren't sorted, but do these look about right:
BlockFreezeAttack got a score of 435
ReproducingBot got a score of 58
BoringCopybot got a score of 214
DNAbot got a score of 19
FastMoveCloneDodge got a score of 141
HideBlockAttack got a score of 703
FastForwardClone got a score of 224
ForwardClone got a score of 193
Movebot got a score of 132
Attacker got a score of 27
QuickFreezerbot got a score of 158
TheCommonCold got a score of 1297
Parasite got a score of 71
RovingVirus got a score of 145
Blocker got a score of 250
Copycat got a score of 210
Oh, I don't have all of your bots
no, those don't look right....QuickFreeze isn't doing so well
 
@NathanMerrill for comparison, you might want to run some tiny matches
1 on 1, for example
certain bots should beat certain other bots with very specific frequencies
 
Ok. I don't know the bots that well...what is a good pick?
 
Is - allowed yet?
 
@NathanMerrill I mean, 1v1 is super fast. run every 1v1 a bunch of times in the old controller, pick out the ones with notable ratios
100:0, 0:100, 50:50, etc
 
6:20 PM
@overactor maybe you need to write a non-standard to standard compiler, so you can use '-' in your code and then just run it through the compiler to convert them all correctly to combinations of '+' before you submit the code
 
a preprocessor could do that
 
true
since it doesn't give any extra abilities writing it into the controller would speed up runs without changing the outcome
 
Running it in Java is super fast too
with all of the bots it takes my computer about a minute
I just need to figure out what is wrong in the code
 
If D #2 #1
Copy 23 C
Copy #8 *#*C
Copy 9 A
Copy #A *#A+*C
Copy A+1 A
If A==24 #7 #24
Copy 23 C
Copy C+23 C
If D #C+2 #C+23
Copy C+21 C
Copy C+2 C
If D #C+6 #C+22
If D #C+5 #C+22
If D #C+4 #C+20
If D #C+3 #C+19
If D #C+2 #C+18
Copy E D
Copy #C+7 *#*C
Flag
Copy C+3 A
Copy #C+22 #A
Copy A+1 A
Copy C+21 C
This bot should turn opponents into Insidious bots
It's a terrible tactic though
And the Insidious bots are not by far as good as the original Insidious
and I only have one flag
 
The last flag is the hardest to find, right? Although keeping it doesn't help if you take on 2 enemy flags
 
6:30 PM
Wait, can you flag on behalf of another bot?
 
@EricTressler flagging is just copying one line to another
if it happens to be a flag that's not yours your bot won't necessarily know that
 
Wait, sorry, I don't understand the parameters of this contest then. If you plant flags on another bot, what connects it to the flagger for scoring at the end?
 
Nothing
You have a flag, and every bot that contains that flag in majority scores you a point at the end
 
So your flag has a hidden ID in the controller?
 
6:32 PM
Each flag is a number
 
yes @EricTressler
 
Okay, sorry; I have only been paying marginal attention to this, because it seemed like everyone had the entire contest covered as soon as it was posted
 
A bot can tell that two flags are equal or not equal, but it can't know for certain which of the two is its own flag
 
I guess it must have been in the sandbox for a while
I see, so the Repair bot has 3 flags and checks majority?
 
@EricTressler yes there was a lot of sandbox activity for this one
I think that was one of the approaches, yes. The more flags you check the higher your probability of identifying an invader, but the less room you have for other code
 
6:40 PM
I wasn't involved much in the sandbox action
 
@overactor great work on the meta-insidious. could be viable with 32 or 48 lines to work with.
 
I really had to cram to make it fit
 
@EricTressler we had a lot of ideas before the contest started, but the metagame has definitely evolved a lot in the last day and a half. early discussions focused on attack and block and self repair, but then we discovered freezing and self replication and other tactics
 
@PhiNotPi down voted and close voted - that was an easy one...
 
I had to omit the Move line Insidious has at #1
 
7:28 PM
This is a KotH and golf all in one :)
 
I just have to hope the line that's there works
 
8:03 PM
gonna get to 2000 rep today
 
@Sparr Congrats in advance!
 
tried having insidious thralls move, or move and turn. lowered overall score :(
 
Argh Visual Studio why do you hate me so.
"Your changes were not checked into due to conflicting changes. These conflicting changes have been automatically resolved. Click dat button again, SUCKER!"
 
8:20 PM
Would anyone here be interested in other problems like the "Find good ways to check for perfect Euler bricks"?
The problem as it was posed was bad, but someone in the comments linked to another one that was similar. I.e. the goal wasn't to solve the problem, but to exhaustively check potential solutions
 
8:33 PM
the code bot challenge has me thinking of ants and state machines and trails
I remember doing an a-life sim where you wrote a state machine for an ant, which could walk around and leave trails and change behavior based on the trails it encountered
 
That's implemented in Golly, I think
I forget what it's called; is that Langston's loops, maybe?
What you just described has a name
 
the one I'm thinking of was more coding challenge, but I'm aware of the simpler cellular automata implementations as well
 
Found it, or a version: Langton's ant
oh, okay
 
so, same concept, but with more overlapping trails and an arbitrarily complex state machine rather than the simple left/right decision in langton's ant
 
Ok so I just got this email today:

Subject: Our Brother is Lost?

It's possible that he has simply become better at hiding. If you know the whereabouts of the cone, please drop a hint.

The cone community is becoming worried about our orange brother.

Viva La Cone!
It came from FreeTheCone@gmail.com
And this was apparently from last month but I must have ignored it:

Subject: They have taken from us

...that which is precious. We shall not rest until our orange brother has escaped the darkness.

#freethecone
Martin Büttner has gone missing. Perhaps he knows where to find our orange brother?
3
 
9:03 PM
Hahahaha! Two developers have been fixed their same respective bugs THREE TIMES EACH now.
One developer makes a change, the other dev undoes it because it broke something, repeat.
That's communication for ya
And code review wins the day. I couldn't help but ask while I was doing the review "Haven't I watched you do this before?"
 
@NathanMerrill pull request for the getbots script
also there are typos and broken code in your current commit :/
I added fixes to my pull request
 
9:29 PM
First world problem: Responding to a comment thread involving ChrisW and Christian; have to type six letters before autocomplete picks just one.
 
@Geobits You can hit tab multiple types to cycle through the list of names.
 
@Doorknob I know, but that wouldn't be the stubborn way to do it.
 
:P
 
I'm too used to hitting one letter and done. Like I said, first world problem.
 
9:45 PM
How did I not know that SQL = operator was case-insensitive?
Who in their right mind would design an operator named equals that defaults to case insensitive to begin with?
 
Someone creating a database system where users are going to type in whatever the hell they want?
They were probably trying to make it "easier".
 
@Rainbolt have I ever told you about how CPAN on OSX installed the perl "HEAD" script which overwrote the standard "head" because the filesystem is case insensitive?
 
@Sparr I've seen worse.
 
TIL: OSX filesystem is insensitive. (can you tell I'm not an apple user?)
 
A NASA open source tool for classifying n-dimensional data. I downloaded the zip of the source and tried to compile it.
 
9:50 PM
@Geobits it's insensitive by default, but there's an option to make HFS case sensitive
 
It took me about 4 hours to figure out that the problem was that two of the source files in the zip had a name which differed only in case, and when I extracted it on an OS X box with a case-insensitive filesystem the second overwrote the first.
 
@Geobits however, some pieces of software (cough*Adobe*cough) rely on the insensitivity to avoid having to consistently capitalize things. if you enable case sensitivity, many Adobe products will break because they named the file xxx.so and tried to link against XXX.so, etc.
 
That's lovely.
 
Latest code includes GetBots
 
hooray
 
9:59 PM
Can anybody explain why my answer here would give results dependant on my PC? I get 28320 on one (Ubuntu,i7) and 28340 on another (Windows,i3). Same code and input on both.
I didn't think I was using anything platform specific.
 
@NathanMerrill SuperFreeze in your repo is out of date and buggy. also you're missing a bunch of new bots.
 
I know
I'm running the current set now
 
I tried swapping out the random Block in SuperFreeze for a jump before the freeze line, just in case someone causes superfreeze to freeze itself
but that was a big loss in points. I guess the block is helping a lot and/or its freezing itself not often
 
Ok...I just pushed
there was a bug in the last one
and this has all the bots
bah, I pushed the bak folder
 
10:22 PM
....this execution is going to take forever
I'm on game 3. Turn 1500
 
There were 4696 bots with equal flags
SuperFreeze had 1245 points
FastMoveCloneDodge had 853 points
Insidious had 816 points
RovingVirus had 789 points
FastForwardClone had 781 points
FreezeTag had 760 points
ForwardClone had 478 points
QuickFreezerbot had 463 points
TheCommonCold had 439 points
HideBlockAttack had 392 points
Influenza had 368 points
BlockFreezeAttack had 310 points
BoringCopybot had 292 points
Copycat had 286 points
QuickFreeze had 218 points
FlagInjector had 204 points
Magus had 199 points
 
I swear this program has O(n^2) execution time
 
I remember when I felt so clever about Dnabot...
 
though, I don't know why this would be the case
 
kinda stoked about that leaderboard, though :)
 
10:37 PM
@Sparr have you seen any thing that would cause my program to be O(n^2)?
 
@NathanMerrill how do you check for adjacency?
 
I add to the current coordinates and look in a hashmap of coordinates
 
0
Q: Can you make my terminal less boring?

DoorknobTerminals are so boring these days. They used to look like this: Now they're just bland and dull and black-and-white. I want you to write me a program that will make my terminal all colorful again! Description Take this example Ruby code: Most Linux terminals support these escape sequenc...

 
@NathanMerrill that was my only guess... Have you tried profiling the code at different values of N to see what changes?
 
I've tried profiling, but it never returns anything good
I'm not sure how to profile in python
 
10:51 PM
There's a profile module which makes it much easier
cprofile I think
 
@NathanMerrill python -m cprofile somethingsomething.py
You'll want to look at the cumtime column, the cumulative time spent in each specific method
2
 
It has an option to write to file, so you could run it for several different values of N and see if one particular part of the code spikes as N increases, then you'll know where your O(n^2) problem is
 
ah, I was always trying to use cprofile in my actual code
that would be my problem
 
There's quite good documentation for the module here
It has both in depth description and a quick intro
 
11:04 PM
Ok...so it's not O(n^2)
if I do 15 bots, it takes 9 seconds to run
but with 30 bots, it took 18 seconds
 
Does it just seem worse because of the high rate at which new bots are flooding in?
 
I'm looking at the individual function calls to make sure that's the case
but when I started with my 4 bots, it only took a few minutes
then now I have 30 bots...and it takes me 40 minutes to run
my program is O(nlogn) due to the hash map
also, I had no idea, but os.listdir takes a long time!
22 seconds for 30 bots
actually... I mis read this...import os takes significantly longer with more bots
I have no idea why
 
11:22 PM
Could you make it nearer O(n) by using an array instead of a hash map? Since your arena is quite densely filled with bots.
 
11:32 PM
I definitely could
I don't think the arena being dense would create more conflicts, just number of bots
 
I mentioned the density more thinking that an array wouldn't take that much more memory
 
00:00 - 12:0012:00 - 00:00

« first day (1308 days earlier)      last day (3539 days later) »