code logs -> 2010 -> Mon, 07 Jun 2010< code.20100606.log - code.20100608.log >
--- Log opened Mon Jun 07 00:00:26 2010
00:03
< McMartin>
That's what I meant, really.
00:04
< McMartin>
My Robo-Children solution was 35/1:08
00:05
< McMartin>
There we go.
00:06 * McMartin solves Robo-Mecha, having gotten his switch polarity backwards.
00:06
< McMartin>
50/0:32 though, not the cleanest.
00:15
<@Vornicus>
Oh. Apparently they partially fixed the high scores thing.
00:16
< celticminstrel>
Hm?
00:16
<@Vornicus>
If you're logged in you can get on a leaderboard. But it's got corrupted numbers on it; stuff like -2billion
00:18
<@Vornicus>
But more recent scores show up as correct.
00:20 * McMartin solves Rocket Planes.
00:20
< McMartin>
This is the densest solution I have yet.
00:22
<@Vornicus>
35/3:24 for mine, and it is pretty dense... but not as bad as Police.
00:22
< McMartin>
35/2:11 for mine.
00:22
< McMartin>
?lvl=27&code=c8:11f2;c9:11f2;c10:11f2;g12:4f3;c8:5f3;c8:6f3;c8:7f3;c8:8f3;c8:9f3 ;c9:5f0;c10:5f0;b11:4f3;p11:5f0;c12:5f0;c13:5f0;c13:6f1;c13:7f1;c13:8f1;c13:9f1; c8:10f3;c9:8f0;b9:9f2;c10:7f3;i10:8f6;p10:9f3;q10:10f3;p11:7f3;c11:8f0;r11:9f0;g 11:10f2;r12:7f0;b12:10f2;q11:11f5;r11:6f3;c13:10f1;
00:23
< McMartin>
I'm holding off on Police for now because I have no real insight on how to do it.
00:23
< McMartin>
While I have approaches to many of the others.
00:24
< McMartin>
I algorithms for politicians and academics.
00:24
< McMartin>
*have algorithms
00:24
< McMartin>
Hm. Well, politicians.
00:25
< McMartin>
I have an inkling on academics, but it isn't going to actually work without some more machinery.
00:27
<@Vornicus>
My Academics is quite dence.
00:28
<@Vornicus>
19 writers, 12 branches, 4 conveyors.
00:30 Attilla [Attilla@Nightstar-26720ca0.threembb.co.uk] has quit [[NS] Quit: ]
00:43 * McMartin solves Politicians with some ridiculous knotwork.
00:44 * McMartin then solves it *correctly* instead of accidentally.
00:45 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
00:46
<@Vornicus>
My politicians is horrible: 60/0:39
00:53
< McMartin>
That's quite better on time than mine.
00:54
< McMartin>
My "best" time is 0:38 but it gave wrong answers.
00:54
< McMartin>
54/0:47 here.
00:56 * McMartin tightens it up some.
00:57
< McMartin>
Er. 57/0:45
00:57
< McMartin>
54/0:38 is the one that gives the wrong answer. =P
00:58 * McMartin made a deliberate space/time tradeoff though.
00:59
< McMartin>
Hm. I think I have an Idea for Police.
01:05 AbuDhabi [annodomini@Nightstar-d2b078cc.adsl.tpnet.pl] has quit [[NS] Quit: Snore.]
01:05 Vornicus is now known as Finerty
01:08 * Finerty improves it by 10 parts and 6 seconds by tightening it up and using bridges to move stuff.
01:09
<@Finerty>
Make that 14 parts and 9 seconds.
01:22
<@ToxicFrog>
Politicians: 60 parts, 37 seconds
01:22
<@ToxicFrog>
And I think I can optimize my routing a lot
01:29
<@ToxicFrog>
Revised: 41 parts, 31 seconds.
01:30 * McMartin dramatically improves his RoboBugs by duplicating state.
01:42 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
01:44 * McMartin solves RoboAcademics.
01:45
< McMartin>
On the one hand, probably not very efficient: 47/4:09.
01:45
< McMartin>
On the other hand, it's shaped like a jet fighter.
01:45
< McMartin>
I think this is acceptable.
01:46
< McMartin>
Ahahahaha
01:46
< McMartin>
The lowest entry in the right hand column is hilarious
01:46
< McMartin>
"Harmless." I bet.
01:46
<@ToxicFrog>
Generals: 54/1:07
01:47
< McMartin>
I haven't done Soldiers yet; I assume Generals is the one past it?
01:47
<@ToxicFrog>
Yes. And if you've already solved Soldiers, it is completely trivial. :/
01:48
<@ToxicFrog>
Er, sorry
01:48
<@ToxicFrog>
Soldiers->Officers->Generals, Generals is trivial if you have a solution for Officers.
01:48
< McMartin>
Er, right.
01:48
< McMartin>
I meant Officers.
01:48
< McMartin>
Soldiers is trivial outright.
01:49 Orth [orthianz@Nightstar-8dac7a33.xnet.co.nz] has joined #code
01:49
<@ToxicFrog>
Academics I have a solution for, but routing it feels like work :/
01:50 Reiv[Graduate] [orthianz@Nightstar-3a40d78c.xnet.co.nz] has quit [Ping timeout: 121 seconds]
01:51
< McMartin>
Mine was pleasingly aesthetic, though it did involve a fair amount of "code duplication".
01:51 RichardB_ [mycatverbs@Nightstar-58acb782.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
01:53
<@ToxicFrog>
Oh, I think I've figured out a betterw ay
01:53
< McMartin>
"As you may know, BINARY is a language devised by machines to CONFUSE us."
01:56
<@Finerty>
Generals and Officers are exactly the same thing, with one thing switched.
01:56
<@Finerty>
oh, and I think you don't need one of the paths.
01:58
< McMartin>
Academics: ?lvl=23&code=y12:2f3;b7:8f3;p7:9f0;r7:10f1;b8:9f0;y9:9f0;q10:9f5;b11:8f3;p11:9f0 ;r11:10f1;r11:11f2;g12:8f3;p12:9f3;q12:10f2;p12:11f7;q12:12f6;b13:8f3;p13:9f6;r1 3:10f1;b13:11f0;q14:9f1;y15:9f2;r16:9f2;b17:8f3;p17:9f6;r17:10f1;c12:3f3;c12:4f3 ;c12:5f3;c12:6f3;c12:7f3;c7:7f2;c8:7f2;c9:7f2;c10:7f2;c11:7f2;c6:7f2;c13:7f0;c14 :7f0;c15:7f0;c16:7f0;c17:7f0;c18:7f0;c18:8f1;c6:8f1;q6:9f4;q18:9f2;
01:58
<@ToxicFrog>
Academics: 37/3:36
01:58
<@ToxicFrog>
?lvl=23&code=y12:2f3;c12:4f3;c12:3f3;c12:12f3;r8:6f2;q9:5f5;p9:6f1;r9:7f1;c10:5f 2;b10:6f0;y10:7f0;q10:8f0;c11:5f2;r11:7f3;p11:8f4;b11:9f1;g12:5f3;c12:6f3;c12:7f 3;p12:8f7;c13:5f0;r13:7f3;p13:8f2;b13:9f1;c14:5f0;b14:6f2;y14:7f2;q14:8f6;q15:5f 1;p15:6f5;b15:7f1;r16:6f0;p12:10f7;b13:10f0;r11:10f2;q12:9f2;q12:11f0;
01:58
<@ToxicFrog>
...yeah, looks like we implemented the same algorithm
01:59
< McMartin>
I dub this the Mmrnmhrm Algorithm, since it clearly transforms between X and Y forms.
02:00
<@Finerty>
35/3:36! Muaha!
02:00
<@Finerty>
?lvl=23&code=r11:3f2;g12:2f3;p12:3f7;b13:3f0;r10:5f2;b14:5f0;y12:4f3;q12:5f0;c12 :12f3;y10:7f1;q10:8f0;r11:7f3;p11:8f4;b11:9f1;g12:7f3;p12:8f7;q12:9f2;b13:7f3;p1 3:8f6;r13:9f1;y14:7f1;q14:8f6;p11:5f6;p13:5f4;b11:4f3;b13:6f1;r11:6f1;r13:4f3;c1 0:6f1;c12:6f3;c14:6f1;p12:10f7;r11:10f2;b13:10f0;q12:11f0;
02:00
<@ToxicFrog>
Finerty: yeah, I just made that optimization
02:01
<@ToxicFrog>
Wait, no I didn't
02:01
< celticminstrel>
McMartin: XD
02:01
<@ToxicFrog>
Ok, I made a different optimization that gives me the same performance characteristics as yours :P
02:02
< McMartin>
Why do I get the feeling that finishing either of the rightmost blocks will end the game?
02:02
<@ToxicFrog>
Finishing Generals doesn't.
02:03
<@ToxicFrog>
Engineers is the only one I have left, now.
02:03
<@Finerty>
Engineers isn't all that hard, either.
02:04
<@ToxicFrog>
It's going to be annoying to route, though.
02:04
<@ToxicFrog>
I hate nondestructively matching 2-tuples
02:04
<@Finerty>
For engineers?
02:04
<@ToxicFrog>
Yes.
02:04
<@Finerty>
You never have to nondestructively match more than one symbol at a time.
02:05
<@ToxicFrog>
o.O
02:05
<@Finerty>
(33/1:28)
02:06
<@ToxicFrog>
Ok, the algorithm I was going to use was to accept strings of 0 or 1 length, otherwise strip first and last, reject if different, repeat
02:07 * Derakon stares at Androids some more.
02:07
< Derakon>
I can trivially remove all strings that are not "some nonzero number of blue, followed by some nonzero number of red".
02:07
< Derakon>
And I can replace them with yellow and green as I go.
02:08 * McMartin debates giving a vague hint general to pretty much everything Androids depends on.
02:09
< Derakon>
If I could read off the end of the tape instead of the beginning...
02:09 Searh [Z@2C3C9C.B2A300.F245DE.859909] has joined #code
02:09
< Namegduf>
I'm never going to get the Red Dwarf soap opera theme out of my head now.
02:09
<@ToxicFrog>
Derakon: reading from the end of the tape is possible, it's just annoying.
02:09 Serah [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
02:10
< Derakon>
My past attempts to do "find the end of the tape and remember what color it was" have been a horrible failure.
02:10
< McMartin>
You may have noticed that your primitives don't *directly* represent a full turing machine.
02:10
< McMartin>
You would need, oh, two extra kinds of markers on your tape to get that?
02:11
< Derakon>
Are you suggesting reading pairs of inputs?
02:12
< Derakon>
My fundamental block here seems to be determining if there are the same number of red as blue, without adding up red and blue, or reading from the end of the tape.
02:13
< McMartin>
Yeah, that's a block, for, you see, the solution requires none of those.
02:14
< Derakon>
Well, obviously adding up would be wrong, since a general adding-based solution would require infinite memory, which I don't have.
02:14
< McMartin>
You also don't have rewritable memory per se.
02:15
< McMartin>
I can't get selected blocks to rotate or flip =/
02:16
< Derakon>
Me neither, and clicking on the buttons that are supposed to rotate/flip instead switches to the eraser.
02:17
<@Finerty>
McM: clickhold to drag, and then use a/d/space
02:17
< Derakon>
Yeah, for me, the keyboard does nothing.
02:17
< Derakon>
Except for the number keys for selecting tools.
02:18 * Finerty improves his androids to 16/0:48
02:18
<@Finerty>
weird.
02:18
< McMartin>
Likewise.
02:18
< McMartin>
OHO
02:19
< McMartin>
Clickhold to drag, Shift C to copy, Shift V to paste, and then, pre-drop, a/d/space work
02:19
<@Finerty>
Right, you have to use it while you're holding.
02:20
< McMartin>
Move doesn't count
02:21
<@Finerty>
Odd, worked for me.
02:21
< McMartin>
Could be a Mac/Windows, or Safari/FF thing
02:21
< McMartin>
(Windows, FF)
02:21
< Derakon>
...okay, McM, now I have four ghostly tiles on my map that can't be deleted. I'm blaming you for this. :p
02:22
< Derakon>
(They went away when I went to the "world view" and back)
02:22
< Derakon>
And I am having no luck with Androids whatsoever. >.<
02:23
< Derakon>
...oh, hang on...if I could split my tape into two...
02:23
< Derakon>
But how would I do that?
02:23
<@Finerty>
Don't bother, it probably takes more room than you have.
02:24
< Derakon>
Bah.h
02:24
< Derakon>
s/\.h/./
02:25
< Derakon>
I guess conceptually that's the same as "read from the end of the tape" anyway.
02:26
<@Finerty>
Why are you replacing with yellow and green, though?
02:26
< Derakon>
As a first pass I can reject tapes that are not "some amount of blue followed by some amount of red" nondestructively by converting to green/yellow in the process.
02:27
< Derakon>
I'm not certain this simplification is getting me anything though.
02:27
<@Finerty>
It's not.
02:27
<@Finerty>
If your thing is built correctly, you should have a place where you have to rewrite your reds -- and if there's another blue there, you can reject at that moment.
02:28
< Derakon>
Yeah...
02:28
< Derakon>
But I'm just hitting this block of not having a clue how to check if there's the same number of red as blue without actually comparing sizes.
02:28
< Derakon>
Or reading from the end of the tape.
02:28
<@Finerty>
a = b --> a-1 = b-1
02:28
< Derakon>
That's reading from the end of the tape.
02:29
<@ToxicFrog>
n \\
02:29
<@Finerty>
no it's not.
02:29
<@ToxicFrog>
\\how do you figure?
02:29
< Derakon>
In order to reduce both red and blue in a properly-formed tape, I have to chop off one element from the front and one from the end.
02:29
<@ToxicFrog>
No you don't.
02:29
<@Finerty>
-1 + a = a + -1
02:30
< Derakon>
...what is that even supposed to mean?
02:30
<@ToxicFrog>
He means that it doesn't matter where you take the elements from.
02:30
<@ToxicFrog>
BBBRRR -> BBRR -- can you tell where I removed the elements?
02:30
< Derakon>
I can't remove from the middle of the tape!
02:30
<@ToxicFrog>
...why no?
02:31
< Derakon>
Rrgh...
02:31 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has left #code ["This is all very interesting, but I need to study..."]
02:31
< Derakon>
Okay, I think I get it then...
02:33
< Derakon>
...wait, no.
02:33
< Derakon>
Fuck me.
02:33
< McMartin>
One of the things you were missing to have a proper Turing machine is an "end of string" marker.
02:33
< McMartin>
If only there were some kind of reserved symbol that would let you mark termination conditions.
02:33 * McMartin also eyes his Required Real Estate for the police.
02:34
<@Finerty>
YOu have to imagine McM looking at the ceiling and stroking his beard while saying this.
02:34
< Derakon>
Read a pair. If they're both blue, then write one blue to the tape. If they're a blue and a red, switch modes. In alt mode, if they're both red, write one red to the tape, if they're a red and a blue, switch to original mode.
02:34
<@Finerty>
Or his non-beard. Either way.
02:34
< McMartin>
I don't like the fact that I have to quadruple my code base here, especially since said code base is already 3x4 so having 4 side by side leaves me one column for loopback.
02:35
< Derakon>
Any unmentioned matches should be cause for rejection...
02:35
< McMartin>
Derakon: You're overthinking this, or you're trying to do it in one pass. I can't tell which.
02:35
< Derakon>
I think what I described should chop the tape down over time.
02:36
< Derakon>
Any time you match alternating colors, since you don't write anything, you've reduced the size of the tape.
02:36
< McMartin>
Your described algorithm rejects BBRR$.
02:36
< Derakon>
So it does. Parity strikes again.
02:37
< McMartin>
If you want, I can tell you what your first tile should be.
02:37
< Derakon>
A down conveyor, I rather suspect.
02:37
< McMartin>
Nope.
02:37
< Derakon>
Write a green, then.
02:37
< McMartin>
Yes.
02:38
<@Finerty>
(mine's actually yellow)
02:39
< McMartin>
(I've been using Green for End Of String and Yellow for Virtual Write HEad)
02:42
< Derakon>
I really want peek. :(
02:42
< McMartin>
Oh hey
02:42
< McMartin>
You *can* C&P across levels.
02:45
< Derakon>
...well, the game thinks I passed, but I know for a fact my solution failed earlier with a different random test.
02:46
< Derakon>
?lvl=17&code=g12:4f3;c12:5f3;p12:6f3;p10:7f3;i11:6f2;c10:6f3;c11:7f1;c11:5f2;b9: 7f1;c9:6f1;c9:5f2;c10:5f2;c12:8f3;c12:9f3;c12:10f3;c12:7f3;c13:6f2;c13:5f0;c14:5 f0;c15:5f0;c15:6f1;c14:6f3;r15:7f1;p14:7f3;
02:46
< Derakon>
Largely because a correctly-aligned pair of reds followed by blues will not reject.
02:47
< 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;
02:47
< Derakon>
Clever.
02:48
< McMartin>
Sadly, for Police I have to maintain two strings at once, and I don't have the square space to do it.
02:48
< Derakon>
Yes, your solution actually works, whereas mine is just a fluke.
02:54
<@ToxicFrog>
McMartin: my solution for police used one tape and two write heads.
02:55
<@Finerty>
?lvl=17&code=p12:5f3;p11:5f0;b11:4f3;y12:4f3;i12:6f5;i12:7f5;c12:9f3;c12:10f3;q1 3:4f3;i13:6f4;c13:7f1;i13:5f3;p11:6f7;r10:6f2;c11:7f2;c12:8f3; <--- mine is better.
02:59 * Finerty fiddles with Police. Has to be easier than this.
03:00
< McMartin>
TF: Yeah, I think that will work better than my approach (start with GYG at the end, rebuild the string around the Y)
03:02
<@ToxicFrog>
Yeah, I went Y <str> Y G, then moved the heads inwards until they collided
03:05
< McMartin>
This means you don't have four 3x4 blocks of "replace Y with xYz" for all combinations of x and z.
03:05
<@Finerty>
that's what I'm rebuilding now. It's also what I had before but I think I blew it that time.
03:23
< McMartin>
Holy cow, I did it. 74/3:14.
03:26
< McMartin>
This is not going to be easy to jam the rest of Judiciary in here. >_<
03:28
< McMartin>
?lvl=19&code=y12:2f2;r13:1f3;p13:2f2;b13:3f1;y14:2f3;p14:5f3;b13:5f2;r15:5f0;q14 :6f2;p14:7f3;b13:7f3;y13:8f3;r15:7f3;y15:8f3;q14:8f2;i14:9f1;c14:10f3;y14:11f3;p 14:12f3;b13:12f2;r15:12f0;q14:13f7;c13:13f0;c15:9f0;c13:9f0;b12:7f0;p11:7f1;c10: 7f0;b9:7f3;c11:8f1;r10:8f2;p9:8f7;r8:8f2;q13:4f5;p12:4f6;b12:3f3;r12:5f1;y9:9f0; r8:9f0;c7:9f1;c7:8f1;c7:7f1;c7:6f2;c8:6f2;c9:6f1;c9:5f1;y11:6f0;b10:6f0;c10:4f2; c11:4f2;q9:4f1;c12:9f0;p11:9f0;c11:1
03:32
<@Finerty>
YOu do have to get kinda squishy to get Judiciary.
03:32
<@ToxicFrog>
My Judiciary was 128, 5:57
03:32
<@Finerty>
Fortunately the /second/ half of Judiciary is easier.
03:32
<@Finerty>
96/4:30
03:32
<@Finerty>
(judiciary)
03:33
< McMartin>
Yeah, it's just that I don't have the room to maneuver without serious Police rerouting (as you can see from the solve above)
03:34
<@Kazriko>
88/4:38 on judiciary.
03:35
<@Kazriko>
but I designed my police to take up the left half of the map from the start.
03:38
< Derakon>
This game keeps reminding me of Diamond Age.
03:40 * Derakon eyes Soldiers, tries to figure out how he should know to stop modifying the input without having an extra color available.
03:46
<@Kazriko>
there's a much simpler solution...
03:46
<@Kazriko>
:)
03:46
<@Finerty>
Soldiers.
03:46
<@Kazriko>
Much simpler...
03:46
< Derakon>
I know that multiplying by eight means inserting three red at the end...
03:46
<@Finerty>
7/0:04
03:46
< Derakon>
Hm.
03:46
< Derakon>
Oh, dur.
03:46
< Derakon>
For some reason I was thinking writing went at the front. Why?
03:47
<@Kazriko>
I was going to say, naming the number of parts would be a spoiler. :)
03:48
< Derakon>
Ah, Officers is "implement a binary adder".
03:48
<@Finerty>
No, Officers is implement a binary /incrementor/
03:48
<@Kazriko>
a very simple one. you only need to add a 1 to it.
03:48
< Derakon>
Point.
03:48
<@Kazriko>
yeah.
03:48
<@Kazriko>
Metatron is the full adder.
03:50 * Kazriko compiles wireless network drivers on his sluggish eee netbook.
03:54
<@ToxicFrog>
Oh hey, that's why the match syntax in Scala doesn't feel like a special form: it's not, it's a method call on scala.Any
04:00 * McMartin de-optimizes his Police to make more room for the Judiciary.
04:26 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
04:33 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
04:46
< McMartin>
Holy cow, a 35-part solution to Police.
04:47 * McMartin studies it.
04:47
<@Finerty>
.../35/
04:47
<@Finerty>
With /what/ sauce
04:48
< McMartin>
?lvl=19&code=g12:2f3;q12:10f6;b11:11f2;p12:11f3;r13:11f0;q12:12f6;g12:3f3;c12:4f 3;c12:5f3;y12:6f3;c12:7f3;p12:8f3;r13:7f0;q13:8f5;i12:9f1;c14:8f3;c14:9f0;c13:9f 0;r8:7f2;p9:7f1;r9:8f1;g9:9f1;c10:5f2;b10:7f0;g10:8f1;c10:9f0;r11:4f2;p11:5f2;b1 1:6f2;b11:7f2;q11:8f1;c11:9f0;q9:6f7;g8:6f2;c10:6f1;
04:51
< McMartin>
Aha
04:51
< McMartin>
Brilliant
04:51
< McMartin>
He's found a way to nondestructively peek for Greens.
04:52
<@Finerty>
That /is/ brilliant
04:55
<@Finerty>
Even more brilliant though is how he used the same rewriter twice.
04:59
< McMartin>
Yes.
04:59
< McMartin>
I adapted the nondestructive peek to my own solution and have dropped to 48/3:04.
04:59
< McMartin>
And I'm a *lot* more modular now and should be able to have plenty of room for Judiciary.
05:04
<@Finerty>
Wait, nondestructive peek?
05:04
<@Finerty>
The six pieces right below the yellow loader?
05:13
< Derakon>
Are you saying that he's found a way to reconstruct the entire tape and branch off of its first element, in only six pieces?
05:22
<@Kazriko>
Hmm. that solution has that block I used in orphanum before I flattened it out for space...
05:22
<@Kazriko>
I couldn't make it work for orphanum because I needed 6 of them, the flat ones fit better.
05:22
<@Kazriko>
even though they were much longer, they were only 3 wide, this one needed 5 wide with all supports in place.
05:23
< McMartin>
I'm saying a ton of my old logic was tracking "what the last brick was" so that I could know that if the next brick was yellow; this actually requires two bricks, not like 12.
05:23
< McMartin>
In other news, Judiciary is giving me odd-length inputs, this is cheating!
05:23
<@Kazriko>
nod...
05:23
<@Finerty>
You should be able to fail it out.
05:24
<@Finerty>
My current judiciary manages to fail it out in the middle of the Police group by some accident.
05:24
< McMartin>
Yeah, mine produces an infinite loop instead.
05:24 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
05:25
<@Finerty>
whups
05:39
<@Kazriko>
yeah, my police implementation fails out odd length strings too.
05:40 * McMartin wrenches a lane open to dump rejects, re-organizes the final verifier, finishes Judiciary with 93/4:31.
05:40
<@Kazriko>
cool, yours is faster than mine. 88/4:38
05:41
<@Kazriko>
I haven't done a lot of optimization though.
05:43
< McMartin>
Mine has a fair amount of dupe-logic in it.
05:52
< McMartin>
My engineer logic is umbrella-shaped.
05:52 Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code
05:54
<@Finerty>
Mine too.
05:54
<@Finerty>
33/1:28
05:55
<@Kazriko>
39/1:15.
05:55
<@Kazriko>
still umbrella shaped though.
05:55
< Rhamphoryncus>
for <rhamph@gmail.com>; Mon, 31 May 2010 22:53:23 -0400
05:55
< Rhamphoryncus>
Sat, 05 Jun 2010 19:05:51 -0700 (PDT)
05:55
< Rhamphoryncus>
Telus sucks
05:56
<@Kazriko>
or maybe mushroom shaped.
05:57
< Rhamphoryncus>
heh. I actually got the message twice, but one had no To header
05:58 Searh [Z@2C3C9C.B2A300.F245DE.859909] has quit [Ping timeout: 121 seconds]
05:58
< Rhamphoryncus>
oh, it has it, it just looks bogus (it's a phone number, not an email address)
06:03 * McMartin unlocks the bonus levels.
06:04
<@Finerty>
The second one is properly the hardest.
06:04
< McMartin>
For space concerns, presumably, since the algorithm is not tough at all.
06:05
< McMartin>
You don't need a full ALU for it.
06:05
< McMartin>
In fact, I don't think you need anything but shift and compare
06:05
<@Finerty>
Space.
06:05
<@Kazriko>
yeah. space.
06:06
<@Kazriko>
I had to setup my second level comparisons sideways to make them all fit.
06:06
< McMartin>
Now that I can get mass rotate/mass copypaste to work, I'm less offended by this!
06:06
<@Kazriko>
and roll them flat into 2x5 blocks rather than the 3x3 I started with.
06:06
< McMartin>
(I also had to do that to make Seraphim fit)
06:06
<@Finerty>
Oh. Mine actually /fails/ sometimes. Freaking leading reds.
06:06
<@Kazriko>
are there more bonuses after metatron? I still haven't bothered finishing that.
06:07
<@Finerty>
No, not after Metatron.
06:07
< McMartin>
I haven't actually finished the humanoids.
06:07
<@Kazriko>
I used a bit of space to strip all leading reds.
06:08
<@Finerty>
Judiciary is Police + Seraphim.
06:08
<@Kazriko>
I've broken my implementation now though.
06:08
<@Finerty>
I don't have a bit of space. D:
06:08
<@Kazriko>
I think my red-eater is 4x3
06:08
<@Kazriko>
uses the space to the left of the entrance.
06:09
<@Kazriko>
The B block on the left is shorter and wider than the A block on the right.
06:09
<@Finerty>
Oh, there it is. I do have leading red removal. What's the /actual/ error then?
06:12
<@Finerty>
20:18 fails.
06:12
< McMartin>
paired reds on equivalence, then?
06:13
< McMartin>
Also, I don't feel like writing math functions now. Time to give the game a rest, I think.
06:16
<@Kazriko>
That's why I didn't bother with metatron. Didn't feel like it right now. :)
06:17
<@Kazriko>
The game started to feel too much like work. :)
06:23
<@Finerty>
Aha. Ew.
06:23
<@Finerty>
If A has the same number of bits as B, but is bigger, it rejects. :(
06:24
<@Finerty>
I am vastly surprised this doesn't exist in the normal test cases.
06:25
<@Kazriko>
By that point, I wasn't surprised anymore. :)
06:26 Finerty is now known as Vornicus
06:34 Derakon is now known as Derakon[AFK]
06:44 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
07:33
< jerith>
I'm sure I had a much better Politicians solution.
07:33
< jerith>
Apparently I didn't get to it in my most recent optimising pass.
07:38
< jerith>
Also, I need to finish Ophanim sometime.
07:49 Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Operation timed out]
07:51 Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code
08:03 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds]
08:27 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has joined #code
08:54 AnnoDomini [annodomini@Nightstar-d2b078cc.adsl.tpnet.pl] has joined #code
08:54 mode/#code [+o AnnoDomini] by 459AAEB09
08:58 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has joined #code
09:03
< Orth>
VOOOOOOOOOOORN (And/or McM)
09:03
< Orth>
How the heck do I test for /any three blue/
09:05
<@Vornicus>
1. blue? go to 2. red? go to 1. done? fail.
09:05
<@Vornicus>
2. blue? go to 3. red? go to 2. done? fail.
09:06
<@Vornicus>
3. blue? win. red? go to 3. done? fail.
09:06
< Orth>
Oh, huh.
09:07
<@Vornicus>
Note that this is made easier by the fact that you can enter a branch from any direction.
09:08
< Alek>
wait, you can?
09:08
< Alek>
I thought you could only do it from the empty side
09:08
< Alek>
damn.
09:12
<@Vornicus>
You can also: build two perpendicular conveyors on a tile by holding shift while placing the second; flip the red and blue ends of the branch by pressing space; select and move things with the #2 tool; copy selected things wvia shift-C, and paste them via shift-V; send a robot down a conveyor backwards so it comes right back to you (this also works on bridged conveyors); toss the robot off the edge of the map.
09:14
<@Vornicus>
or back onto the entrance.
09:15
<@Vornicus>
You cannot, unfortunately, build on the entrance.
09:18
< McMartin>
Is the entrance a failsquare or is it a secret Down Conveyor?
09:19
<@Vornicus>
Failsquare
09:20
<@Vornicus>
Copying even apparently works across levels, which is nice for Officers/Generals or Police/Judiciary.
09:22
< McMartin>
v. yes.
09:23
<@Vornicus>
One of my favorite metagame tricks though is to copy my old version of the map into notepad so I can smash what I've got without fear of losing my work.
09:26
< McMartin>
Yeees.
09:26
< McMartin>
I did that about five times for Police.
09:26
< Orth>
Oh, didn't realise you could overlay and stuff.
09:27
< Orth>
hum
09:31
<@Vornicus>
There's only one thing I'm missing, and that's a full file format specification; given that I could test externally.
09:32 * Kazriko ponders writing an interpreter for it outside the game...
09:37
< Orth>
start and end with same colour, hm
09:37
< Orth>
I need a way to record the direction the thing went /before/ it ran out of dots.
09:37
<@Kazriko>
yep. heh
09:38
<@Vornicus>
Not that hard.
09:38 * Kazriko finishes FF13...
09:38
<@Kazriko>
61 hours 49 minutes.
09:38
<@Vornicus>
Jerith's is 15/0:38.
09:38
<@Vornicus>
and I'm reasonably certain it's perfect.
09:40
< Orth>
15??
09:40
< Orth>
I don't think I'm going to beat that one.
09:41
<@Vornicus>
As I said - I'm reasonably certain it's perfect.
09:43
< McMartin>
I'm still amazed by the 35-part Police run.
09:43
<@Vornicus>
That one is unbelievable.
09:50
< Orth>
Robomecha and Robobears are actually two sides of the same problem
09:50
< Orth>
"Be able to work out what the last state /was/"
09:53
< Orth>
... same number
09:53 * Orth has clearly missed a trick you can pull with these things.
09:53
<@Vornicus>
I'm still pleased with my Academics. ?lvl=23&code=r11:3f2;g12:2f3;p12:3f7;b13:3f0;r10:5f2;b14:5f0;y12:4f3;q12:5f0;c12 :12f3;y10:7f1;q10:8f0;r11:7f3;p11:8f4;b11:9f1;g12:7f3;p12:8f7;q12:9f2;b13:7f3;p1 3:8f6;r13:9f1;y14:7f1;q14:8f6;p11:5f6;p13:5f4;b11:4f3;b13:6f1;r11:6f1;r13:4f3;c1 0:6f1;c12:6f3;c14:6f1;p12:10f7;r11:10f2;b13:10f0;q12:11f0;
09:54
<@Vornicus>
Androids?
09:54
<@Vornicus>
I'll give you the same hints I gave Der: a = b <--> a - 1 = b - 1... and -1 + a = a + -1
09:55
< Orth>
Hmm. I have filed to comprehend how to do the robobear or robomecha.
09:55
< Orth>
Failed, rather.
09:55
< Orth>
I think there is a 'tracking state' thing I am missing here; I keep thinking like a FSM
09:55
< Orth>
And a FSM cannot solve this problem~
09:58
<@Vornicus>
I'm sure the FSM can solve any problem placed before him.
09:59
< Orth>
Finite State Machine. :P
09:59 * Vornicus knows, was being snarkmonster
09:59
< Orth>
Hum. With blue as 1 and red as 0, keep any odd result == keep any result that ends in blue?
10:00
< gnolam>
Yup.
10:01
< Orth>
Oh, ha
10:01
< Orth>
Bug in the conveyors turning a corner. ¬¬
10:01
<@Vornicus>
?
10:01
<@Vornicus>
Oh, accidentally dropping it off the edge there? Yeah, do that too damn often.
10:12 Vornicus is now known as Vornicus-Latens
10:18
< McMartin>
Hint: Do not attempt to jump from FSM through PDM to full Turing; just go full Turing.
10:23 Tarinaky [Tarinaky@Nightstar-c22ece88.adsl.virginmedia.net] has quit [Ping timeout: 121 seconds]
10:24 RichardB_ [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:31
<@Kazriko>
academics...
10:33
<@Kazriko>
I need to see those side by side... hmm.
10:34
<@Kazriko>
my cross system pasting is failing miserably.
10:34
< Orth>
gah, loop.
10:35
< Orth>
HA
10:37 Tarinaky [Tarinaky@Nightstar-caf50289.adsl.virginmedia.net] has joined #code
10:38
< Orth>
doh. It was fluking the test. ;_;
10:39
< Orth>
Feh, too hard.
10:39
< Orth>
It would probably be easier if I'd ever done a turing machine course, of course. Coff.
10:39
<@Kazriko>
?lvl=23&code=c12:12f3;c12:4f3;g12:5f3;p12:6f7;b13:5f3;p13:6f6;r13:7f1;c12:3f3;y1 2:2f3;q14:6f6;y14:5f1;q13:3f7;r14:2f3;p14:3f4;b14:4f1;q11:3f3;p10:3f6;r10:4f1;b1 0:2f3;p11:6f4;b11:7f1;r11:5f3;q10:6f0;y10:5f1;r11:10f2;p12:10f7;q12:11f0;b13:10f 0;q12:8f2;c12:9f3;c12:7f3;
10:40
<@Kazriko>
There's the academics one I wrote awhile back.
10:40
< Orth>
haha, won't let me because I haven't gotten that far yet
10:42
<@Kazriko>
there's similarities between vorn's and my academic implementation. He has an extra step up front copying the entire list that mine doesn't have though.
10:43
<@Kazriko>
he merged two yg decision blocks from mine into one on his, but also didn't cheat on reusing the r/b stamps on the wings there. mine is about 4 parts smaller.
10:45
< Orth>
man, I can't even figure Android. :p
10:46
<@Kazriko>
That one did take me awhile. vorn gave you a hint though. :)
10:46
< Orth>
Yeah, hint didn't much help.
10:46
< Orth>
Rocket Planes also stumped.
10:46
<@Kazriko>
all you need is a way to detect the end of the string, eh?
10:47
<@Kazriko>
my rocketplanes is 23 parts...
10:47 * Kazriko ponders rotating rocketplanes to shrink the partcount...
10:48 * Kazriko then realizes it's 4am and he should sleep.
10:52
< Orth>
haha. For mecha, I made a machine that moved the first input to the back, not the back input to the front.
10:53
< McMartin>
That's a different puzzle, much easier~
10:54
< Orth>
Yeah. I seem to have brickwalled.
11:36 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed]
11:42
< jerith>
Hah! Got Politicians to 37/0:40
11:48
< jerith>
36/0:39
11:53
< jerith>
35/0:37
11:56
< jerith>
I don't think I can make it smaller, but there are a lot of conveyors all over the place.
11:58 * Orth mumbles. Fun game, but too hard for me.
11:58
< jerith>
Orth: There are a few hard ones.
11:58
< jerith>
The easy ones are fun, though. :-)
11:59
< Orth>
Jerith: I cannot defeat Android, robomecha, robobull, or rocketplanes.
11:59
< Orth>
robobears, sorry.
12:03
< jerith>
Are you missing the recursion trick?
12:03
< jerith>
Oh, Androids isn't the one I thought it was.
12:04
< jerith>
I used the following algrithm for androids:
12:04
< jerith>
1. Add end-of-tape marker.
12:05
< jerith>
2. Eat a blue, reject on red, accept on empty.
12:06
< jerith>
3. (From the blue branch) Eat a red, reject on empty, replace a blue and loop back on blue.
12:06
< jerith>
Erm. This is harder to describe than I thought.
12:06 JoseB [JoseB@Nightstar-3e3f8a5a.cable.casema.nl] has quit [[NS] Quit: This computer has gone to sleep]
12:07
< jerith>
Because I'm describing my solution in too much detail.
12:07 * jerith tries again.
12:07
< jerith>
You want to run through the tape doing the following in each pass:
12:07
< jerith>
1. eat a blue
12:08
< jerith>
2. replace all other blues until you hit a red
12:08
< jerith>
3. eat the red you just hit
12:08
< jerith>
4. replace all other reds until you hit your end of tape marker
12:11 cpux is now known as shade_of_cpux
12:12
< jerith>
Rocket Planes is a hard one. You need to build a bubblesort.
12:13
< EvilDarkLord>
What are you guys playing?
12:13
< jerith>
http://www.kongregate.com/games/PleasingFungus/manufactoria
12:18 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
12:18
< Orth>
jerith: I actually pulled off everything but the end condition
12:19
< Orth>
I couldn't get the bloody thing to Stop; it infinite looped.
12:19
< Orth>
Or rather, I can't get it to halt if it sees nothing but blues.
12:24
< jerith>
Which one, Android?
12:24
< jerith>
Android should reject all-blues.
12:24
< Orth>
Rocketship.
12:25
< jerith>
My original Rocket Planes was huge and baroque and slow.
12:25
< jerith>
My current one is a fairly small two-stage affair.
12:25
< jerith>
It pushes reds to the end instead of pulling blues to the front.
12:26
< jerith>
Three stage, I suppose, if you count replacing blues until you get to the first red.
12:27
< jerith>
Once you have a red, it runs through reds until it either hits a blue or the end of the tape.
12:28
< jerith>
If it hits the end of the tape, it means you're sorted. It places the red it was holding, strips the marker and accepts.
12:29
< jerith>
If it hits a blue, it moves onto the next stage where it runs through all reds and blues until it get to the end of the tape, where it replaces the red it was holding and loops back to the beginning.
12:29
< Orth>
Mine is currently cycling through blues, sticking them on the end until it sees a red. Then it pops off the red, inserts a green. Goes through till it hits the greens (AKA run through once)
12:29
< Orth>
Then goes down and replaces all greens with a red at the end.
12:30
< Orth>
This orders it fine, but it fails if all you see is a blue.
12:30
< Orth>
Attempts to put in an end marker break it. >_>
12:30
< jerith>
Erm. I'm not sure I grok your algorithm.
12:30
< jerith>
Oh, I see.
12:31
< jerith>
No, wait. I don't.
12:31
< jerith>
Do you loop once for every green?
12:32
< jerith>
You need an end of tape marker for that anyway.
12:32
< Orth>
mumble. :)
12:32
< jerith>
Anyways, try implementing my algorithm. :-)
12:33
< Orth>
I have no idea how to /do/ your algorithm.
12:34
< jerith>
First thing is to place an end-of-tape marker.
12:35
< Orth>
got that much.
12:35
< jerith>
Since your input is only red/blue and the end-of-tape marker is the only yellow/green dot the system uses, this means that the straight-ahead branch on any red/blue switch means you've hit the end of the tape.
12:36
< jerith>
At this point, you eat the marker and either loop back to the start or wander off to the output.
12:38
< Orth>
How the heck do you 'hold' a red?
12:38
< jerith>
The "held" red is implicit in the structure.
12:38
< jerith>
The red branch of the switch "eats" the dot.
12:38
< celticminstrel>
By guaranteeing that, when entering a particular branch, the last one pulled off was a red.
12:39
< celticminstrel>
^branch -> switch.
12:39
< celticminstrel>
3
12:39
< EvilDarkLord>
Was infinite looping an acceptable rejection?
12:39
< jerith>
EvilDarkLord: Only if you've solved the Halting Problem.~
12:39
< EvilDarkLord>
Right.
12:41
< jerith>
Orth: I'm talking about "holding" the red because you're conceptually wanting to put it back somewhere.
12:41
< Orth>
Yeah, but I'm not sure how you hold /that/ red and then reorganise the rest of the darn thing.
12:42
< jerith>
It doesn't matter that you're holding a particular red. Just that you've eaten a red and want to put a red on the tape before you either accept or loop.
12:43
< jerith>
You don't reorganise the rest of the tape at all in this pass. You merely eat and replace every dot you see until you get to the end.
12:43
< jerith>
The trick is that you bounce off to a second eat-and-replace module if you see a blue dot.
12:44
< jerith>
This second eat-and-replace module loops back to the start when it reaches the end of the string, while the first one goes to the accept bin.
12:46
< jerith>
Your algorithm's "state" is "stored" as a function of which module the robot is in.
12:47
< jerith>
The zeroth module (which runs through initial blues) stores "I haven't seen a red dot yet".
12:48
< jerith>
The exit conditions for the module are "I've reached the end of the tape" (success) or "I've seen a red" (move to the first module).
12:48
< jerith>
The first module stores "I'm holding onto a red dot".
12:49
< jerith>
Its exit conditions are "I've reached the end of the tape" (replace the "held" red dot, success) or "I've seen a blue dot" (replace the blue dot just seen, move to the second module).
12:50
< jerith>
The second module stores "I'm holding onto a red dot, but I've seen a blue dot and must therefor iterate again".
12:50 Zed [Zed@Nightstar-e4835f03.or.comcast.net] has quit [Ping timeout: 121 seconds]
12:51
< jerith>
Its only exit condition is "I've reached the end of the tape" (replace the "held" red dot, loop back to start).
12:52
< jerith>
Orth: Is this making sense yet?
12:54
< Orth>
I think maybe.
12:54
< Orth>
This is not a small one, is it.
12:54
< jerith>
No.
12:56
< jerith>
It might be a bit easier to work on this same "the state is held in the branch structure" concept in robobears, which makes it more explicit.
12:57
< jerith>
There, the problem is "accept strings that begin and end with the same colour".
12:58
< jerith>
This leads to two branches: one for each colour of the first dot.
12:59
< jerith>
Then you need a nearly-identical module on each branch. The red branch module eats all but the last dot and then accepts if it's red or rejects if it's blue.
12:59
< jerith>
The blue branch does the opposite.
12:59
< celticminstrel>
I wouldn't call it an opposite.
13:00
< jerith>
Note that these two modules are, themselves, state-stored-in-branch modules.
13:00
< celticminstrel>
The opposite would be eating only the last dot and then accepting if it is blue.
13:00
< jerith>
celticminstrel: It's opposite in the exit conditions, not the processing. :-)
13:00
< celticminstrel>
:)
13:00
< celticminstrel>
That I'll agree with.
13:01
< jerith>
However, my solution uses identical structure with the red/blue switches reversed.
13:02
< celticminstrel>
If I recall, that was the once which prompted me to say "It's tiny!".
13:02
< jerith>
Indeed.
13:02
< celticminstrel>
Your solution, that is.
13:02
< jerith>
It uses several neat tricks, which make it unsuitable for demonstrating principles. :-)
13:03
< celticminstrel>
...okay.
13:03
< jerith>
I'm pretty sure it's minimal in both space (well, component count) and time.
13:06
< jerith>
celticminstrel: Each of my Robobears branch modules is actually my Milidogs solution.
13:06
< jerith>
Orth: That little tidbit may help you. ^^^
13:16 RichardB_ [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds]
13:39 Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Client exited]
13:54 RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
14:23
< Orth>
bah, my robobears solution fails when dealing with size 1.
14:23
< celticminstrel>
Humbug?
14:26
< jerith>
And now that I have my internets back...
14:26
< jerith>
Orth: An empty string is a success case in those branches.
14:27
< jerith>
Also, w00t! 33/0:30 for Politicians.
14:27
< celticminstrel>
Um, if you lost your internet, how did you stay connected?
14:27
< jerith>
My client lives on a continent with reliable internet.
14:27
< celticminstrel>
I see...
14:28
< jerith>
My office connectio nfell over, which deprived me of an ssh connectio nto the screen session irssi runs in.
14:28
< celticminstrel>
Oh my.
14:31
< Orth>
jerith: Unfortunately, for my branches an empty string was how I /discarded/ things.
14:31
< jerith>
Yeah.
14:41
< jerith>
And I found a much better way to do Robomecha. Down to 19/0:26
14:41
< Orth>
bastard, I've not even solved it the clumsy way :P
14:41
< celticminstrel>
For some reason, my 'except Exception as x' clause failed to catch an AttributeError. :/
14:42
< jerith>
The better way is actually the clumsy way, but without making the mistakes I kept making.
14:42
< jerith>
I also used a couple of optimisation tricks to keep the size down.
14:44
< jerith>
I think this solution is optimal, but I can't prove it.
14:47
< Orth>
bah
14:47
< jerith>
celticminstrel: You may have admired my minimal Robobugs, which looks similar to my Robobears.
14:47
< Orth>
How do you cross two conveyor belts?
14:47
< jerith>
Hold shift while you place the second.
14:47
< celticminstrel>
It was the 'n red, n blue' one, I believe.
14:50
< jerith>
Robotanks annoys me.
14:50
< jerith>
I keep wanting to cut down the number of conveyors, but I can't find a solution.
14:52
< jerith>
The algorithm is "strip reds, eat four dots, accept if the tape isn't empty.
14:52
< jerith>
But you don't get any writers.
14:53
< celticminstrel>
That sounds like an odd way to put it.
14:53
< Orth>
It's fairly literal, though.
14:53
< celticminstrel>
I stripped reds and consumed four dots sort of at the same time.
14:54
< jerith>
How?
14:54
< celticminstrel>
45 parts though.
14:54
< celticminstrel>
?lvl=15&code=p11:3f0;p9:5f3;p11:7f2;p14:9f3;c12:3f0;c11:2f0;c10:2f0;c9:2f3;c9:3f 3;c9:4f3;c8:5f3;c8:6f3;c8:7f2;c9:7f2;c10:7f2;c11:8f2;c12:8f2;c13:8f2;c14:8f3;c13 :9f3;p11:10f0;c13:10f0;c12:10f0;c11:9f0;c10:9f0;c9:9f3;c9:10f3;c11:11f3;c10:11f2 ;c9:11f2;c11:12f2;c11:4f2;c12:4f1;c10:6f3;c10:5f3;c11:6f2;c12:6f2;c13:6f2;c14:6f 3;c14:7f3;c15:9f3;c15:10f3;c15:11f0;c14:11f0;c13:11f1;
14:55
< jerith>
Ah. The direct approach.
14:55
< celticminstrel>
Call it what you like. <_<
14:55
< jerith>
?lvl=15&code=p12:4f4;c12:3f3;p12:5f7;p11:6f7;p13:6f7;p12:7f7;c11:5f3;c10:6f3;c11 :7f3;c12:6f3;c13:5f3;c13:7f3;c14:6f3;c12:8f3;c10:7f2;c14:7f0;p13:8f7;p11:8f7;c11 :10f3;c11:11f3;c11:12f2;p12:10f7;c13:10f3;c13:11f3;c13:12f0;c10:8f3;c10:9f2;c11: 9f2;c12:9f3;c13:9f0;c14:9f0;c14:8f3;
14:56
< jerith>
Yours rejects at every step.
14:56
< celticminstrel>
Huh?
14:56
< jerith>
Mine eats four dots and then asserts that the tape isn't empty.
14:57
< jerith>
Erm. Mine apparently has a bug in it.
14:58
< celticminstrel>
...oh right, because once you've gotten rid of any leading reds you don't really care about the colour of subsequent ones as long as there are four of them.
14:58
< celticminstrel>
Well, five including the leading blue.
14:58
< celticminstrel>
.
14:58
< Orth>
right.
14:59
< jerith>
I shrunk mine, which introduced a bug.
14:59
< jerith>
Except the static input misses it, only the random strings trigger it.
14:59
< celticminstrel>
At that point I still thought the switches had to be entered from behind.
15:00
< jerith>
You need to enter all but the first from behind anyway.
15:00
< celticminstrel>
In that particular problem, sure.
15:01
<@ToxicFrog>
Robobears in 19 parts: ?lvl=15&code=p12:4f4;c12:3f3;p12:5f7;p11:6f7;p13:6f7;p12:7f7;c11:5f3;c10:6f3;c11 :7f3;c12:6f3;c13:5f3;c13:7f3;c14:6f3;c12:8f3;c10:7f2;c14:7f0;p13:8f7;p11:8f7;c11 :10f3;c11:11f3;c11:12f2;p12:10f7;c13:10f3;c13:11f3;c13:12f0;c10:8f3;c10:9f2;c11: 9f2;c12:9f3;c13:9f0;c14:9f0;c14:8f3;
15:01
< jerith>
This one's correct, but has four more parts.
15:01
< jerith>
?lvl=15&code=p12:4f4;c12:3f3;p12:5f7;p11:6f7;p13:6f7;p12:7f7;c11:5f3;c10:6f3;c11 :7f3;c12:6f3;c13:5f3;c13:7f3;c14:6f3;p10:7f3;p14:7f3;c9:7f3;c15:7f3;c10:8f2;c11: 8f2;c11:9f3;c11:10f3;c11:11f2;c12:8f3;p12:9f7;c13:8f0;c13:9f3;c13:10f3;c13:11f0; c14:8f0;c9:8f2;c15:8f0;c12:11f3;
15:01
< celticminstrel>
I just wasn't aware it was possible to enter from any other direction.
15:02 RichardBarrell [mycatverbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection closed]
15:02
< jerith>
ToxicFrog: You repasted my broken Robotanks, I think.
15:03
<@ToxicFrog>
Yes, I did :/
15:03
<@ToxicFrog>
?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;
15:03
< jerith>
But here's Robobears in 15 parts: ?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;
15:05
< celticminstrel>
Um, that's the same as the one ToxicFrog pasted.
15:05
< celticminstrel>
Which is 15 parts, not 19.
15:05
<@ToxicFrog>
And mine is 15, I'm not sure where I got 19 from
15:06 * ToxicFrog clearly shouldn't manufactoria before noon
15:08
< Orth>
GAH
15:09
< Orth>
I need my sorting table to be the mirror image, not a rotation ;_;
15:12
< Tarinaky>
Orth: 'Space'?
15:12
< Tarinaky>
Space flips a component. :x
15:13
< celticminstrel>
Only for switches.
15:13
< jerith>
And for pastes.
15:13
< Orth>
... it does?
15:13
< jerith>
Orth: It does.
15:13
< celticminstrel>
I have not discovered copy-paste.
15:13
< jerith>
If you're placing a switch, it swaps the colour branches.
15:14
< Orth>
HAHAHAHA GOT YOU YOU BASTARD
15:14
< jerith>
If you select (using tool 2), copy (shift+C) and paste (shift+V), you get a hovering module that you can rotate/flip and place.
15:14 * Orth pauses. Wait, I can make this better
15:15
< celticminstrel>
Space helped, I presume. :)
15:17
< Orth>
... hey, you can throw components on anywhere, not just from the back for the switches?
15:18
<@ToxicFrog>
Yes.
15:18 * Orth thinks.
15:18
< Orth>
...So I could set up two switches facing at each other, and they'd NOTFOUND in each others faces?
15:18
< jerith>
Yes.
15:18
< Orth>
And hey, I could... hm
15:18
< jerith>
Although this is a bad idea unless you like infinite loops.
15:18 * Orth goes to a simpler one to test his cunning theory.
15:18
< jerith>
I often feed two switch outputs into each other.
15:19
< celticminstrel>
Yay for cunning theories!
15:19
< Orth>
Yes! I can inline the strip-the-marker switches instead of having a dogleg. Haha.
15:19
< jerith>
See my/ToxicFrog's Robobears above.
15:19
< celticminstrel>
A dogleg?
15:20
< jerith>
Ah, yes. a "run through the tape putting back everything you read" module is three components.
15:21
< celticminstrel>
This applies even if you're switching red/blue to yellow/green or vice versa, right?
15:21
< Orth>
celticminstrel: I had eg 'strip all yellow off the front of my string' as "Input from rear, output to the right, conveyor belt back around to behind'.
15:21
< Orth>
Yep.
15:21
< celticminstrel>
Yeah, I've done that sort of thing a lot.
15:21
< celticminstrel>
3
15:21
< Orth>
And that just made this solution a hell of a lot faster.
15:21
< Orth>
Actually, hm
15:21
< celticminstrel>
I also was unaware of the ability to enter from the side.
15:22
< celticminstrel>
And I haven't tried any more since discovering it.
15:24
< Orth>
hmm. Now I'm doing that, I can ... heh, I can twist that whole chunk all the way back up.
15:26
< Orth>
Har.
15:27
< Orth>
I present to you: Rocketplane, as damn near perfect as I can get it. ?lvl=27&code=c12:8f3;c12:9f3;y12:4f3;i12:7f6;c11:7f0;p12:5f3;c12:6f3;q10:7f0;y10 :5f2;c10:6f1;p9:7f2;r9:6f3;b9:8f1;b11:5f2;r13:5f3;p13:6f4;c13:7f0;q12:10f2;
15:28
< jerith>
There's an obvious optimisation you can make on the left branch.
15:28
< Orth>
Oh?
15:29
< jerith>
It's also rather better than my solution.
15:30
< jerith>
Move the yellow writer and shift the whole module one space right.
15:34
< jerith>
Ah, I see. Instead of moving reds to the end, you move loose blues to the start of the next iteration.
15:34
< jerith>
Ingenious.
15:34
< Orth>
I found that it hurt my head less that way
15:34
< Orth>
The wrap-everything-around code was straightforward enough.
15:34
< jerith>
I didn't even think of it.
15:34
< celticminstrel>
XD
15:35
< jerith>
I was stuck entirely within a single iteration.
15:35
< jerith>
I'm going to adopt your technique. :-)
15:35
< Orth>
I frankly found that hurt my head; this broke it up.
15:36
< Orth>
I do that a lot >_>
15:37
< jerith>
16/1:34 once I applied that little optimisation to your solution.
15:38
< celticminstrel>
Compared to?
15:39
< jerith>
19/1:<something>
15:39
< jerith>
Bigger and slower.
15:40
< jerith>
I also moved the final yellow-eater up into the middle, which is more compact and far less clear.
15:40 * jerith moves it out again.
15:43
< Orth>
Yeah, I sorta started off with a yellow pusher on top and popper at bottom
15:43
< Orth>
And went from there.
17:22 Attilla [Attilla@Nightstar-cac56693.threembb.co.uk] has joined #code
17:22 mode/#code [+o Attilla] by 459AAEB09
17:43
<@ToxicFrog>
<3 pattern matching
17:43
<@ToxicFrog>
val Array(x,y,z) = "1 2 3" split "\\s+" map (_.toInt)
17:45
< celticminstrel>
...language?
18:02
< Tarinaky>
... Isn't that more complicated than it would have been to just write {1,2,3};?
18:03
< Tarinaky>
Or am I missing the point?
18:09 AnnoDomini [annodomini@Nightstar-d2b078cc.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
18:11 AnnoDomini [annodomini@Nightstar-b89848d6.adsl.tpnet.pl] has joined #code
18:12 mode/#code [+o AnnoDomini] by 459AAEB09
18:14
< Tarinaky>
http://imgur.com/14Lra
18:21
< gnolam>
Boo. :)
18:27 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: *hums* Can't stay now!]
18:39
<@ToxicFrog>
Tarinaky: you're missing the point; replace "1 2 3" with, say, a line read from a file.
18:39
<@ToxicFrog>
Also, the "pattern matching" part is that this code is equivalent to:
18:40
<@ToxicFrog>
val tmp = "1 2 3" split "\\s+" map (_.toInt); val (x,y,z) = (tmp(0), tmp(1), tmp(2))
18:40
<@ToxicFrog>
That is to say, it creates three values x, y, and z contaning the first three elements of the array that the RHS evaluates to.
18:48 JoseB [JoseB@Nightstar-3e3f8a5a.cable.casema.nl] has joined #code
19:00
< Orth>
wtf, Soldiers
19:01
< Orth>
That's embarrasing
19:01
<@ToxicFrog>
Yes.
19:01
<@ToxicFrog>
It is.
19:02
< jerith>
Just got Engineers down to 29/1:07
19:03
< Orth>
Haha.
19:03
< Orth>
I just did Android with three splitters and a red dotter
19:03
< Orth>
I don't think it's a legal solution, but it passed and that's all I care about :P
19:04 * Orth tries to work out how one gets hold of the last freaking bit.
19:04
<@Vornicus-Latens>
OKay, Reiver's rocket planes is really, really good.
19:04
< jerith>
Reiv: What's your Androids?
19:05
< Orth>
Vorn: Haha, that was like hours and hours of figuring the alograthm
19:05
< Orth>
And then realising what my alograthm could do
19:06
< Orth>
And then screwing around for like an hour whittling it down as I realised I could bloody well optimise all over the place.
19:06
< Orth>
I will admit I fluked on hitting such an optimisable alograthm, though. >_>
19:07
< Orth>
jerith: Uh
19:07
< Orth>
sec
19:08
< Orth>
?lvl=17&code=c12:4f3;c12:5f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;r13:6f0;p12:6f7;p1 1:6f3;p11:7f0;
19:08
< Orth>
It's actually only counting whether or not there is an even number of dots.
19:08
< Orth>
But, cough, it passes the tests and I was getting bored so it's close enough~
19:08
<@Vornicus-Latens>
pff
19:10
< Orth>
Can't fault it for size though ¬¬
19:10
<@Vornicus-Latens>
So my Rocket Planes is 35/3:24, and Reiver's is 16/1:34.
19:12
< jerith>
Yep, BBBR foils Reiv's androids. :-)
19:12
<@Vornicus-Latens>
?lvl=17&code=p12:5f3;p11:5f0;b11:4f3;y12:4f3;i12:6f5;i12:7f7;c12:9f3;c12:10f3;q1 3:4f3;i13:6f3;c13:7f1;i13:5f4;p11:6f7;r10:6f2;c11:7f2;c12:8f3; <--- my androids actually works.
19:12
< Orth>
Vorn: My initial solution was bigger than yours.
19:13
< Orth>
Halfway through the solution I needed to flip a splitter though
19:13
< Namegduf>
That's what she said
19:13
< Orth>
It was at this point I discovered that I could shove crap onto the splitters in any direction I wanted
19:13
< Orth>
This was, uh, Significant in optimisation.
19:13
< jerith>
Vorn: Mine's better than yours: ?lvl=17&code=c12:10f3;y12:4f3;c12:9f3;q13:4f5;i12:5f6;p12:6f7;c12:7f3;p13:5f5;p1 3:6f2;b13:7f1;r14:5f0;c12:8f3;
19:14
< Orth>
(Like, the shunters went from 6 each to 3, and I have enough of them~)
19:15
< jerith>
Reiv: That and the bridges are the two Significant Optimisation tricks.
19:15
<@Vornicus-Latens>
Yes it is.
19:15
< jerith>
My Robochildren is very neat, although I used a trick from someone else's.
19:16
< jerith>
The trick is that if there's an adjacent pair of the same colour, there must be another adjacent pair of the opposite colour in a valid string.
19:17
< jerith>
So you can eat all alternating pairs and replace all doubles with singles in the output.
19:17
<@Vornicus-Latens>
wild.
19:18
< jerith>
This drastically reduces the number of iterations required. In the pathological case, it drops to O(n/2).
19:18
<@Vornicus-Latens>
that's n log n wort case.
19:19
< jerith>
Erm, n/2 iterations, no O().
19:19
< jerith>
So yeah. 21/0:32 for my Robochildren.
19:20
<@Vornicus-Latens>
That's /really/ impressive.
19:20
< jerith>
It's a very impressive algorithm.
19:21 * Vornicus-Latens will have a look at it after he washes the dishes.
19:21
< jerith>
I've been ignoring Police, Officers and their derivatives.
19:21
< Orth>
I was kind of proud to beat Android with like, two more peices than a straight line >_>
19:21
< jerith>
Since I've been doing this in small chunks between work.
19:21
< Orth>
I know the solution isn't /correct/, but that's still pretty cool, right?~
19:22
<@Vornicus-Latens>
Officers and Generals are easy.
19:22
< jerith>
Orth: You solution cheats, though. ;-)
19:22
< Orth>
Vorn: Officers is embarrasing
19:22
< jerith>
Vorn: My solutions are very messy.
19:22
< jerith>
Orth: No, that's Soldiers.
19:22
< McMartin>
There's an amazing Police solution high on the list of shared levels
19:22
< Orth>
Oh, right.
19:22
< Orth>
I got baffled by Officers.
19:22
< jerith>
McMartin: I looked at that, but couldn't follow it.
19:22
< Orth>
I had the even-to-odd easy enough
19:22
< Orth>
My odd-to-even kept catching infinite loops.
19:23
< McMartin>
jerith: He's reusing his rewriter for one. For two, he's checking for green *every time* which dramatically simplifies his lookahead logic, since a big question was "OK, here's the read head, what did I see *last phase*
19:24
< Namegduf>
I personally think it'd be neat if someone took Manufactoria
19:24
< Namegduf>
And attached the output and input to FDs
19:24
< jerith>
I'm tempted to shove a reverser (Academics) on the front and back of Officers and Generals.
19:24
< Namegduf>
Obviously redoing it not in Flash.
19:24
< Orth>
Man
19:25
< jerith>
Or possibly use the same reverser and toggle a flag or something.
19:25
< Orth>
If I ever get to america and do a Grand Tour
19:25
< Orth>
Someone remind me to bring Ergo.
19:25
< Orth>
I swear you people would love it to death ¬¬
19:25
< jerith>
Because the addition can be done in one pass if the bits are reversed.
19:25
< jerith>
Ergo?
19:25
< jerith>
Also, you'd have to hit Africa on the way..
19:25
< Orth>
Card game. Prove, using boolean logic operators, that you exist. And no-one else.
19:25
< Namegduf>
XD
19:25
< Namegduf>
That sounds awesome.
19:26
< Orth>
You actually have said operators in your hand, and the game progresses by placing cards on four lines of a proof on the table~
19:26
< jerith>
Sounds like fun.
19:26
< Orth>
Along with a moderate strategy thing of maximising your churn until you get the cards you need.
19:26
<@Vornicus-Latens>
...in fact I'm /pretty/ usre jerith's robochildren can be done without a terminator.
19:27
< jerith>
Vorn: I'm pretty sure it can't.
19:27
< Orth>
Mostly it's fun to make peoples heads hurt ¬¬
19:28
< Orth>
It's single biggest downside is it printed the wrong version of the rules.
19:28
< jerith>
Orth: How hard would it be to build an online version, do you think?
19:28
< Orth>
To whit: Apparently legend has it the publisher spat out a Starting Draft. And didn't want to do a reprint. >_>
19:28
< Orth>
Jerith: An online card manager and Multiplayer Notepad could just about do it.
19:29 * jerith smells a #code Projekt about to happen...
19:31
< Orth>
The majority of cards are, IIRC: 4x each A, B, C, D, a couple OR (V), AND(.), THEN (>, curved), Parenthesis ((), and then a handful of Specials: Justify, Fallacy, Tabula Rasa, Revolution, Correction, Wildcard [Variable], Wildcard [Operator], and Ergo.
19:31
< Orth>
I note that in every game I will ever play in, I call dibs on A~
19:31
< Orth>
(We're each a variable letter.)
19:32
< Orth>
(I keep forgetting which one I am unless I'm A. ¬¬)
19:32
<@ToxicFrog>
Orth: I need to play this.Perhaps we could implement it as a felt module once felt is working?
19:32
<@ToxicFrog>
(also, it reminds me of Wff'n'Proof)
19:32
< Orth>
TF: Felt?
19:32
<@ToxicFrog>
Networked virtual card table.
19:32
< Orth>
Also: If we can get the 'cards' and the proof lines working, provided people are willing to do the rest of the rules management themselves, it is /trivial/
19:33
< Orth>
You have four lines of arbitary (Suggested cap of 10) cards each, +1 for Justify & Fallacy. If you can turn cards sideways, it'd even be authentic there too~
19:34
< jerith>
Vorn: A version without the marker incorrectly accepts BBR.
19:34
< Orth>
(Fallacy: Place on any given line. It is, in effect, /* */'d out, and doesn't count for scoring, but does still count for Ergo. When the turn comes back round to your turn, turn the card sideways. When it's again your turn, discard the card.)
19:35
< Orth>
(Justify: Exactly the same as Fallacy, except that when played, that line is in effect read-only, and no-one else can fiddle with it until the Justify is gone.)
19:35
<@ToxicFrog>
Orth: well, the whole idea of felt is that it's just a table, it doesn't know anything about the rules
19:35
< Orth>
(A Justify can be used to cancel a Fallacy, a Fallacy can cancel a Justify, leaving the line back in play and able to be screwed with as normal~)
19:35
< Orth>
TF: Well, the 'turning cards sideways' is used as a round counter
19:35
<@ToxicFrog>
All you'd need is images for all of the cards and a short script to pack them into decks and whatnot on startup.
19:36
< Orth>
If we cannot do that then it wouldn't be too scary.
19:36
< Orth>
But it's kind of elegant~
19:36
< Orth>
But hell yes, we could do this.
19:36
< Orth>
We would then rig Skype or something, or have a chat channel in the background. It's traditional to, after each change, declare who is what.
19:36
<@ToxicFrog>
card:mixin "rotate" (90)
19:36
< Orth>
... haha. Awesome.
19:37
< Orth>
We'll even rig a couple custom cards (On my todo list), one for each player.
19:37
<@ToxicFrog>
My test case for this program is Descent
19:37
< Orth>
With, along the edges, TRUE, FALSE, & LIMBO~
19:37
<@ToxicFrog>
So, yeah, it kind of has to support decks, spreads, counters, tapping, flipping, hidden and shared hands, boards...
19:37
< Orth>
So we can track not only who each person is, but whether they currently exist ¬¬
19:37
<@ToxicFrog>
Heh
19:38
<@ToxicFrog>
With a bit of work, the Ergo module could actually keep track of that automatically, but it might be more trouble than it's worth
19:38
< Orth>
It would be awesome if it could
19:38
< Orth>
But it would also be rather convoluted to do so, yeah~
19:38
<@ToxicFrog>
(a module can contain arbitrary lua code, so while you can set up dumb cards in a few lines, you can also do more complex stuff - frex, Descent monsters update a different window with their stat card when moused over)
19:39
<@ToxicFrog>
(make the four lines Boards rather than part of the background, have them iterate over their contents and solve them after each turn)
19:40
<@ToxicFrog>
However, all of this is moot until I get Felt working, which at present means a total rewrite of the networking code :/
19:40
< Orth>
hm. Revolution: Take two proof cards on the table, swap positions. Tabula Rasa: Delete one proof card from the table. Correction: Swap one proof card on the table with one from your hand. *Note: All such alterations much leave legal proofs after you've done them. (This means Tabular Rasa tends to run around deleting NOT statements a lot, but we're fine with that~)
19:40
< Orth>
TF: The complication there would be the fact that the lines are interdependant
19:40
< Orth>
Eg, you can have the two lines
19:41
< Orth>
A.B
19:41
< Orth>
~B
19:41
< Orth>
Er, fuck. AVB, ~B proves A is true.
19:41
< Orth>
A OR B is true, B is false... ergo, A is true. Etc.
19:41
<@ToxicFrog>
I didn't say it would be trivial~
19:42
< jerith>
Theorem provers are easy. :-P
19:42
< Orth>
But a couple simple ones would be nice - readonly Justify, 'commenting out' a Fallacy, and automatically tracking who played it (And when it'll fade) would be nifty enough for chroming.
19:42
<@ToxicFrog>
jerith: GUIs aren't, though~
19:42
< Orth>
jerith: That's great, because I know for a fact the game bloody well hurts my head~
19:43
< Orth>
It's a lot of fun, though.
19:43
< Orth>
(Though when I first bought it and opened the rules, I very nearly threw the thing in the bin, they are that bad)
19:45
< Orth>
(Their example of play is incorrect by their own rules. Their example formula has an Ergo card in the middle of the proof. Their order of operator precedence is exactly backwards for no discernable reason... I could go on, but you get the idea very quickly. >.<)
19:46
< Orth>
Anyway, if you get Felt going, I'm good for a game~
19:46
< Orth>
Hell, so is /Orthia/, so long as we play nice; she's never done a logic or philosophy course in her life and she loves the thing.
19:48
< jerith>
Can you point us to a card list and a corresct ruleset?
19:52
< Orth>
Easily enough when needed, certainly.
19:52
< Orth>
Hell, I could write it up now
19:53
< jerith>
Is the PDF of rules on their website correct?
19:53
< Orth>
Nope.
19:53
< Orth>
Painful, no?~
19:53
< Orth>
There's a reason it scored so awful on BBG ¬¬
19:54 * Vornicus-Latens takes a first crack at robochildren using jerith's algorithm.
19:54 * Vornicus-Latens hits 21/0:37
19:55 * Vornicus-Latens then discovers a failure mode: bbr fails because it becomes rb for the next pass.
19:58
<@Vornicus-Latens>
So yes, you need a terminator in there. Now how did jerith add that without increasing the piece count.
19:59
< jerith>
With cunning.
20:00
<@Vornicus-Latens>
clearly
20:00
< jerith>
I loop back to the outer switches, not the central on.
20:00
< jerith>
*one
20:06
< jerith>
ToxicFrog: Is Felt web-based or thick client?
20:11
< jerith>
Reiv: They claim they've updated their PDF with all known errata. (Second block on http://catalystgamelabs.com/category/casual-games/ergo/ )
20:12
< jerith>
http://catalystgamelabs.com/2010/04/13/ergo-accepted-for-mensa-mind-games-compet ition/ <-- Better URL.
20:18
<@ToxicFrog>
jerith: thick client.
20:19
<@ToxicFrog>
Fuck AJAX.
20:19 * Vornicus-Latens accidentally increases both time spent and pieces used.
20:20 * Vornicus-Latens then improves it to 17/0:30, but it's got the same bug.
20:24
<@Vornicus-Latens>
right, I give
20:25
< jerith>
I've closed my browser, so I can't send you the code. :-(
20:25
<@Vornicus-Latens>
bah
20:26
< jerith>
The central swich points down, with a switch poining up on either side.
20:27
< jerith>
The outputs facing each other are opposite colours.
20:27
< jerith>
The outer outputs lead to upward-pointing writers, which loop back to the central switch's input.
20:28
< jerith>
(Bridge the null outputs of the upward-facing switches as necessary.)
20:30
< jerith>
The null output of the central switch leads through a marker-eater into another downward-facing switch. The colour outputs write the marker and then lead to the inputs of the upward-facing outer switches.
20:30
< jerith>
The null output of this switch leads to the acceptance bucket.
20:30
< jerith>
Also, you need to write a marker right up at the beginning.
20:30
< jerith>
Vorn: Does that make sense to you?
20:32
<@Vornicus-Latens>
I... geez, really?
20:33 * Vornicus-Latens missed that he could feed the outer switches from two directions, somehow.
20:33 * jerith needs to head home now, will probably be online again in 40-60 minutes.
20:33
<@Vornicus-Latens>
right, laters
20:34
< jerith>
Stupid work crap waiting-for-important-emails screwed up my evening and made me miss band. :-(
20:34
<@Vornicus-Latens>
:(
20:34
< jerith>
Fucking CIRA and stupid bloody .ca domain names.
20:36
< jerith>
Finally got an answer on an issue we reported weeks ago, and it boils down to "please redesign your entire system so these edge cases work the way we expect".
20:38
< jerith>
I'll send a long and carefully worded email to them tomorrow about how it's a stupid system and can they give us a way to do what we want without gluing a customer account to a particular domain name.
20:38
< jerith>
But they won't be able to.
20:39 * jerith sighs, heads out into the rain to try find somehwere that will feed him without making him too wet.
20:40 * Vornicus-Latens tries to figure out if you can pull the same shit with Teachers. Doubts it.
20:40
< jerith>
I have a nice Teachers solution too. Ping me when I'm back.
20:40
<@ToxicFrog>
Which one is Teachers again?
20:40
<@Vornicus-Latens>
er, not teachers. Politicians
20:41
<@Vornicus-Latens>
Teachers accepts nBnRnB; Politicians is the one I really want: twice as many blue as read.
20:41
<@ToxicFrog>
Easier than Teachers, IMO
20:42
<@Vornicus-Latens>
Teachers: 22/0:58; Politicians: 46/0:30
20:42
<@Vornicus-Latens>
is my current stuff.
20:43
<@ToxicFrog>
I do think it's larger, it's just conceptually easier, at least for me
20:44
<@Vornicus-Latens>
yeah, politicians wasn't all that complicated, but it's kinda large, and now that Children is O(n log n) I'm starting to suspect that politicians doesn't need to be O(n^2) either.
20:46
< Orth>
What's the altcode for a U on its side?
20:46
< Orth>
jerith: I saw that; those rules remain incorrect.
20:46
< Orth>
My understanding is that the 'errata' fixed the /errors/, but not the intended rules.
20:46
<@Vornicus-Latens>
Don't think there's altcodes.
20:47
<@Vornicus-Latens>
Well, not nice ones.
20:47
< Orth>
woe, I shall use a > then
20:47
< Orth>
(So the examples are no longer actually incorrect [IIRC, they are anyway~], but the rules as written was still the version they initially printed. I guess in terms of 'not totally rewriting the rules in errata', I can understand the logic there, but.)
20:49
<@ToxicFrog>
Orth: ? ? ? ? ? ? ? ? ?
20:49
<@ToxicFrog>
That's \u2282 through \u2289
20:50
<@ToxicFrog>
If you're on Linux, try pressing ctrl-shift-U to enter raw unicode mode and typing in those four-digit sequences; if you're on windows you're probably SOL.
20:51
< Orth>
Woo!
20:52
< Orth>
bah, no good on places without unicode
20:52
< Orth>
I shall stick with > for the immediate moment.
21:13 Vornicus-Latens is now known as Vornicus
21:13
< Orth>
Is sensical a word?
21:14
<@Vornicus>
I use it.
21:18
<@ToxicFrog>
Ditto.
21:20
< Orth>
Jolly good, the spellcheck didn't recognise it.
21:21 celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code
21:21
< Orth>
http://wiki.starforge.co.uk/wiki/Ergo - How's that?
21:23
< McMartin>
sensical is one of those words like "gruntled" except it's actually used unironically.
21:23
< Orth>
(Incidentally, I've never seen a round not finished by an Ergo.)
21:24
< Orth>
(I get the impression the rest is there as a fairly thorough just-in-case~)
21:26 * Orth throws ToxicFrog and Jerith at the wiki, given he just spent the better part of an hour writing the darn things up. There are bound to be errors, of course - it was being rewritten half from memory, half from transposing, at the wrong side of 7AM ¬¬
21:28
< Orth>
But yeah, presuming I didn't bugger that completely, et voila - there are your ruleset, ladies and gentlemens.
21:37
< jerith>
Shiny, thanks.
21:40 * McMartin blinks
21:41
< McMartin>
The reason "sensical" is not widely used is because "sensible" is usually the one you want.
21:43
< Orth>
jerith: Please give it a look over to see if I've made any errors in writing it up
21:43
< Orth>
I'm a terrible proofreader at the best of times, nevermind when it's OhGod o'clock~
21:43
< Orth>
McM: I think I prefer sensical when dealing with code constructs
21:45
< Orth>
TF: Hurry up and get your card table written up; I wanna play now~
21:47
<@ToxicFrog>
Orth: I'm kind of really bummed out about it, actually, because my networking design turned out to have a simple but very fundamental flaw in it and aaaaagh
21:49
< Orth>
Really? :/
21:50
< Orth>
Nothing that can be fixed by Throwing A Library At It?
21:53
<@ToxicFrog>
It's a design flaw, not an implementation one
21:53
< Orth>
Aw, shit.
21:53
< Orth>
What was this flaw in the design?
21:54
<@ToxicFrog>
Specifically, that making the game entirely peer to peer Doesn't Fucking Work; you need a central server to coordinate or you end up with some really nasty race conditions under the right circumstances.
21:54
< Orth>
Aaah
21:54
< Orth>
Yes, that would make sense.
21:54
< Orth>
I can also see the bewitching temptation to do it, though~
21:55
<@ToxicFrog>
Also, I was not nearly as clean as I should have been about separating the networking stuff from the rest of the code.
21:55
<@ToxicFrog>
So, completely removing and rewriting the netcode is an unpleasant task.
21:56
< Orth>
Oh.
21:56
< Orth>
Um. Oops?
21:56
< Orth>
How major a project was it? >_>
21:59
<@ToxicFrog>
3k LOC not counting the netcode.
21:59
< Orth>
Ow. :/
22:00 * Orth waves the prospect of Ergo before TFs face
22:00
< Orth>
Give it a go?~
22:00
< Orth>
(It should have occoured to me that it'd be you lot I should have told the game about when I got it; FFS you guys do programming puzzles in your free time for fun~)
22:01
<@ToxicFrog>
I am giving it a go. It's just slow and unpleasant going.
22:01 gnolam [lenin@Nightstar-38637aa0.priv.bahnhof.se] has quit [[NS] Quit: Gone]
22:02
<@ToxicFrog>
Also, Ergo looks tasty, but I already have Descent for motivation.
22:02
<@ToxicFrog>
That said, Ergo looks not too hard to implement, and once I'm looking for testers again...
22:04 Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code
22:04
< Orth>
Indeed!
22:04
< Orth>
It's one of those games where the rules are simple, because the challenge comes in the massive headaches you get on the game table once people really get going~
22:04
< Namegduf>
Those are always fun games.
22:05
< Orth>
Well, the logic statements get as convoluted as people choose to make 'em, so... ¬¬
22:05
<@ToxicFrog>
Also, it's written in Lua, which is nice in some ways and a headache in others.
22:05
<@ToxicFrog>
On the one hand, love2d, easy to add new modules, easy to distribute
22:05
< Orth>
I'd imagine.
22:06
< Orth>
Bad hand: Everything was done from scratch~
22:06
<@ToxicFrog>
On the other hand, lack of static typing hurts increasingly more as the project gets larger.
22:08
<@ToxicFrog>
No, that wasn't a problem.
22:10
< Orth>
Reverse Polish notation~
22:10
<@ToxicFrog>
Love2d provides graphics, input, networking, filesystem. Object system was 100 lines; (de)serialization, 150. GUI was larger, but that would be a problem with any SDL-based approach.
22:11
<@ToxicFrog>
...ok, that is actually more than I'd have to do with, say, Scala. But then I run into other problems (no SDL!)
22:11
< McMartin>
SDL doesn't have Java bindings?
22:12
<@ToxicFrog>
It purports to have Java bindings. The internet does not think highly of them, however.
22:12
<@ToxicFrog>
And they definitely aren't on the same level as love2d/pygame.
22:13
<@ToxicFrog>
Hometime.
22:13
< McMartin>
Aha.
22:13
< celticminstrel>
I have been meaning to ask... to what extent is RFC2811 and RFC2812 considered standard?
22:13
< Namegduf>
"Not very at all"
22:14
< Namegduf>
I would only use them as a reference for things I was already aware were significantly implemented
22:14
< celticminstrel>
But some of it certainly seems to be.
22:15
< Namegduf>
I'm not sure how certain parts of it being fairly widely implemented means they're considered standard.
22:15
< Namegduf>
Given they were largely written retroactively
22:15
< celticminstrel>
True, I guess.
22:15
< Namegduf>
AFAIK that was the point at which IRCnet went off and did their own thing in their own weird little world
22:15
< Namegduf>
And it got written into RFCs
22:15
< celticminstrel>
Okay.
22:16
< celticminstrel>
I do remember from Wikipedia that there is only one IRC server that supports !-channels, out of several available.
22:16
< Namegduf>
I don't remember what they are
22:16
< Namegduf>
They're one of the stupid ways to avoid needing timestamping, right?
22:17
< celticminstrel>
!-channels is basically what ChanServ does.
22:17
< celticminstrel>
A way to register a channel.
22:17
< Namegduf>
ChanServ serves as a point of persistence of op status, and synchronisation
22:17
< celticminstrel>
And mark yourself as founder.
22:18
< Namegduf>
Are you still a founder if you part and rejoin later?
22:18
< celticminstrel>
I think so.
22:18
< celticminstrel>
I'm not really sure of the details of how they work.
22:18
< Namegduf>
"it is also widely recognized that not even operators should be allowed to kill users on remote servers."
22:19
< Namegduf>
~ RFC 2812 on its own level of relevantness to real IRC networks, and lack of specificness to IRCnet
22:20
< Namegduf>
Yeah
22:20
< Namegduf>
!channels are IRCnet's way to avoid needing timestamping
22:21
< Namegduf>
They didn't like it because they were on crack at the time
22:21
< celticminstrel>
How does it avoid the need for timestamping?
22:21
< Namegduf>
Basically, the reason timestamping is needed is because if I'm on a server no one else is on, I can cycle the channel and regain ops.
22:21
< Namegduf>
When the servers relink, I would naively still have ops.
22:22
< Namegduf>
The sane IRCD solution to this is to attach a timestamp of the creation time to a channel.
22:22
< Namegduf>
If the times differ, the side with the lesser time has all its ops revoked.
22:23
< Namegduf>
Their approach is to attach unique characters on channel creation to the channel name.
22:23
< celticminstrel>
Ah, that's how that works. (I was only studying the client-side part of the protocol...)
22:23 Serah [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code
22:23
< Namegduf>
The other half of their "solution" is to restrict channel creation if a channel was recently split.
22:24
< Namegduf>
Which involves tracking channels that don't exist.
22:24
< Namegduf>
So you can block their creation
22:24
< Namegduf>
And preventing anyone from resuming use of the channel, and not doing anything at all for a server restart.
22:24
< Namegduf>
But yeah, that's what !channels were for
22:26
< Namegduf>
Basically, they just made a bunch of non-standard extensions, then wrote an RFC.
22:26
< Namegduf>
Some bits of it were adopted elsewhere, but a lot of things, like the variety of channels, and weirdass channel modes, aren't repected at all.
22:26
< Namegduf>
*respected
22:28
< celticminstrel>
Yeah, modes a and q seem to be unused. I seriously don't see the point of mode a; mode q seems just slightly useful, but not for much.
22:28
< Namegduf>
"In order to avoid this, servers MUST "look in the future" and keep a list of channel names which identifier is about to be used (in the coming few days for example)"
22:29
< Namegduf>
~ RFC 2812 on practical implementation of !channels
22:29
< Namegduf>
Sorry, 2811
22:30
< McMartin>
celticminstrel: Nightstar has started implementing these as of the last services reset
22:30
< celticminstrel>
Not a and q...
22:30
< McMartin>
459AAEB09 is marked +q on my names list
22:30
< celticminstrel>
Yeah, exactly.
22:30
< McMartin>
And thus is presumably Vorn.
22:30
< Namegduf>
Not "that" aq
22:30
< Namegduf>
They're different modes with the same letters
22:31
< celticminstrel>
The a and q in RFC2812 were just channel modes, like s or t.
22:31
< McMartin>
Ah
22:31
< celticminstrel>
Oh, and 459AAEB09 is Reiver.
22:43
< McMartin>
So it is
22:47
< Orth>
Silly
22:48
< Orth>
#Code is my brainchild ^.^
22:48
< Orth>
Only, uh, barely.
22:48
< Orth>
But fifteen minutes counts~
22:48
< celticminstrel>
You are Reiver, right?
22:48
< Orth>
I am Reiver, borrowing Orthias computer.
22:48
< celticminstrel>
There is a separate person called Orth?
22:52
< Orth>
There is.
22:52
< Orth>
She is a most wonderful young lady.
22:53
< Orth>
However, she is also not exactly a programmer, so in #Code I tend not to bother with identifying it as being I, Reiver, borrowing her machine, because it's pretty much as good a bet as any it's me behind the keyboard.
22:55
< celticminstrel>
Thus leading me to believe that you are the same person.
22:55
< jerith>
This is not, however, true in #math.
22:55
< Namegduf>
Secretly, everyone but you in the world? Same person.
22:55
< celticminstrel>
Hehe.
22:55
< jerith>
I resent that! I'm not the same as Vorn and McMartin and PinkFreud.
22:56
< jerith>
For starters, two of those three are far more awesome than I.
23:05
<@ToxicFrog>
celticminstrel: Scala, to answer your earlier question.
23:06 You're now known as TheWatcher[T-2]
23:08
< celticminstrel>
Oh.
23:09 You're now known as TheWatcher[zZzZ]
23:09
< McMartin>
Man, I can't even find the question
23:10
< celticminstrel>
[12:43pm] ToxicFrog: <3 pattern matching
23:10
< celticminstrel>
[12:43pm] ToxicFrog: val Array(x,y,z) = "1 2 3" split "\\s+" map (_.toInt)
23:10
< celticminstrel>
[12:45pm] celticminstrel: ...language?
23:10
< McMartin>
Aha.
23:11
< McMartin>
Man, I can't count how many times I did "f = (map read) . words" in Haskell, a similar functionality
23:13
<@ToxicFrog>
Oh yeah, that reminds me
23:13
<@ToxicFrog>
Earlier, Scala was discussing def f[T, U](xs: CC[T])(fn: T => U): CC[(T, U)] = xs map (x => (x, fn(x)))
23:13
<@ToxicFrog>
Figuring that it probably has a name in Haskell.
23:13
<@ToxicFrog>
It seems like it should, but I don't know what.
23:13
<@ToxicFrog>
Thought you might.
23:14
< McMartin>
My scala-fu is too weak to read that.
23:15
< McMartin>
Is that "take a list xs and turn it into zip (xs, map fn xs)"?
23:17
< McMartin>
If so, that can't actually be written point-free; I don't know offhand if Haskell has a primitive for that but you can do it with "f fn l = zip l $ map fn l" and then leave it at that
23:19
< McMartin>
I don't see anything in Prelude; zipWith is something totally different.
23:28 shade_of_cpux is now known as cpux
23:36
<@ToxicFrog>
You read it correctly.
23:38 Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code
23:39
< McMartin>
I think a Haskeller would call it a zip, much as a Pythonista would.
23:39 * ToxicFrog nods
23:40
<@ToxicFrog>
That is to say, you wouldn't call this construct anything special, just do a zip xs (map fn xs) ?
23:40
< McMartin>
Yeah.
23:40
< McMartin>
And I'd probably prefer that over the comprehension.
23:41
< McMartin>
I likely wouldn't even write a function for it unless I was also using it as a step to something bigger (in Haskell, most likely preparing an associative list to build a Map or Array out of)
23:41 AnnoDomini [annodomini@Nightstar-b89848d6.adsl.tpnet.pl] has quit [[NS] Quit: leaving]
23:43
< McMartin>
(Also, for reasons I don't fully understand, I tend to use $ over parens to make stuff right-associate)
23:59 Attilla [Attilla@Nightstar-cac56693.threembb.co.uk] has quit [[NS] Quit: ]
--- Log closed Tue Jun 08 00:00:27 2010
code logs -> 2010 -> Mon, 07 Jun 2010< code.20100606.log - code.20100608.log >