code logs -> 2010 -> Sun, 06 Jun 2010< code.20100605.log - code.20100607.log >
--- Log opened Sun Jun 06 00:00:25 2010
00:14 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!]
00:25 * Tarinaky facepalms as he realises the source of the bug was him trying to be too clever -.-
00:25
< Derakon>
Cleverness is generally to be avoided in programming~
00:26
< Tarinaky>
I have a plane of discrete cells. I was storing them as a single vector (since each row is the same width) as I figured this would be more memory efficient...
00:27
<@ToxicFrog>
Premature optimization?
00:27
< Tarinaky>
Later on I forget this fact and write code that expects the vector to go out of bounds... then wonder why it doesn't work as expected~
00:27 * ToxicFrog gasps in horror
00:28
< Tarinaky>
Well... Not really. It means there're fewer lines of code since there's fewer objects to initialise.
00:29
< Tarinaky>
There. Works now.
00:42
<@ToxicFrog>
Oooooh god yes
00:42
<@ToxicFrog>
I am reading the Scala specification
00:43
<@ToxicFrog>
Unicode categories Sm and So (mathematical and other) are allowed in operators
00:47
< Tarinaky>
So I'm tailing the output of my logger in the background. The logger truncates the file when it opens it for writing, this means that 'tail -F' misses a bit while tail panics.
00:48
< Tarinaky>
Any suggestions on how to fix tail so that it won't miss the first few lines of the log?
00:54 Syloqs-AFH [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Client closed the connection]
00:56
< gnolam>
... don't truncate the file?
00:57
< Tarinaky>
I don't want to keep the contents indefinately though :/
00:58 Syloqs_AFH [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code
00:59 Syloqs_AFH is now known as Syloqs-AFH
01:04
<@Vornicus>
The unclog it manually.
01:22 Attilla [Attilla@Nightstar-e185f988.threembb.co.uk] has quit [[NS] Quit: ]
02:06 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
02:53 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
02:53 RichardB_ [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has joined #code
02:55 RichardBarrell [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
03:40
< Tarinaky>
Stupid question - in C++ struct's are allowed to have constructors and overloaded operators right?
03:41
<@Vornicus>
christ, just use a class
03:41
<@ToxicFrog>
In C++ "struct" is just shorthand for "class where everything defaults to public", IIRC
03:41
< Tarinaky>
Yeah, that's what I was checking.
03:41
<@ToxicFrog>
So, just use a class.
03:41
< Tarinaky>
But I want everything to be public :/
03:42
<@ToxicFrog>
class Foo {
03:42
<@ToxicFrog>
public:
03:42
<@ToxicFrog>
...rest of class goes here...
03:42
<@ToxicFrog>
};
03:43
< Tarinaky>
q.q
03:43
< celticminstrel>
I see no reason not to use struct.
03:43
< Derakon>
structs are historically meant to be used for containers.
03:43
< celticminstrel>
So?
03:43
< Derakon>
You can attach logic to them, but it goes against what most programmers are used to.
03:43
< Tarinaky>
Well... It's only a column vector.
03:44
<@ToxicFrog>
celticminstrel: because he wants a class.
03:44
< celticminstrel>
But a struct is a class.
03:45
<@ToxicFrog>
But by declaring it "struct" you are implying that you aren't going to be using it as a class, just as a record.
03:45
< Tarinaky>
I didn't realise this'd be contentious.
03:45 * Tarinaky just declares the operator outside the struct >.>
03:46
<@ToxicFrog>
It's like declaring 'var nrof_columns: String'; it's semantically correct, but misleading.
03:46
< celticminstrel>
Huh?
03:46
< celticminstrel>
What's that example?
03:47
<@ToxicFrog>
I guess the C++ would be 'std::string nrof_columns;'
03:47
< celticminstrel>
I still don't get it.
03:47
< Tarinaky>
All I wanted was to add position operator(position& l,position& r) {return position(l.y+r.y,l.x+r.x);} :/
03:47
< celticminstrel>
You're declaring a string; so what?
03:47
<@ToxicFrog>
celticminstrel: a string named number-of-columns.
03:47
< celticminstrel>
Anyway, if you want a class in which everything is public, I see no reason not to use 'struct'.
03:48
<@ToxicFrog>
Tarinaky: so make a class!
03:48
< celticminstrel>
Ah.
03:48
< Tarinaky>
ToxicFrog: I opted to just using an external function.
03:48
< Tarinaky>
Just to avoid the argument.
03:48
<@ToxicFrog>
;.;
03:48
< Tarinaky>
-.-
03:48
<@ToxicFrog>
Why?
03:48
< celticminstrel>
Sorry, I did not get that nr was short for number?
03:48
<@ToxicFrog>
Why are you so hell-bent on not writing "class"?
03:48
< celticminstrel>
Which operator is being overloaded?
03:49
< Tarinaky>
Because it's really just a reimplementation of a pair except I wanted x and y rather than first/second...
03:49
< Tarinaky>
Because I have trouble keeping everything straight -.-
03:49
< Tarinaky>
pair<int,int>
03:49
< celticminstrel>
Which operator?
03:49
< Tarinaky>
+
03:49
< celticminstrel>
Then an external function is actually better.
03:51
< celticminstrel>
Personally, I generally use struct for simple types such as points.
03:51
< Tarinaky>
points?
03:51
< celticminstrel>
Yeah, as in xy coordinates.
03:51
< Tarinaky>
Ahh.
03:51
< celticminstrel>
And then I add a bunch of constructors and a few overloaded operators as appropriate.
03:52
<@ToxicFrog>
Tarinaky: so it's a reimplementation of Pair - why does that stop it from being a class?
03:52
< celticminstrel>
Generally + should be implemented in terms of += or vice versa.
03:52
< Tarinaky>
pair isn't a class.
04:00
< Derakon>
You shouldn't be afraid of using classes, is TF's point.
04:00
< Derakon>
Pretty much anything that isn't a primitive or a pointer to a primitive can and probably should be a class.
04:01
<@ToxicFrog>
Well, that's half of my point; the other half is "if you are using classes, don't try to hide the fact that that's what you're doing"
04:12 * Tarinaky blinks at the compiler error.
04:12
< celticminstrel>
Is it an odd one?
04:13
< Tarinaky>
Not terribly.
04:13
< celticminstrel>
Well, that's good then.
04:13
< Tarinaky>
But it doesn't make sense alongside the code.
04:13
< celticminstrel>
Oh. Not so good.
04:14
< Tarinaky>
position.hpp:9: error: expected identifier before numeric constant
04:15
< Tarinaky>
Line 9 in class position: static const position UP(1,0);
04:15
< Tarinaky>
Oh wait.
04:15
< Tarinaky>
No... nm.
04:16
< celticminstrel>
Line 9 is inside the class?
04:16
< Tarinaky>
Yes.
04:16
< Tarinaky>
iirc static consts are an exception to the whole - initialise in the constructor thing.
04:16
< celticminstrel>
I don't think that's allowed. Try removing the initializer and adding 'static const position position::UP(1,0);' outside the class.
04:17
< celticminstrel>
My impression was that it was only integral static variables that can be initialized in the class.
04:17
< celticminstrel>
(You wouldn't want to initialize static variables of any kind in the constructor.)
04:19
< Tarinaky>
Okay. So I changed line 9 to "static const position UP,DOWN,LEFT,RIGHT;" and then defined them outside. THe compiler seemed happy with that.
04:20
< Tarinaky>
key.hpp:9: error: expected identifier before numeric constant >.<
04:21
< Tarinaky>
Line 9, in enum key: KEY_UP,
04:21
< celticminstrel>
Maybe missing a preceding comma?
04:22
< Tarinaky>
Checked that.
04:22
< Tarinaky>
KEY_QUIT,
04:22
< Tarinaky>
KEY_UP,
04:22
< celticminstrel>
And the following line?
04:22
< Tarinaky>
KEY_UPRIGHT,
04:22
< celticminstrel>
...
04:22
< celticminstrel>
Where is this numeric constant? O_O
04:23
< Tarinaky>
Yah.
04:23
<@ToxicFrog>
Aren't you missing a { there?
04:23
< Tarinaky>
As far as I am aware ncurses is safely wrapped in a namespace so it shouldn't be giving me any trouble.
04:24
<@ToxicFrog>
No, I mean, 'enum key: KEY_UP' is not legal
04:24
<@ToxicFrog>
enum key { KEY_UP, KEY_DOWN, ...etc... }
04:24
< Tarinaky>
Yes. The brackets are there.
04:25
< Tarinaky>
enum key {KEY_NONE=0,KEY_QUIT,KEY_UP,KEY_UPRIGHT,KEY_RIGHT,KEY_DOWNRIGHT,KEY_DOWN,KEY_DOW NLEFT,KEY_LEFT,KEY_UPLEFT};
04:25
<@ToxicFrog>
(also: are you sure ncurses is using an enum and not #define? Also also, if ncurses already defines these, what are your definitions for?)
04:26
< celticminstrel>
Since when is ncurses namespaced?
04:26
< Tarinaky>
celticminstrel: namespace ncurses { #include ncurses };
04:27
< celticminstrel>
Isn't that dangerous?
04:27
<@ToxicFrog>
Yeah, that won't help with #defines even if it works at all
04:27
< Tarinaky>
ToxicFrog: I can't see anything in the include web that's including ncurses anyway :/
04:27
< Tarinaky>
Hmm.
04:28
< Tarinaky>
Also: the reason is the ncurses ones are for the particular keys on the keyboard... This is more for... keyboard events...
04:29
< Tarinaky>
>.<
04:30
< celticminstrel>
Oh!
04:30
< Tarinaky>
Also: it seems it -was- a define somewhere grabbing KEY_UP :/
04:30
< celticminstrel>
I bet one or more of those identifiers is defined to be ... oh, you've got it.
04:30
< Tarinaky>
K_UP works fine.
04:31
<@ToxicFrog>
namespace KEY { enum keys { UP, DOWN, LEFT, RIGHT }; }; KEY::UP
04:31
< celticminstrel>
Yeah.
04:32
< celticminstrel>
I have done that before.
04:32
< Tarinaky>
Will using KEY::key be okay?
04:32
< celticminstrel>
Huh?
04:32
<@ToxicFrog>
If you're asking what I think you are, yes
04:32
<@ToxicFrog>
namespace KEY { enum Key { ... }}
04:32
< Tarinaky>
So the typename isn't KEY::key
04:32
<@ToxicFrog>
KEY::Key is the type
04:33
< Tarinaky>
But I can import the type without importing the enum values?
04:33
<@ToxicFrog>
What do you mean?
04:34
< celticminstrel>
using KEY::keys;
04:34
<@ToxicFrog>
I wasn't aware using worked on things that aren't namespaces.
04:34
< celticminstrel>
Um, yes it does, but only if you leave off the namespace keyword.
04:34
< Tarinaky>
... Why do you think you have to explicitly state namespace?
04:35
< celticminstrel>
Huh?
04:35
< celticminstrel>
Sometimes I wish 'using class XXX' would work.
04:35
< celticminstrel>
If nothing else, to make definitions in the class easier.
04:36
< Tarinaky>
celticminstrel: using bar::foo<X> ?
04:36
< celticminstrel>
Huh?
04:36
< Tarinaky>
:/
04:36
<@ToxicFrog>
Tarinaky: rather than "int foo::bar(...) {...}", "using class foo; int bar(...) {...}"
04:36
< celticminstrel>
Yes.
04:36
< Tarinaky>
Ahhhh.
04:37
< celticminstrel>
I think 'using bar::foo<X>' would explicitly instantiate the template foo::bar with type X and import it into the local namespace as foo<X>, or something. Assuming it works at all.
04:38
<@ToxicFrog>
Conversations like this remind me of why I hate C++ >.<
04:38 * Tarinaky blinks.
04:38
< celticminstrel>
A few things get confusing when you need to add the qualification of the including class, especially when working with templates.
04:38
< Tarinaky>
Oh!
04:38
< celticminstrel>
Oh?
04:40
< Tarinaky>
I thought was getting an odd compiler message.
04:40
< celticminstrel>
Uh-huh.
04:40
< Tarinaky>
I realised that instead I was just an idiot.
04:40
< celticminstrel>
Oh really?
04:41
< Tarinaky>
I was trying to pass a const into a function whose arguments were non-const.
04:41
< celticminstrel>
Ah.
04:45
< Tarinaky>
In hindsight having gone to all that effort the thought occurs I should probably be using functors instead of an enum :/
04:46
< Tarinaky>
Actually... no..
04:46
< Tarinaky>
Nm.
04:46 * Tarinaky shifty-eyes.
05:04 * Serah puts Tarinaky into a barrel and rolls it down a hill.
05:04
< Tarinaky>
Whee!
05:05 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!]
05:11
< Tarinaky>
Well. Now I've got input working.
05:12
< Tarinaky>
Aside from the fact that, for some reason, it wants two keypressed.
05:12
< Tarinaky>
o.o
05:18
< Tarinaky>
Ahah! Found it ^^
05:30 * ToxicFrog gets to the section on structural typing, has a typesystemgasm
05:43
< Derakon>
Reading up on language specifications in your spare time?
05:45 * Derakon puts Roskau on the channel's sound system~
05:45
< Derakon>
Er, mischan.
05:46 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
05:54
<@ToxicFrog>
Derakon: of course. Scala, in this case.
05:57
<@ToxicFrog>
I'm also reading the O'Reilly book and Scala by Example, but for precision and density you can't beat the spec.
05:57
<@ToxicFrog>
I think I'll have to revisit existential types later, though :/
06:01
<@ToxicFrog>
But yes, structural typing appears to be static duck typing
06:06 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
06:08 Serah [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
06:31
< Alek>
what was that robot-testing game again?
06:33
<@Vornicus>
manufactoria: http://www.kongregate.com/games/PleasingFungus/manufactoria
06:46
< Alek>
hrm.
06:47
< Alek>
my solution to Robobugs shouldn't have worked.
06:47
< Alek>
but it's the only one I CAN make. -_-
06:47
< Alek>
well. lemme see...
06:49
< Alek>
nope, anything better needs crosspaths.
06:49
<@Vornicus>
YOu can cross paths, but... my Robobugs solution has no crosspaths.
06:51
<@Vornicus>
(click once for the first, change direction, shift-click.)
06:51
< Alek>
huh. didn't know you could.
06:51
< Alek>
and can I see yours, Vorn?
06:54
<@Vornicus>
?lvl=5&code=p11:6f3;p12:6f3;c11:7f2;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c11:5f3;p12 :4f3;c12:5f3;c13:4f3;c13:5f0;c11:4f3;
06:57
< Alek>
hrm.
06:58
< Alek>
I dunno, maybe I'm doing it wrong, but it seems to be pasting wrong.
06:58 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
07:00
<@Vornicus>
What are you getting?
07:03
< Alek>
oh well, made a perfect one with 2 crosses.
07:04
< Alek>
getting the first half-dozen piececodes then a bunch of zeroes, when it's pasted in. when I open it, it's just a big grey square where the testing room should be.
07:05
<@Vornicus>
very strange
07:06 * jerith waits for Manufactoria to load enough that he can see his solution.
07:07
< jerith>
I've been optimising the hell out of the earlier levels.
07:08
< jerith>
Oh, this is a particularly neat solution.
07:08
< jerith>
?lvl=5&code=p12:4f7;p13:5f0;p11:5f2;p11:4f2;p13:4f0;c12:5f3;c12:6f3;c12:7f3;c12: 8f3;c12:9f3;c12:10f3;
07:10
<@Vornicus>
Oooh, that is a good one.
07:10
< jerith>
A lot of tinkering went into it.
07:13 cpux- [Moo@Nightstar-20a84089.dyn.optonline.net] has joined #code
07:14
< Derakon>
Does "accept if there are three or more blues" mean "accept if three blues occur at any point in the tape"?
07:14
< Derakon>
Because the rejection criterion for that would seem to require knowing how long the tape is.
07:14
< jerith>
Derakon: You don't need to know the length of the tape.
07:16
<@Vornicus>
And not three or more blues in a row, either - they can be anywhere, so long as there are at least three of them. And you can consume the whole tape if you want.
07:16
< Derakon>
Oh, wait, when the tape ends, it doesn't loop. Okay.
07:16
< Derakon>
Yeah, that should be straightforward then.
07:16 cpux [Moo@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
07:17 cpux- is now known as cpux
07:17
<@Vornicus>
Right. You do end up very often building a thing that rewrites the tape though - usually by setting a marker at the end and watching for it.
07:18
< jerith>
If Robolamps were one row bigger, I'd have a very neat solution.
07:20
<@Vornicus>
I have two solutions: one 8/0:32, the other 10/0:30.
07:23 * Derakon eyes the nonfunctional "sound" button.
07:24
< Derakon>
And Flash's built-in context menu has no "mute" option, which seems like a blatant failure there.
07:24
< jerith>
I have a 9/0:30 solution.
07:25
< jerith>
I also have a 5/0:28 solution that works for all the given test data, but is not general.
07:25
< Derakon>
What do those numbers indicate?
07:25
< jerith>
parts/time
07:26
< Derakon>
...my clever solution for the remote-control cars is foiled by the fact that you can read from the tape that you have written. Oops.
07:27
< jerith>
RC cars is pretty simple.
07:27
< jerith>
You read the first symbol and then write it.
07:27
<@Vornicus>
7/0:20 on RC cars, guaranteed optimal.
07:28
< jerith>
Really?
07:28
< jerith>
7/0:08 for RC cars here.
07:28
< jerith>
What's yours?
07:29
< jerith>
?lvl=8&code=p12:6f3;c12:7f3;c12:8f3;r13:6f3;b11:6f3;c11:7f2;c13:7f0;
07:29
<@Vornicus>
Oh, sorry
07:29
<@Vornicus>
I thought you meant Robocars
07:30
< jerith>
Yeah, 7/0:20 is optimal for robocars. :-)
07:30
<@Vornicus>
7/0:08 is indeed RC cars
07:31
<@Vornicus>
Indeed my RC cars solution is identical to yours, except that it's shifted down one.
07:33
< jerith>
I usually start as close to the top as possible, because it speeds up initial rejections.
07:38
< Derakon>
What I need is a way to write nothing to the tape. ¬.¬
07:38
< Derakon>
I'm clearly missing something basic here, especially given how little room there is on the board.
07:39
< Derakon>
Hm. Clearly, the last action, right next to the output pipe, will be writing the final color.
07:40
< Derakon>
Preceding that, I need something that will write the input...but it can't loop infinitely.
07:41
<@Vornicus>
You don't need to loop for this.
07:42
< Derakon>
But inputs could be of arbitrary length.
07:42
<@Vornicus>
so?
07:42
< Derakon>
...durrr.
07:42
< Derakon>
For some reason I thought I had to consume the entire tape.
07:43
< Alek>
... you don't have to finish out the tape... just wait for 3 blues in a row to come by. XD
07:45
< Derakon>
...Robocars was...straightforward.
07:45
< Derakon>
They sure gave you plenty of space for it!
07:45
<@Vornicus>
Not in a row.
07:45
<@Vornicus>
Just three blues.
07:47
<@Vornicus>
brbrb is an Accept.
07:47
< Alek>
... ooh. multiloop. XD
07:48
< Alek>
yeah. first one loops red back on itself, passes blue to the next. ditto the second, the third loops red back, but exits the blue.
07:48 * Alek nods.
07:52 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
07:55
<@Vornicus>
and all three reject blank.
07:56
< Derakon>
Rgh...robocats would be much easier if I didn't have to deal with length-1 tapes.
07:59
<@Vornicus>
This is the first one I used a bridge on.
07:59
< Derakon>
Yes, I'd just come to that conclusion myself.
08:01
< jerith>
I didn't know about bridges and I didn't think about entering branches on not-the-input until I got to Seraphim.
08:01
< jerith>
But then I went back and redid all the earlier ones.
08:03
< jerith>
11/0:24 for Robocats, becaus I just realised that the place I need the bridge is stupid.
08:03
< Derakon>
Agh, midnight. No more of this.
08:03 * Alek AUGHS at robobears.
08:03
< Derakon>
Also, my current nonworking solution for Robocats has 49 parts. >.>
08:04
< jerith>
Robobears also has a small, neat solution that took me ages to get to.
08:04
< Derakon>
Oh, wait, I was on robobears.
08:04
< Derakon>
Not robocats.
08:04
< Derakon>
I did robocats without a bridge, though it'd probably be more compact with.
08:05
< jerith>
15/0:39 for robobears.
08:06
< Derakon>
G'night!
08:06 Derakon is now known as Derakon[AFK]
08:07
< jerith>
G'night Der.
08:07 * jerith never actually got around to finishing Ophanim.
08:12
< jerith>
... And now I've just had an idea for it that I won't be able to try before I have to leave.
08:24 AnnoDomini [annodomini@Nightstar-b816c0c4.adsl.tpnet.pl] has joined #code
08:24 mode/#code [+o AnnoDomini] by 459AAEB09
08:24 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
08:34
<@Vornicus>
Ophanim I don't think i actually got right, but it seems to work.
08:46
<@Vornicus>
Metatron is crazy but at least I didn't actually run out of room.
08:51 Vornicus is now known as Vornicus-Latens
09:00 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
09:09 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
09:23
<@Kazriko>
jerith, Same here, though 15/0:40...
10:31 You're now known as TheWatcher
11:57 Attilla [Attilla@Nightstar-26720ca0.threembb.co.uk] has joined #code
11:57 mode/#code [+o Attilla] by 459AAEB09
13:10 RichardB_ [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
13:25 Reiv[Graduate] [orthianz@Nightstar-3a40d78c.xnet.co.nz] has quit [[NS] Quit: ]
13:29 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Client closed the connection]
13:33 Reiv[Graduate] [orthianz@Nightstar-3a40d78c.xnet.co.nz] has joined #code
14:18 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
14:30 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
16:04 Vornicus-Latens is now known as Vornicus
17:13 Derakon[AFK] is now known as Derakon
17:22 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
18:07 AbuDhabi [annodomini@Nightstar-d2b078cc.adsl.tpnet.pl] has joined #code
18:09 AnnoDomini [annodomini@Nightstar-b816c0c4.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
18:15 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
18:31
< gnolam>
"A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable."
18:37
< celticminstrel>
XD
18:43 * Vornicus 's robobears is 19/0:40. Doesn't see anyting he can improve.
18:44
< jerith>
Vornicus: ?lvl=7&code=c12:9f3;c12:10f3;c12:8f3;c12:7f3;p12:4f3;c12:5f3;c12:6f3;c11:3f3;p11 :4f6;p11:5f0;c11:6f1;c13:3f3;p13:4f4;p13:5f2;c13:6f1;
18:45
<@Vornicus>
...duh
18:45
< jerith>
What was your pessimized bit?
18:47
< Reiv[Graduate]>
Hey, Vorn
18:47
<@Vornicus>
My second-stage readers go left-right, so I need to feed them.
18:47
<@Vornicus>
Hey, Reiv
18:47
< Reiv[Graduate]>
I remember once suggesting that a Useful Project would be to be able to take an ASCII-art game map and generate it into a useful picture. You then mentioned "Uh, already did that once"
18:48
< Reiv[Graduate]>
I am wondering what the heck you meant by that. :)
18:48
<@Vornicus>
Actually I've now done it twice - once to PNG and once to pygame surface
18:49
<@Vornicus>
let me find it
18:49
< Reiv[Graduate]>
wutlol
18:50 * jerith did something like that for mouse cursors for something or other.
18:50
< jerith>
Didn't we discuss this and suggest a tile-based solution?
18:51
<@Vornicus>
Though technically it wasn't "ascii-art" but just a stream of characters that don't necessarily look like what they are.
18:51
< Reiv[Graduate]>
Well, it's a start at least
18:51
< Reiv[Graduate]>
Though the idea was that for eg gaming, being able to modify a file visually is an advantage.
18:51
<@Vornicus>
But all that changes is you pick your arts based on the character (and possibly the position)
18:52
< jerith>
It gets a bit trickier when you want to do things like render "+" as a corner differently depending on what's next to it.
18:53
< Reiv[Graduate]>
That would be cool, but I hadn't even thought of that yet.
18:53
< Reiv[Graduate]>
Though it's actually clever, hm.
18:53
< Reiv[Graduate]>
So you can do walls.
18:53
<@Vornicus>
Right. What I did for KB and N was I drew the arts and then named them (for instance) 41 - Castle NE Corner
18:53
<@Vornicus>
.png
18:53
< jerith>
If you want to draw somthing like this:
18:53
< jerith>
+-+-+
18:54
< jerith>
| | |
18:54
< jerith>
+-+-+
18:54
< jerith>
| |
18:54
< jerith>
+-+
18:54
< jerith>
And render it in walls and corners, a tile-based thing may not be quite to trivial.
18:55
<@Vornicus>
And then Pygame or PIL would load them all and key them by the number at the start - which is in hexadecimal - and then when it saw "A" in the original stream it would go "Okay, draw the thing from 0x41 in the appropriate position"
18:55
< Derakon>
If you want to take a map of cell occupancies/vacancies and turn it into a map of faced walls, Jetblade has a solution.
18:56
< Derakon>
It basically amounts to examining the adjacent tiles and determining how the surface of the terrain works at a local level.
18:56
<@Vornicus>
But your general task here is to take your stream and break it into a 2d (or, if you're /really/ feeling crazy, 3d) array.
18:57
<@Vornicus>
oh what the hell's the name of it
18:58
<@Vornicus>
There's a thing that... uh. How the hell do I put it
18:59
< Derakon>
You aren't thinking of Marching Cubes, are you?
18:59
<@Vornicus>
That's it
18:59
<@Vornicus>
You should start a 900 number, Der
19:00
<@Vornicus>
http://en.wikipedia.org/wiki/Marching_squares
19:00
< Derakon>
I use that for walking along the topography (well, I use Marching Squares), but for determining tile type I actually have a neat little system that works on dict lookups.
19:00
< Derakon>
Heh.
19:00
< Derakon>
Check out adjacencyKernelToBlockTypeMap in https://jetblade.googlecode.com/hg/map.py
19:02
< Derakon>
This module has the code that parses that structure: https://jetblade.googlecode.com/hg/util.py
19:06
< Derakon>
(Aside from the procedural mapgen code, this is one of the few novel things in Jetblade)
19:47 Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code
20:15
<@Kazriko>
Huh. Atom processors are 32 bit... :(
20:16
<@Kazriko>
:(
20:17 * Kazriko hopes some company releases a Bulldozer mini tablet/netbook with removable keyboard at some point in the future.
20:21
<@Kazriko>
er, rather the fusion chip. What were they calling that...
20:59 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
21:02 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Client closed the connection]
21:13 Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds]
21:20 Serah [Z@5E691D.FC7C16.9F8D82.29F91E] has joined #code
21:24 JoseB [JoseB@Nightstar-3e3f8a5a.cable.casema.nl] has joined #code
21:25
< JoseB>
Hallo :)
21:25
< celticminstrel>
Oh, hello.
21:26
< Derakon>
G'day.
21:27
< JoseB>
I mentioned "Manufactoria" to Derakon, he told me that several people here have been wrestling with it.
21:28
< celticminstrel>
I was a couple of days ago.
21:31
< JoseB>
*nods*
21:32
< celticminstrel>
Then I got distracted. Currently I'm trying to study for a midterm.
21:34
< JoseB>
Priorities and all that, of course.
21:34
< JoseB>
I am stuck right now at the "police" robots (add a yellow mark in the center of a string, apparently of even length)
21:35
< celticminstrel>
Sounds like you've gotten approximately as far as I did.
21:36
<@ToxicFrog>
That's a fun one
21:36 Serah [Z@5E691D.FC7C16.9F8D82.29F91E] has quit [Ping timeout: 121 seconds]
21:37
<@Vornicus>
I needed three marker symbols for Police. I used G, Y, and GG
21:39
<@ToxicFrog>
I used Y, Y, and G
21:40
< JoseB>
I have been stuck trying to imagine how to do that without having a counter or, basically, a memory.
21:41 * Derakon mutters at robobears.
21:41
<@ToxicFrog>
You don't actually need to know how long the string si
21:42
< Derakon>
I can recognize strings that start and end with the same color...but only so long as I'm guaranteed not to have a length-1 string.
21:42
< Derakon>
Unfortunately, that is of course one of the tests.
21:43
< Namegduf>
Why, you weren't planning on cheating, were you? :P
21:43
< Derakon>
No, no.
21:43
< Derakon>
There's some principle here that's eluding me, is all.
21:43
< celticminstrel>
You could have a special case for length 1, couldn't you? <_<
21:43
< Namegduf>
Haha.
21:44
< Derakon>
Celticminstrel: then you can't handle length-2 strings.
21:44
< Derakon>
If I had a "peek" branch that didn't consume tape, maybe.
21:45
<@Vornicus>
You want to feed directly into the brancher that will, when the string is complete, accept.
21:45
< celticminstrel>
I see. I might be able to imagine that working anyway, with the right belts, but I'd have to try it to be sure.
21:45
<@Vornicus>
Er, after the first item.
21:45
< celticminstrel>
I think what I did was use the first item on the tape to branch off into one of two nearly-identical paths that pull everything off.
21:45
< Derakon>
Celtic: yeah, you have to do th at.
21:48
< Derakon>
The problem is separating "end with red => reject" and "only one color => accept".
21:49
< Derakon>
Since you have to have an accept path that occurs on empty string.
21:50
<@ToxicFrog>
Write end marker, first switch of each branch is "if eof accept"?
21:50
< Derakon>
No writing.
21:50
< celticminstrel>
I'm not sure if my solution covered that, or not...
21:51
<@Vornicus>
Which means that you don't need a marker at all.
21:52
<@Vornicus>
Der: I really am not seeing what the problem is. Could you show me your result?
21:52
<@Vornicus>
YOur machine, that is?
21:52
< Derakon>
I've destroyed it several times now.
21:52
< Derakon>
Let me try this attempt...
21:53
< celticminstrel>
Oh, I think I added a green/yellow marker to determine the end of the string...
21:53
< Derakon>
You could not have. Robobears does not have the ability to write to the tape.
21:53
<@Vornicus>
THere's no writer, and the end of the string just shows up.
21:54
<@Vornicus>
YOu don't need to write to detect the end of the string though.
21:54
< celticminstrel>
Okay, maybe I'm thinking of a different yet similar one then.
21:54
<@ToxicFrog>
Ok, mine had the 'if eof accept' idea without the end marker
21:55
<@ToxicFrog>
The blue path, for example, has two states (OK and BAD), starts in OK, and transitions like this:
21:55
<@ToxicFrog>
OK/blue -> OK
21:55
<@ToxicFrog>
OK/red -> BAD
21:55
<@ToxicFrog>
OK/eof -> ACCEPT
21:55
<@ToxicFrog>
BAD/blue -> OK
21:55
<@ToxicFrog>
BAD/red -> BAD
21:56
< celticminstrel>
Mine had five branchers.
21:56
<@ToxicFrog>
BAD/eof -> REJECT
21:56
<@ToxicFrog>
Same here.
21:56
< Derakon>
Okay, got it.
21:56
< celticminstrel>
And accepts single-length strings.
21:56
<@ToxicFrog>
25 parts (5 switches, 20 belts), 0'45"
21:56
< Derakon>
...goddamn, you have to join to share levels, and if you don't want to join, the only way to get out of the dialog is to reload the page.
21:56
< celticminstrel>
Basically, I did the idea which I had used several times before of having branchers which know the colour of their input.
21:57
< celticminstrel>
By which I mean they know the colour that was last pulled off before the robot enters the brancher.
21:57
< Derakon>
Celticminstrel: yes, that's a basic concept of the game.
21:57
< Derakon>
But you need more than just that for robobears.
21:57
< Derakon>
?lvl=7&code=c9:7f3;c12:4f3;p12:5f3;c8:6f2;c9:5f3;p9:6f3;c10:5f0;p10:6f3;i11:5f2; c11:6f1;p11:4f0;c11:3f0;c10:3f0;c9:4f3;i13:5f3;c14:5f2;c15:5f3;c15:4f3;c14:3f2;c 13:3f2;c16:6f0;c14:8f0;c13:8f0;c12:8f3;c12:9f3;c12:10f3;c11:8f2;c10:8f2;c9:8f2;p 15:6f3;p14:6f3;p13:4f2;c9:3f3;c15:3f3;c15:7f3;c15:8f0;c13:6f1;
21:58
< celticminstrel>
You need to do it twice, so that each path knows the colour of the first symbol on the tape.
21:58
< Derakon>
37 parts. Probably very inefficient.
21:58
< Derakon>
But it works.
21:59
< celticminstrel>
Mine had even more -- 57 parts. :O
21:59
<@ToxicFrog>
?lvl=7&code=p12:4f3;c11:4f0;c8:5f2;c11:5f0;c13:4f2;c16:5f0;c13:5f2;c14:7f0;c13:7 f0;c10:7f2;c11:7f2;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c12:5f3;c12:6f3;p14:5f7;p15: 5f7;p10:5f7;p9:5f7;c10:6f3;c14:6f3;c14:4f3;c10:4f3;
21:59
< Derakon>
...there's only 79 open spaces.
21:59
<@Vornicus>
Best I've seen is jerith's at 15 parts.
21:59
<@Vornicus>
I'm reasonably certain that's the absolute minimum too.
21:59
< celticminstrel>
I'm not really interested in reducing part counts at this time. Maybe once I've solved all of the problems.
22:00 * Derakon eyes TF's solution. "Why didn't I think of that?"
22:00
< Derakon>
I had setups that consumed red, but they always did so by feeding back into the "empty => accept" switcher.
22:00
< celticminstrel>
And ToxicFrog did...?
22:01
< Derakon>
He just pasted it.
22:01
< celticminstrel>
...pasted?
22:01
< celticminstrel>
Oh, right.
22:01
< Derakon>
Click the disk icon in-game.
22:01
< celticminstrel>
Do I need to join?
22:01
< Derakon>
No.
22:01
< celticminstrel>
Will I lose my own solution?
22:01
<@Vornicus>
?lvl=7&code=c12:9f3;c12:10f3;c12:8f3;c12:7f3;p12:4f3;c12:5f3;c12:6f3;c11:3f3;p11 :4f6;p11:5f0;c11:6f1;c13:3f3;p13:4f4;p13:5f2;c13:6f1; Jeriths
22:01
< Derakon>
Only if you don't click the toggle on the save/load page.
22:02
<@ToxicFrog>
I just trimmed mine down to ?lvl=7&code=p12:4f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c9:6f2;p10:6f7;p11:6f7;i12: 6f6;i12:5f7;p13:5f7;p14:5f7;c15:5f0;c13:4f3;c11:4f3;c11:5f3;c13:6f3;c13:7f0;c11: 7f2;
22:02
<@ToxicFrog>
Damn that's nice!
22:02
<@ToxicFrog>
I keep forgetting you can mirror switches
22:03
< Derakon>
...that would be handy, yes.
22:05
< celticminstrel>
Okay, I don't think Derakon's solution would accept empty strings.
22:06
< celticminstrel>
Also... branches don't need to be entered from behind? :O
22:06
< Derakon>
Nope.
22:08
< McMartin>
I suppose I should start looking at this.
22:08
< celticminstrel>
...whoa, Jerith's is amazingly tiny.
22:10
< gnolam>
*snerk*
22:10
< Derakon>
The word you want is "elegant", Celtic~
22:10
< celticminstrel>
That works too.
22:14
< gnolam>
Less of a "That's what she said" vibe.
22:14
< celticminstrel>
...
22:16
<@ToxicFrog>
Robo-Babies: 27/1:24
22:16
< gnolam>
Oh come on. I switch into the channel to see what's going on, and the first piece of backscroll I set eyes on is
22:16
< gnolam>
<celticminstrel> Also... branches don't need to be entered from behind? :O
22:16
< gnolam>
<Derakon> Nope.
22:16
< gnolam>
<McMartin> I suppose I should start looking at this.
22:16
< gnolam>
<celticminstrel> ...whoa, Jerith's is amazingly tiny.
22:17
<@ToxicFrog>
...and another 12 minutes for the randomly generated tests ;.;
22:17 Serah [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
22:19
<@Vornicus>
Robo-babies? Do you mean Robo-Children?
22:20 * McMartin eyes Lava Lamps, apparently misunderstands how branches work.
22:21
< JoseB>
(maledictionem, I am away for a few minutes, and look at this... :P)
22:21
<@Vornicus>
33/1:08, and another 12 minutes for the random tests.
22:24
< JoseB>
My robobears solution had 34 elements, and essentially was in the form of two separate "loops".
22:25
< Namegduf>
Blargh
22:25
< JoseB>
The "blue" loop checked whether the last element left you on "blue". If so, accept. Otherwise, reject.
22:25
< Namegduf>
AJAX refusing to work across subdomains makes DNS RRs to HTTP very annoying.
22:25
<@ToxicFrog>
Robot-Teachers: 25/1:09. Only 6 of those parts are belts.
22:25
< JoseB>
Viceversa for the "red" loop.
22:25
< JoseB>
It accepts empty strings as OK, as well as strings composed of a single character.
22:25
<@ToxicFrog>
JoseB: same here. That algorithm can be made a lot more compact, though :)
22:26
< JoseB>
(Did I say 34 elements? I meant 33 :P)
22:26
< McMartin>
Hm. Why can I not copy my solutions; the clipboard remains empty.
22:26
<@ToxicFrog>
Teachers:?lvl=21&code=b11:3f2;p12:3f3;r13:3f2;r14:2f3;p14:3f2;b14:4f3;p14:5f7;b1 5:5f0;g12:2f3;c12:10f3;c12:11f3;c12:12f3;b10:7f2;p11:7f5;i12:7f6;p12:8f7;c12:9f3 ;p13:7f5;p13:8f2;b13:9f1;r14:7f0;q14:6f7;g12:6f3;q11:6f5;i13:6f2;
22:26 * Vornicus ...manages to figure out what TF's Robo-Children looked like.
22:26
<@Vornicus>
McM: that box needs focus
22:28
<@ToxicFrog>
Vornicus: ?lvl=18&code=c12:3f3;g12:4f3;p11:11f0;r11:12f1;p12:11f7;p13:11f2;b13:12f1;c12:5f 3;c11:10f1;c13:10f1;b11:8f2;p12:8f3;q12:9f6;g12:10f3;r13:8f0;c11:9f0;c10:9f1;c10 :8f1;c10:7f2;c11:7f2;c13:9f2;c14:9f1;c14:8f1;c14:7f0;c13:7f0;c12:6f3;c12:7f3; ?
22:28
< celticminstrel>
You need to click the box, then Cmd/Ctrl-C.
22:29
<@Vornicus>
Actually, no! Surprise!
22:29
<@Vornicus>
But I managed to get it to 27/1:23 in a completely different manner
22:32
<@ToxicFrog>
Hah
22:32
<@ToxicFrog>
I managed to get it down to 27/1:05 now
22:33
<@ToxicFrog>
(duplicating the rewinders lets me bypass it on the first pass and cut out some belts)
22:33
<@Vornicus>
I bet there's a vast time improvement you can make if you duplicate the redblue or bluered check.
22:35
<@ToxicFrog>
I don't follow
22:36
<@ToxicFrog>
...hmm. I think I see how to do Judiciary.
22:36
<@ToxicFrog>
I wish you could copy-paste between solutions, this will re-use most of Police :/
22:37
< celticminstrel>
Um, why can't you?
22:38
<@Vornicus>
If you make the /first/ redblue or bluered check feed the second - so the first rejects if it fails but the second replaces its thing and feeds back in if it fails, you can find multiple bluereds or redblues in a single pass.
22:40
<@ToxicFrog>
I don't know what you mean by "redblue or bluered check". That's not how the algorithm works, although it might be faster if it did.
22:41
<@Vornicus>
In your solution, the bottom 5 cells.
22:42
<@ToxicFrog>
It's not checking for a red,blue or blue,red sequence. It's just eating the first red and the first blue in the string.
22:43
<@Vornicus>
I know. You're continuing to think I'm thinking wrong because my name for it isn't making sense to you.
22:45 * Derakon eyes Androids, tries to figure out how to enforce the same number of each color
22:45
< Derakon>
That would seem at first blush to require unlimited memory for possibly-unlimited string sizes, which is of course absurd.
22:46
< Derakon>
Can't just enforce an even tape size, either.
22:47
< McMartin>
Man, I'm still working out Bugs. =(
22:47
< McMartin>
I know what vaguely needs to be done but I can't make the topology work.
22:50 * McMartin fiddles with the others
22:50 * ToxicFrog gnaws on Judiciary. I know what t do, I just don't have enough room!
22:51
< celticminstrel>
Would bridges help?
22:51
<@ToxicFrog>
McMartin: don't forget that you can mirror switches, bridge conveyors, and enter any tile from any direction.
22:52
< McMartin>
"Bridge conveyors"?
22:52
< McMartin>
Being able to go "under" a conveyor would solve most of my trouble, I think, and also, branches don't seem to work that way?
22:53
< Derakon>
Hold shift while placing a conveyor.
22:53
< McMartin>
(That is, if I enter a branch from the side and the tape is empty, I keep going that direction, I don't go the "empty tape" direction)
22:53
< Derakon>
Branches consume the first element on the tape, and redirect the object based on that element.
22:53
< Derakon>
...you should go the empty-tape direction.
22:53
< McMartin>
Yeah, that didn't happen.
22:53
< Derakon>
Show us your level? Click the disk icon, and paste the text.
22:54
< McMartin>
Rebuilding the one that didn't work, one moment
22:54
< McMartin>
?lvl=3&code=c12:5f3;p12:6f3;c13:6f1;c13:5f0;p10:7f2;c11:6f0;c10:6f0;c9:6f3;c9:7f 2;c10:8f3;c10:9f3;c12:9f3;c10:10f2;c11:10f1;p11:9f1; is the roundabout one I found myself using, instead of...
22:55
< Derakon>
Remember you don't need to enter switches from the back.
22:55
< celticminstrel>
That's a lot like what I did for that one.
22:56
< Derakon>
Here's mine: ?lvl=5&code=p12:4f3;p11:4f0;p11:5f0;p13:4f2;p13:5f2;c10:5f3;c14:5f3;c12:7f3;c12: 8f3;c12:9f3;c12:10f3;c10:4f3;c14:4f3;c10:6f3;c10:7f2;c11:7f2;c14:6f3;c14:7f0;c13 :7f0;
22:56
< McMartin>
Derakon: This was exactly the issue I was running into
22:56
< McMartin>
I'm not now, which makes me wonder if I misread a tape
22:57
< McMartin>
?lvl=3&code=p12:6f3;p11:6f4;p11:8f3;c11:7f3;c10:8f3;c10:9f3;c10:10f2;c11:10f2;c1 3:6f0;c12:5f3;c11:5f3; is the optimized one.
23:00
< McMartin>
There we go.
23:01
<@ToxicFrog>
Ok. The hard part of Judiciary is done. Now I just need to port Police into the smaller space.
23:04
< celticminstrel>
Derakon, what was your score for that?
23:04
< Derakon>
For my solution to Bugs? 19/0:27.
23:05
< celticminstrel>
No, lamps.
23:05
< Derakon>
Oh. 11/0:33.
23:06
< Derakon>
Which I just simplified to 9/0:31.
23:07
< celticminstrel>
I just optimized mine to that.
23:07
< celticminstrel>
(I had a 5/0:28, but it failed on some edge cases that weren't tested.)
23:07 * McMartin ponders Androids, tries to remember how to do Stacks in a Turing machine.
23:08
< celticminstrel>
I have 9/0:33 actually, not 0:31.
23:08
< celticminstrel>
?lvl=3&code=c12:5f3;c12:7f2;p13:7f2;p12:6f4;c13:6f3;c13:9f0;c13:8f3;p12:9f4;c12: 8f3;
23:08
< celticminstrel>
That should work for anything, right?
23:09
< Derakon>
Looks like it, yeah.
23:10
< celticminstrel>
The other one I tried was ?lvl=3&code=p12:6f2;p12:7f2;p12:8f2;c12:5f3;c12:9f3; which fails for some cases it didn't test. So, it passed the test, but it's a good solution.
23:10
< celticminstrel>
^isn't a good solution.
23:14
< celticminstrel>
Maybe they should change their tests. (Though there seems to be a random element to the tests sometimes.)
23:18
< Derakon>
There's a set of fixed tests and some random tests.
23:18
< Derakon>
The random ones don't count against your time though.
23:19
< celticminstrel>
They don't? Interesting.
23:19
< celticminstrel>
If I tried running the bad one several times, would it eventually fail and remove it from my record as the "best" time?
23:20
< Derakon>
It failed on my first attempt. Don't know if it would affect your records though.
23:20
< celticminstrel>
Meh, I can try.
23:23
< celticminstrel>
Apparently it doesn't.
23:24
< McMartin>
Hm, OK, I think I know how to do Androids conceptually now.
23:24 * Derakon makes a hilariously inefficient Robotanks solution.
23:24
< Derakon>
43/0:41.
23:24
< celticminstrel>
Hehe.
23:25
< celticminstrel>
Can I see my best solution without re-running it?
23:25
<@Vornicus>
Robot Tanks is a pain.
23:25
<@Vornicus>
celmin: mouseover the icon in the layout thinger.
23:25
<@Vornicus>
in the, uh, level selection screen
23:26
<@Vornicus>
32/0:40 for me.
23:26
< celticminstrel>
Mine's even less efficient than Derakon's hilariously inefficient one.
23:26
< celticminstrel>
45/0:58
23:26
< Derakon>
I basically just look for a blue bit and then discard four bits.
23:26
<@Vornicus>
yeah, it's that discar that gets me.
23:28
<@ToxicFrog>
Robo-Judiciary: 128 parts, 5:57
23:28
<@Vornicus>
Each discard takes 8 tiles.
23:28
< Derakon>
Yeah.
23:28
<@Vornicus>
96/4:30
23:28
< Derakon>
And then I had some twisting to get all four to fit.
23:28
<@ToxicFrog>
Yeah, I could probably improve the routing a bit.
23:28
< McMartin>
Ha *ha*
23:28
<@ToxicFrog>
Or a lot, especially for stage 2 of part 1.
23:28 * McMartin solves Androids in possibly a minimal form.
23:28
< McMartin>
?lvl=17&code=p12:5f7;c12:6f3;i12:7f1;c12:8f3;c12:9f3;c12:10f3;g13:5f2;r13:6f2;b1 4:4f3;p14:5f6;p14:6f7;c12:4f3;q14:7f7;c13:7f0;c11:7f0;c10:7f1;c10:6f1;c10:5f1;c1 1:4f2;c10:4f2;
23:28
< Derakon>
I still haven't solved Androids. :(
23:29
< celticminstrel>
Isn't Androids the key for progressing further?
23:29
< Derakon>
Yep.
23:29
< Derakon>
I have it, robomecha, and rocket planes available to work on.
23:30
< McMartin>
My key insight for Androids is that don't actually want to solve it the way you'd really solve it.
23:30
< celticminstrel>
Huh?
23:31 * Vornicus improves Robotanks: 28/0:36
23:31 * McMartin sneers at Robo-Soldiers.
23:31
<@Vornicus>
Yeah, that one's a nap.
23:31
< McMartin>
celticminstrel: The problem is not actually "write a general CFG reducer"
23:31
< celticminstrel>
As easy as the very first one.
23:31
< celticminstrel>
CFG?
23:31
<@ToxicFrog>
Context Free Grammar.
23:32
< McMartin>
Androids is a trap for CS majors. =P
23:32
<@ToxicFrog>
McMartin: very nice. Mine checks order first, then count, and is thus much larger.
23:33
< celticminstrel>
Mine does essentially the same thing as McMartin's but in more tiles.
23:33
< celticminstrel>
?lvl=17&code=g12:4f3;c12:5f3;p12:6f3;c11:6f0;p10:6f0;b10:5f2;c11:5f3;c10:7f3;p10 :8f3;r11:8f1;c11:7f0;q10:9f3;g11:9f2;c12:7f3;c12:8f3;i12:9f5;c12:10f3;c13:9f1;c1 3:8f1;c13:7f1;c13:6f1;c13:5f0;
23:33
<@Vornicus>
Not minimal
23:33
<@Vornicus>
(McM's)
23:35
<@Vornicus>
You can reduce the tile count by 2.
23:36
<@Vornicus>
Which also improves the time by 2 seconds.
23:36
<@ToxicFrog>
One; you need a bridge so that input R$ still gets rejected.
23:37
<@Vornicus>
Right, but a tile with a bridge still only counts as 1.
23:37
< celticminstrel>
...wait. I think I might see an error in my solution?
23:37
<@ToxicFrog>
Pretty sure it counts as 2
23:37
<@ToxicFrog>
...huh
23:37
<@ToxicFrog>
No it doesn't
23:37
<@ToxicFrog>
Cool
23:38
< celticminstrel>
I seem to be missing said bridge in mine.
23:38 * Derakon arghs as he solves robomecha only for inputs of even size.
23:39
< Derakon>
I hate parity issues. >.<
23:39 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Z?]
23:39
<@Vornicus>
That's a surprising issue for that one.
23:41
< Derakon>
The problem basically is that it's possible to skip the "Okay, write the bit you just read" logic by being off by one.
23:46
< McMartin>
This'll take a while
23:46
<@Vornicus>
It is?
23:47
<@Vornicus>
I don't... actually see how parity comes into it at all.
23:47
< celticminstrel>
McMartin: Which one/
23:47
< celticminstrel>
?
23:47
< Derakon>
Vorn: http://paste.ubuntu.com/445785/
23:48
< McMartin>
Robochildren.
23:49
<@Vornicus>
Yeah, that's... way bigger than mine.
23:49
< Derakon>
Heh.
23:49
< celticminstrel>
It's a bit smaller than mine, but mine works on odd output.
23:49
< celticminstrel>
Um, input.
23:49
< Derakon>
I'm not really in the right frame of mind to be working on these ATM, I think.
23:49
<@Vornicus>
?lvl=28&code=g12:3f3;p12:5f7;c12:4f3;q11:5f1;q13:5f5;r11:4f2;b13:4f0;g10:5f3;g14 :5f3;r10:6f2;b14:6f0;c11:6f2;c13:6f0;c12:6f3;p12:7f7;r11:7f2;b13:7f0;q12:8f6;c12 :9f3;c12:10f3;c12:11f3;
23:50
< Derakon>
I'm not going to look at solutions for levels I haven't finished yet.
23:50
< celticminstrel>
Whoa.
23:51
<@Vornicus>
In any case it's 21/0:26
23:53
< McMartin>
Is there a way to get a summary for all the things you've fixed?
23:54 RichardB_ [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has joined #code
23:54
<@Vornicus>
For /all/ of them?
23:55
<@Vornicus>
not that I'm aware of.
23:57
<@Vornicus>
YOu can see the best time and piece counts on the select page.
--- Log closed Mon Jun 07 00:00:26 2010
code logs -> 2010 -> Sun, 06 Jun 2010< code.20100605.log - code.20100607.log >