Page 6 of 9

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 20, 2010 2:28 pm UTC
by Axidos
@Xanthir:
Using Steve496's code from the quote below I'm getting broken images.
Image
The broken images all seem to be prefixed with w/W and R.


Steve496 wrote:tehtml's Robo-children solution allows a faster 23-part Politicians to be constructed:

Code: Select all

?lvl=22&code=p12:4f3;r13:4f0;c12:3f3;p11:4f0;r11:5f1;b11:3f2;g12:2f3;b13:5f3;p13:6f4;r13:7f1;c13:8f1;q12:6f6;g12:7f3;p12:8f7;c12:9f3;c11:6f2;c11:7f1;p11:8f0;b11:9f1;c12:10f3;c12:11f3;c12:12f3;c12:5f3;

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 20, 2010 3:18 pm UTC
by Xanthir
Axidos wrote:@Xanthir:
Using Steve496's code from the quote below I'm getting broken images.
The broken images all seem to be prefixed with w/W and R.

Ah, sorry about that. The writers were capitalizing part of their filenames incorrectly. I didn't notice this while it was on my local machine, because I run windows which is case-insensitive. Fixed.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 20, 2010 3:32 pm UTC
by asdfex
Thanks for the JS evaluation tool! I think there is a bug in the code that marks strings as incorrectly rejected. E.g. this code

Code: Select all

?lvl=18&code=r10:2f3;q11:3f3;p10:3f2;r13:4f3;p12:4f3;b11:4f3;b10:4f1;c13:5f0;i12:5f6;c12:6f3;c12:7f3;c12:8f3;c12:9f3;c12:10f3;c12:11f3;c9:4f1;g8:5f1;q8:6f4;b9:5f3;p9:6f0;r9:7f1;c8:4f2;c10:5f3;p10:6f3;p9:3f5;b8:3f2;r11:6f0;g11:5f0;c12:3f3;

gives a "incorrectly rejected" for the sequence "R" - which has to be rejected according to the levels rules "equal number of blue and red".

Firefox can't show the svg graphics, it gives an XML-error "No element found" in line 1, column 1 for each of the graphics. I'm not sure why this happens.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 20, 2010 5:07 pm UTC
by Xanthir
Ah, indeed there was. To check that level, I iterated through the tape and incremented blue and red counters, then compared them at the end. However, the iteration method I used went through *all* properties of the tape, not just the indexes. In particular, it went through .length, which happens to be 1 for [R], which also happens to be the internal representation for B. So it was adding an extra B to the count when the tape had only a single color.

Anyway, fixed. Also, fixed the longstanding bug where it would claim you "correctly rejected" a tape on the output levels if you dumped it while it happened to not match the output condition (on output levels, all rejections should be incorrect).

Also also, added graphics for the entrance and exit tiles.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Mon Jun 21, 2010 7:35 am UTC
by Nabb
SLOW.

Spoiler:
Image


Code: Select all

?lvl=23&code=y12:2f0;g11:1f0;y11:2f1;b10:8f2;q11:6f2;y11:7f3;p11:8f3;b11:9f2;p12:6f0;b12:7f2;r12:8f0;c12:9f2;c13:5f3;c13:6f0;c13:7f2;y13:8f3;c13:9f2;p14:6f3;i14:7f5;q14:8f3;q14:9f2;c14:10f3;q14:11f7;c14:12f3;c14:13f0;c15:6f2;c15:7f1;r15:10f3;p15:11f2;b15:12f1;c15:13f0;q16:11f7;c13:13f0;y13:11f3;g13:12f0;q12:12f5;c10:7f1;c10:6f1;c14:4f3;g10:1f0;g9:1f0;c15:8f0;g8:1f0;g7:1f0;g6:1f3;c11:10f0;c12:10f0;c12:11f1;c13:4f2;c11:4f2;g6:5f2;c8:6f2;c9:6f2;b12:5f2;c12:4f2;q9:7f6;c10:5f2;c11:5f1;g6:2f3;g6:3f3;g6:4f3;g7:5f2;g8:5f2;g9:5f1;g9:4f0;g8:4f0;g7:4f1;g7:3f1;g7:2f2;g8:2f3;g8:3f2;g9:3f1;g9:2f2;g10:2f3;g10:3f2;g11:3f2;g12:3f2;p16:6f6;i14:5f1;r16:5f0;c15:5f0;g13:3f1;g13:2f1;g13:1f2;r16:7f0;q17:6f2;y17:7f3;c14:3f3;i8:7f4;i8:8f0;i7:7f3;g9:8f0;r16:12f3;p17:12f7;b18:12f3;c17:11f3;c18:13f0;c17:13f0;c16:13f0;b16:8f3;p16:9f0;r16:10f1;c17:8f3;c17:9f0;y8:11f2;q8:12f5;q8:13f4;i9:11f4;y9:13f0;c10:11f1;q10:12f2;y10:13f0;b11:11f3;p11:12f0;r11:13f1;c10:10f1;c10:9f0;i9:9f2;c8:9f1;r15:9f0;g14:2f3;g14:1f3;c9:12f1;c9:10f1;q8:10f4;q13:10f2;p17:10f7;p18:11f4;p18:10f4;r18:9f3;p18:6f4;r18:5f0;c17:5f1;p17:4f5;r18:4f0;b16:4f2;c15:3f0;p15:4f7;q10:4f3;p17:2f5;c17:1f0;c16:1f0;c15:1f3;c15:2f3;p18:1f0;c18:3f1;r18:2f1;q17:3f2;b16:2f3;c16:3f2;c18:7f3;b18:8f0;i7:8f2;c6:8f3;c6:9f3;c6:10f3;c6:11f3;c6:12f3;c6:13f2;c7:13f1;c7:12f1;c7:11f1;c7:10f1;c7:9f1;c7:6f0;c6:6f3;c6:7f2;


The obvious slowness increase would be changing the unary to binary...

Re: Manufactoria / record solutions

Posted: Mon Jun 21, 2010 5:02 pm UTC
by Nix
The record score table was here, now moved to the new page. I'm leaving the edit history behind.


Updates since moving to this page:

Not a huge improvement but I made Metatron in 63 parts, one less than tehtmi's record and faster too. I'm not very surprised if it shrinks another 5 parts or so.


2010-06-23

J.P. convinced me to allow impractically slow and tape-hogging solutions on the list, and set it off with a 46-part Metatron he sent some days ago. It's a faster version of the one without moving parts that he posted. I'm still listing the smallest practical solution as well, which here is considerably larger at 63 parts.


2010-06-25

Nabb's Robo-children solution was disqualified when it was found that it doesn't work with all long inputs. This prompted me to make a fast Robo-children myself. The result is not quite as fast as Nabb's flawed solution (28.0k), but at 28.8k still comfortably ahead of Berengal's old record.

I also made a speedy Politicians, beating Steve496's 57k by 2458 steps, using 20 parts more (67).


2010-06-26

My speed records from yesterday didn't stay long. Robo-children was taken by turingnow who posted the faster solution, a nice 3002 steps off 29k adding 10 parts. My Politicians was improved by q00u, eliminating 1944 steps from 55k without changing the part-count.

(edit 1) Nabb took back Robo-children by posting a smaller solution with the same speed. I took the liberty to shrink Nabb's entry by four parts to improve the record with my program. The change loses speed with longer inputs but keeps it equal in the step-counted set.

After inadvertently seeing Nabb's solution I also looked at q00u's twerk to my Politicians, combined both tricks and added a new one of my own, finishing with 45.6k steps for Politicians, down from 52.7k and also using 66 instead of 67 parts.

(edit 2) On a quick read through the Manufactoria thread on TASVideos that Patashu linked to, the only improvement that caught my eye was klmz's Police in 32 parts, one off my 33-part record, although slower.


2010-06-27

Jareds sent an improvement to his speed record in Academics, going from 303k to 286k.

He also sent a faster 20-part Officers to replace J.P.'s, but had to settle for an intermediate record after I added the records I had missed from the TASVideos thread: flagitious has an 18-part Officers beating the 20 and a 17-part Generals to beat J.P.'s 18. Their Metatron fails on a lone green input (implied 0 + 0), as does yaichi's from Kongregate forums, mentioned on TASVideos. Yaichi's Ophanim also hangs on BG (1 + implied 0), but their Police in 29 parts is even better than klmz's 32 I added yesterday.


2010-06-28

Quick speed improvements to the size records I added yesterday: jareds found much faster solutions for both Officers and Generals in the same sizes of 18 and 17 parts, replacing the records of flagitious from TASVideos.


2010-06-29 Moved the updated table and scores.txt to the new page. Edit history continues there.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 22, 2010 3:44 am UTC
by J.P.
Here's an "obfuscated code" entry: a 46-part Metatron with no moving parts (i.e. no bridges or conveyors)

Code: Select all

?lvl=31&code=y11:6f2;r12:3f3;p12:4f2;b12:5f1;g13:3f3;q13:4f4;p13:6f7;g14:3f0;q14:4f2;p14:5f4;q14:6f6;q14:8f3;g14:9f0;r15:4f3;b15:6f1;b15:8f0;y12:2f3;y13:5f3;q11:7f1;r12:7f0;g12:8f0;b11:8f1;r12:9f3;b12:11f1;p11:10f4;q11:9f6;q11:11f2;y11:12f0;y10:12f1;g10:10f2;q10:11f4;p9:11f6;r9:12f1;b9:10f3;r14:7f3;p13:12f4;r13:11f3;b13:13f1;q12:12f4;q13:9f0;r13:10f3;r13:7f3;q12:10f0;q15:5f0;r12:6f2;p13:8f7;

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Wed Jun 23, 2010 8:05 pm UTC
by bocochoco
This game is great. I wish there were more levels. I just beat Politicians. Probably the least efficient way possible, but it worked.

Code: Select all

?lvl=22&code=g12:2f3;p12:4f3;b11:4f2;r13:4f1;r13:3f0;c12:3f3;c12:9f3;c12:10f3;c12:11f3;c12:12f3;q12:5f6;g12:6f3;c11:8f0;c11:6f2;q10:6f5;r11:7f0;p10:7f5;b9:7f2;c12:7f3;p12:8f7;p10:8f0;p14:8f2;r10:9f1;r15:7f0;b13:7f2;b14:9f1;p14:7f5;q14:6f1;c13:6f0;c13:8f2;


30 parts, 1:21

Explanation
Spoiler:
Replace R with RR at the beginning so you end up with the same input with twice as many Red's, then remove one red and one blue at a time. if you ever don't find one of each, get rid of it. When you end up with nothing left, accept!

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Wed Jun 23, 2010 8:48 pm UTC
by Xanthir
Spoiler:
Actually, that's the basis of the current most efficient solution, too. It just does it in reverse - it removes every second blue, then checks for equal red/blue.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Wed Jun 23, 2010 11:03 pm UTC
by mike-l
This game is an absolute blast!

I hate metatron so much right now, I keep running out of space. My basic algorithm is
Spoiler:
If the tape starts as A g B (capitals are numbers, lower case are colors), change it to A g B g g, and then at the start of every loop, the tape reads [A/2^n] g [(B+ (A mod 2^n))/2^n] g (A+B mod 2^n)

1) Change to A g B g g
2a) If A ends in 0, move 2nd g left 1
2b) If A ends in 1, add 1 to B and move 2nd g left 1
2z) If A is empty, goto 5
3) Call new tape A g B g C g
4) goto 2
5) remove all g and exit

The main things causing me to run out of space are in 2b, dealing with the fact that I don't know whether the next symbol when adding is going to be a R/B or a G. I think I'm going to rectify this by changing 1 to 1) Change to A g B r g, and 5 to 5) remove all g and last r. This will be the 4th time I basically start from scratch though... at least I've found some ways to make some other parts smaller.


My last attempt really didn't need much more space at all, maybe 1 extra row/column. I guess I need to work on efficiency. (That or do the really bad solution of:
Spoiler:
1) If A is 0, remove 0 and return B
2) Subtract 1 from A
3) Add 1 to B
4) Goto 1

)*

*A spoiler in parentheses!

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Wed Jun 23, 2010 11:54 pm UTC
by Tirian
I found Metatron to be much easier than Ophanim. Here's the gist of my solution.

Spoiler:
Write a full adder, allowing the character after B to be G/Y to represent the carry flag.


Huh. Now that I've written that, I wonder if Ophanim shouldn't be solvable with small and obvious tweaks to that machine.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Thu Jun 24, 2010 12:16 am UTC
by Xanthir
Hahaha, the kongregate version (and presumably the pleasingfungus version) now contains a "malevolence engine" that "sees all weakness". Looks like it does total-coverage checking up to length 12, and then immediately shows you a failing example if it found one.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Thu Jun 24, 2010 12:20 am UTC
by jestingrabbit
Tirian wrote:I found Metatron to be much easier than Ophanim. Here's the gist of my solution.

Spoiler:
Write a full adder, allowing the character after B to be G/Y to represent the carry flag.


That's the guts of my algorithm too.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Thu Jun 24, 2010 12:31 am UTC
by mike-l
Tirian wrote:I found Metatron to be much easier than Ophanim. Here's the gist of my solution.

Spoiler:
Write a full adder, allowing the character after B to be G/Y to represent the carry flag.


Huh. Now that I've written that, I wonder if Ophanim shouldn't be solvable with small and obvious tweaks to that machine.


Interesting. I'm not sure how you deal with some things, I'll have to look at some other solutions once I finally cram mine in.
Edit: I think I understand what you're saying now, definitely more efficient than mine. I think I'll still find a way to get mine going though.


Ophanim I found pretty easy
Spoiler:
I compared the start of the string bitwise, and once they disagreed I either added or didn't add a character to one of the strings, then compared length.


As for the Malevolence Engine, anyone know why it's telling me I cheated when I use Berengal's solution to Robo-Children?

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Thu Jun 24, 2010 1:03 am UTC
by Xanthir
mike-l wrote:As for the Malevolence Engine, anyone know why it's telling me I cheated when I use Berengal's solution to Robo-Children?

That level in particular is prone to being solved by "cheating" and just using a long string of br readers. That isn't a general solution, though - it only works as long as the imbalance between blue and red never gets too great. I'll bet that the Malevolence Engine just checks to see if the solution uses a whole bunch of br readers and declares you a cheater automatically.

Berengal's solution isn't actually prone to this - I think it can correctly solve any arbitrary string. But the Malevolence Engine doesn't seem to be smart enough to figure that out.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Thu Jun 24, 2010 8:15 am UTC
by mike-l
Xanthir wrote:
mike-l wrote:As for the Malevolence Engine, anyone know why it's telling me I cheated when I use Berengal's solution to Robo-Children?

That level in particular is prone to being solved by "cheating" and just using a long string of br readers. That isn't a general solution, though - it only works as long as the imbalance between blue and red never gets too great. I'll bet that the Malevolence Engine just checks to see if the solution uses a whole bunch of br readers and declares you a cheater automatically.

Berengal's solution isn't actually prone to this - I think it can correctly solve any arbitrary string. But the Malevolence Engine doesn't seem to be smart enough to figure that out.


I agree it works on any string, though I've seen solutions that look 'like' his that don't, so I guess that makes sense. I tried it with reduction by 2s instead of 5s and it still called me a cheater :(

I also got a Metatron to pass the malevolence engine, even though it will fail on inputs where the 2nd number is sufficiently longer than the first
Spoiler:
?lvl=31&code=c6:6f2;c6:7f1;c6:8f1;c6:9f1;c6:10f1;c6:11f1;r7:4f2;c7:6f2;c7:9f2;b7:10f1;r7:11f0;q8:3f5;p8:4f1;c8:5f1;c8:6f1;b8:7f1;g8:8f1;i8:9f3;q8:10f4;g8:11f0;c9:3f2;b9:4f0;c9:5f3;i9:6f1;g9:7f3;r9:8f3;c9:9f3;p9:10f3;c9:11f0;c10:5f0;c10:6f0;b10:7f1;y10:8f1;i10:9f2;q10:10f6;c10:11f0;c11:3f2;b11:4f2;q11:5f1;b11:7f2;c11:9f0;r11:10f1;c12:4f3;p12:5f3;q12:6f6;p12:7f3;c13:3f0;r13:4f0;q13:5f5;r13:7f0;c13:9f2;r13:10f1;c14:5f2;c14:6f2;r14:7f1;y14:8f1;i14:9f3;q14:10f0;c14:11f2;b15:4f2;c15:5f3;i15:6f5;g15:7f3;r15:8f3;c15:9f3;p15:10f7;c15:11f2;q16:3f1;p16:4f5;c16:5f1;c16:6f1;r16:7f1;g16:8f1;i16:9f2;q16:10f2;y16:11f2;r17:4f0;c17:6f0;c17:9f0;b17:10f1;b17:11f2;c18:6f0;c18:7f1;c18:8f1;c18:9f1;c18:10f1;c18:11f1;c12:8f3;c12:9f3;c12:10f3;q12:11f7;b11:11f3;r13:11f3;q12:12f0;p11:12f6;r11:13f1;b13:13f1;p13:12f4;y12:2f2;g10:3f2;g15:3f0;c12:3f3;c14:3f0;g13:2f1;r13:1f2;r14:1f2;r15:1f2;r16:1f2;r17:1f2;r18:1f3;r18:2f0;r17:2f0;r16:2f0;r15:2f0;r14:2f3;


It can be corrected by changing the end where the carry is changed to a 1/0 to actually adding it, but I had space problems yet again, so I just guaranteed that for inputs of size <13 that everything in front of the last carry was 0.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Fri Jun 25, 2010 8:46 am UTC
by PleasingFungus
Xanthir wrote:Hahaha, the kongregate version (and presumably the pleasingfungus version) now contains a "malevolence engine" that "sees all weakness". Looks like it does total-coverage checking up to length 12, and then immediately shows you a failing example if it found one.

Only covers up to 12 for the faster-running levels, actually; goes down to a mere 6 for the slowest ones. I'm still twerking it.

(Thus mike-l's success with Metatron - testing for longer strings takes inordinately long. Exponential growth, etc... (3^n, in this case.))

Xanthir wrote:
mike-l wrote:As for the Malevolence Engine, anyone know why it's telling me I cheated when I use Berengal's solution to Robo-Children?

That level in particular is prone to being solved by "cheating" and just using a long string of br readers. That isn't a general solution, though - it only works as long as the imbalance between blue and red never gets too great. I'll bet that the Malevolence Engine just checks to see if the solution uses a whole bunch of br readers and declares you a cheater automatically.

Berengal's solution isn't actually prone to this - I think it can correctly solve any arbitrary string. But the Malevolence Engine doesn't seem to be smart enough to figure that out.

People keep guessing that! ("..the Malevolence Engine just checks to see if the solution uses a whole bunch of br readers...") No, what it's actually doing is running a 120-length string through, after the rest of the testing is completed, and checking to see if that works. If it doesn't, it figures you're using the daisy-chained-br-reader solution!

It's been a bit overaggressive, though. The problem you mentioned was a very stupid bug that meant that strings greater than length 50 didn't actually work. Not sure how I let that one slipped through. It's fixed now, but...

...I've just spent the last twenty minutes or so looking at Nabb's solution to the level. It's very interesting, but as far as I can tell, the center mechanism is equivalent to 'If there were more than 14 in a row of a color, reject'. Which... doesn't even make sense with the fixed tape length. (Maximum length is 50.)

If so, the Malevolence Engine is entirely right! (Though, arguably, perhaps somewhat overaggressive in calling him a 'cheater'.)

(If I'm wrong, please tell me. I don't like leaving bugs like this lying around.)

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Fri Jun 25, 2010 9:14 am UTC
by phlip
Yeah, I don't think Nabb's solution works... for one, I think it'll accept B27... it'll read the 27 blues and end up back at the top of the loop, at which point the tape will read GR, and then it'll go into the middle, read the G, read the R, write R and go out the exit.

What the bit in the middle seems to do is, effectively:

Code: Select all

take a string that's G followed by a string of R and B; remove the G
if string contains a red, or is empty:
   accept
else:
   infinite loop
Whereas I think it should be doing:

Code: Select all

take a string that's G followed by a string of R and B; remove the G
if the string is empty:
   accept
else:
   go back to the very start of the level do it again, or maybe pack in a more compact robo-children solution in the middle there, or something
since when it gets into the middle, it should accept iff the string has an equal number of reds and blues... (and the length of the string is strictly less than the length of the original string, by at least 26, so this process must end eventually).

[edit]
Wait, no, disregard all that.

Xanthir: I'd like to make a bug report: directly below the br switch in the dead centre of the grid is an East-over-South Bridge... your JS viewer thing is showing that as a simple South Conveyor. Also, Firefox doesn't show any of the SVGs and I always forget I have to load up Chrome to view it, though I guess that's more a bug report for my memory.

Then yeah, I think it's not working in a different way - if it gets into the middle of the grid with an empty string it'll go through, but if it has any reds or blues (ie if it made it past the bottom of the big ring when it was doing the first stage) then it'll fail.

An example of a string it rejects when it should accept is B14R14 - it goes into the middle with GRB. Reads the G, then reads and writes the R, moving that to the end (so it's now BR). Then it writes Y, and moves all the R/B to the end (YBR). Then it writes a G, reads the Y, tries to read the G and fails.

[edit again]
Here's a change to Nabb's solution that should work:

Code: Select all

?lvl=18&code=g12:3f3;p12:4f7;i12:11f1;p9:4f7;p8:4f0;p8:5f0;p8:6f0;p8:7f0;p8:8f0;c8:3f2;c9:3f3;p8:10f3;p9:10f3;c7:10f1;p8:9f6;c7:9f2;i12:10f5;p11:4f1;p10:4f1;p16:6f2;p16:7f2;p16:8f2;p16:9f2;p16:10f4;p16:11f3;c17:10f0;c17:11f1;p15:11f3;b13:10f3;p13:11f3;p14:11f3;c12:9f3;p11:10f5;r11:11f1;p10:10f3;p13:4f1;c15:4f3;p15:5f7;c16:4f0;p16:5f2;c13:5f1;i14:4f4;i14:5f0;c14:3f0;i13:3f0;b11:6f3;c11:7f2;q12:5f0;p12:6f3;i12:7f7;r13:6f2;c13:7f2;c14:6f1;c14:7f1;c12:8f3;


[edit yet again]
PleasingFungus: it looks like http://www.pleasingfungus.com/ is still using a pre-Malevolence version of the game... did you miss it while updating?

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Fri Jun 25, 2010 6:13 pm UTC
by Xanthir
phlip wrote:Xanthir: I'd like to make a bug report: directly below the br switch in the dead centre of the grid is an East-over-South Bridge... your JS viewer thing is showing that as a simple South Conveyor.

Fixed - I was doing a bare "if(this.bottomdir){}" check, meaning for it to fail when bottomdir was undefined, but forgot that it'd fail when bottomdir was 0 too.

Also, Firefox doesn't show any of the SVGs and I always forget I have to load up Chrome to view it, though I guess that's more a bug report for my memory.

Yeah, Firefox doesn't support SVG in <img>, only in <object> and <iframe>. Neither of those allow scaling like I need (I produced all the images as 15px square, and then just scale them up for display).

Edit: Haha, IE9 preview 3 *almost* works - it handles the javascript correctly, and most of the SVG, but the conveyor belts are all screwed up.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Fri Jun 25, 2010 7:15 pm UTC
by PleasingFungus
phlip wrote:-snip-

Then yeah, I think it's not working in a different way - if it gets into the middle of the grid with an empty string it'll go through, but if it has any reds or blues (ie if it made it past the bottom of the big ring when it was doing the first stage) then it'll fail.

Yeah, this is exactly what I was saying. We have reached consensus.

phlip wrote:Here's a change to Nabb's solution that should work:

Code: Select all

?lvl=18&code=g12:3f3;p12:4f7;i12:11f1;p9:4f7;p8:4f0;p8:5f0;p8:6f0;p8:7f0;p8:8f0;c8:3f2;c9:3f3;p8:10f3;p9:10f3;c7:10f1;p8:9f6;c7:9f2;i12:10f5;p11:4f1;p10:4f1;p16:6f2;p16:7f2;p16:8f2;p16:9f2;p16:10f4;p16:11f3;c17:10f0;c17:11f1;p15:11f3;b13:10f3;p13:11f3;p14:11f3;c12:9f3;p11:10f5;r11:11f1;p10:10f3;p13:4f1;c15:4f3;p15:5f7;c16:4f0;p16:5f2;c13:5f1;i14:4f4;i14:5f0;c14:3f0;i13:3f0;b11:6f3;c11:7f2;q12:5f0;p12:6f3;i12:7f7;r13:6f2;c13:7f2;c14:6f1;c14:7f1;c12:8f3;

Nice! It works both on the old and current (in-development) version, with zero accusations of cheating. Pity it went off the handle on Nabb's, but now we have a Working Solution, and really, what could be more important?

phlip wrote:PleasingFungus: it looks like http://www.pleasingfungus.com/ is still using a pre-Malevolence version of the game... did you miss it while updating?

Pretty sure it's not! It was showing up as an older version for me too just now, which was worrying - I thought it might be a problem with the FTP client I was using? - but a force-refresh cured the problem nicely.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sat Jun 26, 2010 2:25 am UTC
by phlip
PleasingFungus wrote:but a force-refresh cured the problem nicely.

Blarg, sometimes I forget how overactive Flash's cache is...

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sat Jun 26, 2010 11:33 am UTC
by turingnow
phlip wrote:Here's a change to Nabb's solution that should work:

Code: Select all

?lvl=18&code=g12:3f3;p12:4f7;i12:11f1;p9:4f7;p8:4f0;p8:5f0;p8:6f0;p8:7f0;p8:8f0;c8:3f2;c9:3f3;p8:10f3;p9:10f3;c7:10f1;p8:9f6;c7:9f2;i12:10f5;p11:4f1;p10:4f1;p16:6f2;p16:7f2;p16:8f2;p16:9f2;p16:10f4;p16:11f3;c17:10f0;c17:11f1;p15:11f3;b13:10f3;p13:11f3;p14:11f3;c12:9f3;p11:10f5;r11:11f1;p10:10f3;p13:4f1;c15:4f3;p15:5f7;c16:4f0;p16:5f2;c13:5f1;i14:4f4;i14:5f0;c14:3f0;i13:3f0;b11:6f3;c11:7f2;q12:5f0;p12:6f3;i12:7f7;r13:6f2;c13:7f2;c14:6f1;c14:7f1;c12:8f3;



Thanks Nabb and philip. That's a beautiful solution for my favorite level. I made it even faster.
Spoiler:
Image

Code: Select all

?lvl=18&code=p7:8f0;p7:9f0;p17:8f2;p17:9f2;p17:10f2;i12:10f5;i12:11f1;p17:7f2;p7:7f0;p17:6f2;p7:6f0;p7:3f0;p7:4f0;p8:3f7;p9:3f1;p10:3f1;p11:3f1;p12:3f7;p13:3f1;p14:3f1;p15:3f1;p16:3f7;p17:3f2;p17:4f2;p7:5f0;p17:5f2;p7:10f0;p8:10f5;y9:10f2;g17:11f0;c7:11f2;c10:10f2;c11:10f2;c13:10f2;c14:10f2;c15:10f2;c16:10f2;c16:11f0;c15:11f0;c14:11f0;c13:11f0;c11:11f0;c10:11f0;c9:11f0;c8:11f1;c8:2f3;c16:2f3;c17:2f0;c7:2f2;c12:7f3;c12:9f3;c12:8f3;c10:4f1;c10:5f1;r11:4f2;p11:5f7;q12:4f3;p12:5f7;b13:4f0;p13:5f7;c14:4f1;c14:5f1;c12:6f3;


Thanks Pleasingfungus. I haven't spent so much time on a game since Ocarina of Time and Civilization 1 before that.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sat Jun 26, 2010 12:24 pm UTC
by Nabb
Sorry for posting an incorrect solution earlier. The G/Y branch was meant to be a square higher (directly below the R/B), so that after going through the middle section the yellow would put it back into the loop.

An updated solution that should hopefully be correct this time. B/Rs are more numerous now. No green is used at the start so we can terminate faster.
Spoiler:
Image

Code: Select all

?lvl=18&code=c7:2f2;p7:3f0;p7:4f0;p7:5f0;p7:6f0;p7:7f0;p7:8f0;c8:2f3;p8:3f7;p9:3f1;p10:3f1;p11:3f1;p12:3f7;p13:3f1;p14:3f1;p15:3f1;c16:2f3;p16:3f7;c17:2f0;p17:3f2;p17:4f2;p17:5f2;p17:6f2;p17:7f2;p17:8f2;c12:8f3;p7:10f0;c7:11f2;p8:10f5;c8:11f1;p9:10f3;p10:10f5;p11:10f5;g11:11f1;i12:10f7;i12:11f1;c13:10f2;c13:11f0;y14:10f3;p14:11f3;p15:11f5;p16:11f5;c16:12f1;p17:10f2;p17:11f2;c17:12f0;p7:9f0;p17:9f2;c12:9f3;c12:7f3;b12:4f3;p12:5f4;c12:6f3;r9:5f2;q10:5f1;b11:5f0;c10:4f1;


Edit) Aww, someone posted a very similar solution while I wasn't looking :(

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sat Jun 26, 2010 1:12 pm UTC
by Patashu
You guys might be interested in tasvideo's work/discussion on the game here: http://tasvideos.org/forum/viewtopic.ph ... sc&start=0

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 1:46 am UTC
by nekizalb
@Xanthir - Your javascript emulator is pretty nice. I had issues compiling Nix's C++ program (and I absolutly hate c++, so I wasn't very motivated to troubleshoot) and yours works just as well. I did notice a bug though.

Code: Select all

?lvl=1&code=c12:8f3;c12:6f3;c12:7f3;

produces
..s..
..v..
..v..
..v..
..e..

Code: Select all

?lvl=1&code=c12:6f2;c13:6f3;c13:7f3;c13:8f0;c12:8f3;

produces
..s..
..>v.
...v.
..v<.
..e..

If you load the first code into your emulator, and then the second one, without reloading the page, you get

..s..
..>v.
..vv.
..v<.
..e..

The emulator retains parts from the first design where there are blank spaces in the second design. It doesn't affect this particular case, but I've had a couple problems testing other designs because of this retention. Seems like the board just needs to be cleared before loading new designs *shrug*

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 8:19 am UTC
by Xanthir
Ah, yes, thanks. I usually don't load more than one board before refreshing to grab new code, so I didn't notice that I was neglecting to clear the board. Thanks!

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 11:28 am UTC
by phlip
Hey, Xanthir, in case you didn't see it in amongst the huge wall of text I posted:
phlip wrote:Xanthir: I'd like to make a bug report: [In this machine] directly below the br switch in the dead centre of the grid is an East-over-South Bridge... your JS viewer thing is showing that as a simple South Conveyor. Also, Firefox doesn't show any of the SVGs and I always forget I have to load up Chrome to view it, though I guess that's more a bug report for my memory.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 8:09 pm UTC
by Xanthir
phlip wrote:Hey, Xanthir, in case you didn't see it in amongst the huge wall of text I posted:
phlip wrote:Xanthir: I'd like to make a bug report: [In this machine] directly below the br switch in the dead centre of the grid is an East-over-South Bridge... your JS viewer thing is showing that as a simple South Conveyor. Also, Firefox doesn't show any of the SVGs and I always forget I have to load up Chrome to view it, though I guess that's more a bug report for my memory.
Xanthir wrote:
phlip wrote:Xanthir: I'd like to make a bug report: directly below the br switch in the dead centre of the grid is an East-over-South Bridge... your JS viewer thing is showing that as a simple South Conveyor.

Fixed - I was doing a bare "if(this.bottomdir){}" check, meaning for it to fail when bottomdir was undefined, but forgot that it'd fail when bottomdir was 0 too.

Also, Firefox doesn't show any of the SVGs and I always forget I have to load up Chrome to view it, though I guess that's more a bug report for my memory.

Yeah, Firefox doesn't support SVG in <img>, only in <object> and <iframe>. Neither of those allow scaling like I need (I produced all the images as 15px square, and then just scale them up for display).

Edit: Haha, IE9 preview 3 *almost* works - it handles the javascript correctly, and most of the SVG, but the conveyor belts are all screwed up.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 11:03 pm UTC
by phlip
Bah, I somehow missed that post entirely. Sorry.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Sun Jun 27, 2010 11:19 pm UTC
by Xanthir
No problem; I enjoyed the opportunity to respond like an asshole. ^_^

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Mon Jun 28, 2010 1:32 pm UTC
by kriel
Posting so I get reply notifications. I have nothing worthwhile to contribute other than bitching about how maddening this game is. =D

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Mon Jun 28, 2010 7:18 pm UTC
by Axidos
kriel wrote:Posting so I get reply notifications. I have nothing worthwhile to contribute other than bitching about how maddening this game is. =D

You could also use Subscribe Topic, which sits in the left side of the bar at the very bottom of a topic page.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Mon Jun 28, 2010 10:04 pm UTC
by levicc00123
I'm trying to solve robomecha and it's kicking my rear-end, could I get a hint to help solve it and similar problems?

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Mon Jun 28, 2010 10:13 pm UTC
by Xanthir
levicc00123 wrote:I'm trying to solve robomecha and it's kicking my rear-end, could I get a hint to help solve it and similar problems?

The basic lesson robomecha is trying to teach you is how to read the last character of a string, as this is used in most of the later levels.

First spoiler:
Spoiler:
Obviously, you'll be using a green or yellow dot to mark the end of the string. Now, every time you read a red or blue dot, the *next* character is either a r/b (more tape) or a g/y (end of tape). You don't want to accidentally read an extra r/b, but luckily trying to read a g/y won't affect anything if the next color is actually an r/b.


Second spoiler:
Spoiler:
So read your initial r/b, then check for g/y. If you see one, then you know that the r/b you just read was the last thing on the tape, and you can act accordingly. If you don't, then you know the next thing on the tape is another r/b, so you can safely cycle the r/b you just read back onto the tape and do it again.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 1:16 am UTC
by kriel
Axidos wrote:
kriel wrote:Posting so I get reply notifications. I have nothing worthwhile to contribute other than bitching about how maddening this game is. =D
You could also use Subscribe Topic, which sits in the left side of the bar at the very bottom of a topic page.
I don't want to get an email, I want to have it show up in my egosearch.

EDIT: To make this ontopic, I can't figure out how to figure out what the LAST bit is using only R/B switches.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 3:12 am UTC
by Patashu
kriel wrote:
Axidos wrote:
kriel wrote:Posting so I get reply notifications. I have nothing worthwhile to contribute other than bitching about how maddening this game is. =D
You could also use Subscribe Topic, which sits in the left side of the bar at the very bottom of a topic page.
I don't want to get an email, I want to have it show up in my egosearch.

EDIT: To make this ontopic, I can't figure out how to figure out what the LAST bit is using only R/B switches.

You can't do it with only R/B switches - you need to use green as well.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 3:50 am UTC
by kriel
Patashu wrote:
kriel wrote: I can't figure out how to figure out what the LAST bit is using only R/B switches.
You can't do it with only R/B switches - you need to use green as well.
See: Robobears, Milidogs. Both of which (I think) require finding the last bit, and both of which only give you R/B switches and conveyors.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 5:05 am UTC
by phlip
You can destructively read through the entire string and figure out whether the last one is red or blue without g/y, and ending up with an empty tape... Robobears and Millidogs require that. But to nondestructively read the last symbol off the tape, and leave all the others intact requires g/y.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 1:50 pm UTC
by kriel
Yay, least efficient politicians ever! (out of patience, btw)
Spoiler:

Code: Select all

?lvl=22&code=y12:2f3;p12:3f3;r13:3f0;p11:3f4;r11:2f3;q10:3f4;b11:4f1;c10:4f3;q8:6f4;c8:7f3;r9:5f3;p9:6f4;b9:7f1;y10:5f3;p10:6f3;r11:6f0;q6:9f4;c6:10f3;r7:8f3;p7:9f4;b7:10f1;y8:8f3;p8:9f7;b9:9f0;c14:4f1;c14:3f1;c13:2f0;c14:2f0;c12:6f3;c14:5f1;c12:12f3;c6:11f2;c7:11f2;c8:11f2;c9:11f2;c10:11f2;c11:11f2;c12:9f3;c12:8f3;q12:4f2;p12:5f3;c12:7f3;c12:10f3;i12:11f5;c13:11f2;c14:11f1;c14:10f1;c14:9f1;c14:8f1;c14:7f1;c14:6f1;

Spoiler:
Find a Blue anywhere in the string, then a red anywhere in the string, then a blue anywhere in the string. It times out because it has to cycle the entire string for each test.


Also, figured out how to do the destructive tape read. I'm not quite sure how you helped, phlip, but I feel like I owe you a thanks.

Re: Manufactoria - Make Turing Machines with Conveyor Belts

Posted: Tue Jun 29, 2010 2:27 pm UTC
by Xanthir
@kriel:
Spoiler:
Hah, wow, that is fairly innefficient. Now step it up a notch. Have the first thing read a red *or* a blue, and then make two separate tracks, one for finding two blues in the rest of the string, and one for finding a red and blue in the rest of the string. That way you can pull off a full set of three with every pass.

There are even cleverer solutions, but they can wait until you've advanced your knowledge further.