--- 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 |