Zwraca ostatni kolor danych wejściowych w Manufakturze

10

Ta łamigłówka jest kolejnym z mojej serii wyzwań Manufaktury.

tło

Manufaktura jest językiem programowania gier / dwuwymiarowości. Gracz musi utworzyć programy, które będą manipulować kolejką, aby osiągnąć pożądane wyjście. Jest łatwy do nauczenia się, ale trudny do opanowania, więc pozwala tworzyć różnorodne wyzwania. Jeśli nie wiesz, o czym mówię, radzę rozegrać kilka pierwszych poziomów samouczka.

Wyzwanie

Twoim wyzwaniem jest stworzenie maszyny, która zwróci ostatni element ciągu wejściowego. Aby uczynić to jeszcze trudniejszym, ciąg wejściowy może być dowolną kombinacją wszystkich czterech kolorów .

Oficjalny niestandardowy poziom, który należy zastosować, znajduje się tutaj:

http://pleasingfungus.com/Manufactoria/?ctm=Last_in_Line!;IN:_a_series_of_colors_OUT:_the_very_last_color;byrgyrbyrrgry:y|bbrrbryyyrrbr:r|ggryybrryr:r|b:brody:rrrrbr r; 13; 3; 0 ;

Wyzwanie w tym tygodniu skupia się głównie na idei kompresji. Wybrałem to wyzwanie, aby wymagać ogromnego bałaganu taśm przenośnikowych. Fakt, że wszystkie cztery kolory pojawiają się na wejściu oznacza, że ​​bardzo trudno jest przechowywać informacje.

Chociaż nie próbowałem kompresji, mój pierwszy działający prototyp składał się z 114 części i mieścił się w przestrzeni 13x13, prawie bez miejsca.

Punktacja

Celem tego wyzwania jest wykorzystanie kilku części, jak to możliwe. Wynik to liczba umieszczonych części, a najniższy wynik wygrywa.

Chociaż istnieje tylko 8 przypadków testowych, twoje dzieło powinno być w stanie teoretycznie funkcjonować w każdym przypadku testowym. Podane przypadki testowe służą do celów debugowania.

Przykłady

in:  byrgyrbyrrgry
out: y
in:  ggryybrryr
out: r
in:         #don't you love degenerate cases?
out:
in:  gyrbrygbrygbyrb
out: b
PhiNotPi
źródło

Odpowiedzi:

6

65 części

wprowadź opis zdjęcia tutaj Szczerze mówiąc, nie mogłem nawet wymyślić idei stawiania par czytelników bezpośrednio przeciwko sobie, dopóki nie zobaczyłem tego w opublikowanych już rozwiązaniach. Ale później zacząłem wymyślać wiele sztuczek optymalizacyjnych.

Połączyć

feersum
źródło
... możesz umieścić na sobie taśmy przenośnika?
SuperJedi224
7

73 69 części

wprowadź opis zdjęcia tutaj

Porządkowanie w formie paska wydaje się oszczędzać wiele urządzeń. Od lewej do prawej kolumny to „ostatni kolor był żółty”, „ostatni kolor był niebieski”, dwie kolumny urządzeń, „ostatni kolor był czerwony”, „ostatni kolor był zielony” i „wszystko gotowe”.

http://pleasingfungus.com/Manufactoria/?lvl=35&code=c10:8f2;q11:6f5;i11:7f0;p11:8f5;i12:6f4;q12:7f5;p12:8f5;c13:8f0;i10:7f6 ; i10: 6f6; i13: 6f7; i13: 7f7; c9: 6f3; c9: 7f3; c9: 8f3; q11: 9f3; q12: 9f3; c9: 9f2; i10: 9f3; i13: 9f2; g12: 12f3; c10 : 10f1; c13: 11f1; c13: 10f1; c10: 11f1; p12: 2f3; q12: 3f3; c13: 2f3; i13: 3f5; c11: 2f0; c10: 2f3; i10: 3f1; c11: 3f0; c9: 3f3 ; p11: 11f3; p12: 10f3; i11: 10f1; i12: 11f5; c14: 3f3; c14: 6f3; c14: 7f3; c14: 8f3; c14: 9f0; i14: 4f5; c14: 5f3; i13: 4f5; c13 : 5f3; y11: 12f3; c11: 13f2; c9: 4f3; c9: 5f3; c10: 4f3; c10: 5f3; b11: 5f1; c11: 4f2; c12: 4f2; c15: 4f3; c15: 5f3; c15: 6f3 ; c15: 8f3; c15: 7f3; c15: 9f3; c15: 10f3; c15: 11f3; c15: 12f3; c15: 13f0; c14: 13f0; c13: 13f0; r12: 5f1; & ctm = Last_in_Line!; IN: _a_series_of_colors _the_very_last_color; byrgyrbyrrgry: y | bbrrbryyyrrbr: r | ggryybrryr: ​​r | b: b |: | gyrbrygbrygbyrb: b | brbrbryyrygbrg: g | rrrrrrrrrrr: r; 13; 3 ;

Keith Randall
źródło
1
Zbudowałem jak pięć różnych rozwiązań tego i wszystkie miały ponad 100 części. Twoje rozwiązanie mnie zaskakuje.
breadbox
4

91 88 części

wprowadź opis zdjęcia tutaj

Lewy górny gadżet obsługuje zielony / niebieski, prawy dolny gadżet obsługuje czerwony / żółty.

http://pleasingfungus.com/Manufactoria/?lvl=35&code=q8:6f5;c8:7f2;c9:5f2;p9:6f4;q9:7f2;i10:5f7;c10:6f0;p10:7f3;i12:6f6 ; i13: 6f6; c13: 11f0; i14: 6f6; p14: 10f3; r14: 11f0; c15: 6f0; p15: 9f6; q15: 10f0; c15: 11f2; c16: 6f0; q16: 9f5; c16: 10f0; i16 : 11f3; c17: 6f0; c17: 7f1; c17: 8f1; c17: 9f1; c17: 11f1; b10: 8f2; i11: 8f7; c12: 4f3; c12: 7f3; c12: 8f3; i12: 9f5; i12: 10f1 ; c12: 11f3; i12: 12f5; c14: 3f3; c14: 4f3; c9: 4f2; i10: 4f7; i11: 4f7; c7: 8f2; i8: 8f3; c9: 8f3; c9: 9f2; c10: 9f2; i11 : 9f7; i13: 9f7; c14: 9f2; c13: 10f0; i11: 10f6; c10: 10f0; c9: 10f0; c8: 10f1; c8: 9f1; c15: 7f0; i14: 7f6; i13: 7f6; c15: 8f0 ; i14: 8f6; c13: 8f3; c8: 4f2; c16: 7f0; g8: 5f1; y16: 8f1; q12: 3f7; c13: 2f3; i13: 3f5; c13: 4f3; i11: 3f6; c10: 3f3; p12 : 2f7; c11: 2f3; c7: 6f3; c7: 7f3; c11: 5f3; i11: 6f6; c11: 7f3; c12: 5f3; c13: 5f3; c14: 5f3; c17: 10f1; c11: 11f3; c11: 12f2 ; c13: 12f2; c14: 12f2; c15: 12f2; c16: 12f1; & ctm = Last_in_Line!; IN: _a_series_of_colors_OUT: _the_very_last_color; byrgyrbyrrgry:y | bbrrbryyyrrbr: r | ggryybrryr: ​​r | b: b |: | gyrbrygbrygbyrb: b | brbrbryyrygbrg: g | rrrrrrrrrr: r; 13; 3; 0;

Keith Randall
źródło
+1 - kilka pomysłów: przesuń górny czerwony / niebieski rozdzielacz o trzy miejsca na południe, możesz zapisać dolną lewą część (przesunąć jedno w lewo)
Howard
4

99 90 84 81 Części

ostatni w kolejce - dalsze optymalizacje

Tak - to bałagan z przenośników. Ale w końcu znacznie mniej niż 100 części - również dzięki zmienności.

http://pleasingfungus.com/Manufactoria/?lvl=33&code=p12:9f3;i12:2f1;c11:9f0;c9:8f2;c10:8f2;i11:8f7;i12:8f5;i12:4f5;i12:5f5 ; c12: 6f3; i12: 7f1; i13: 9f3; c14: 8f3; i13: 8f3; q12: 3f3; q15: 4f7; p15: 5f7; c14: 5f3; i14: 6f1; i14: 7f1; i13: 7f0; i13 : 6f0; i13: 5f4; c11: 7f3; c10: 7f2; c15: 7f0; c16: 5f3; c16: 7f0; c11: 2f3; c13: 2f0; c14: 2f0; c15: 2f0; c16: 3f1; c16: 4f1 ; c16: 2f0; c17: 4f0; c17: 5f1; c17: 7f1; c17: 8f1; c8: 8f1; c8: 7f1; c8: 5f1; c8: 4f2; c16: 6f3; c17: 6f1; g15: 6f0; c8 : 6f1; c8: 9f1; c8: 10f1; c9: 9f1; c9: 10f0; p10: 9f7; q10: 10f3; b10: 11f2; c11: 10f2; c11: 11f2; i12: 10f5; c12: 11f3; c13: 10f1 ; c13: 11f0; c16: 10f2; c17: 9f1; c17: 10f1; c12: 12f3; p14: 9f7; q14: 10f7; r14: 11f0; c15: 9f1; c15: 8f1; c15: 10f2; c11: 3f3; q11 : 4f3; p11: 5f3; y11: 6f2; c10: 5f3; c10: 6f3; c9: 4f2; c10: 4f2; c13: 3f3; c13: 4f2; c14: 4f2; & ctm = Last_in_Line!; IN: _a_series_of_colours_very: byrgyrbyrrgry: y | bbrrbryyyrrbr: r | ggryybrryr: ​​r | b: b |: | gyrbrygbrygbyrb:b | brbrbryyrygbrg: g | rrrrrrrrrr: r; 13; 3; 0;

Howard
źródło
Nieznaczne przestawienie taśm przenośników zredukowało to do 81 części. Zobacz tutaj . Ponadto zmiana kolorów wydaje się przyspieszać (choć tak naprawdę nie ma to znaczenia) z 6:23 do 5:38. Zobacz tę pastę dla adresu URL.
Zmienność
@ Lotność Dziękujemy za 3 części. Wydaje się szybciej całkowicie zależy od przypadków testowych, więc to naprawdę nie ma znaczenia ;-)
Howard
2

75 części

Zrzut ekranu 75-częściowego programu Manufaktury w celu wyodrębnienia ostatniego koloru wejściowego

http://pleasingfungus.com/Manufactoria/?lvl=34&code=c11:9f1;q11:11f3;p11:12f7;g11:13f2;i12:9f1;i12:10f1;i12:11f1;i12:12f5;p13:9f7 ; i13: 11f1; i13: 12f5; i14: 11f0; q13: 10f3; c14: 9f0; c15: 11f0; c14: 12f1; i14: 10f4; c15: 9f3; c15: 10f3; c10: 12f1; i10: 11f0; i10 : 10f0; c10: 9f1; c9: 11f1; c9: 10f1; c9: 9f1; b13: 13f0; c11: 10f0; c9: 6f2; c9: 7f1; c9: 8f1; c10: 5f3; i10: 6f5; i10: 7f1 ; c10: 8f2; r11: 4f2; i11: 5f0; i11: 6f4; q11: 7f5; p11: 8f1; c12: 4f3; i12: 5f1; i12: 6f5; i12: 7f5; i12: 8f5; y13: 4f0; p13 : 5f1; q13: 6f5; c13: 7f2; c13: 8f3; c14: 5f3; i14: 6f5; i14: 7f5; c14: 8f3; c15: 6f3; c15: 7f3; c15: 8f3; p12: 2f7; q12: 3f3 ; c11: 3f0; i14: 3f5; c13: 3f2; c15: 3f3; c15: 4f3; c15: 5f3; c14: 4f3; c10: 4f3; c9: 5f3; c9: 4f3; c9: 3f3; c10: 2f3; c14 : 2f3; C13: 2F2, C11: 2f0; i10: 3F1; & CTM = Last_in_Line, w: _a_series_of_colors_OUT: _the_very_last_color; byrgyrbyrrgry: y | bbrrbryyyrrbr: r | ggryybrryr: ​​r | b: b |: | gyrbrygbrygbyrb: b | brbrbryyrygbrg: g | rrrrrrrrrr: r; 13; 3; 0;

Tak, wiem, to sześć części więcej niż rozwiązanie Keitha Randalla , ale co mogę powiedzieć? Lubię symetrię.

Ilmari Karonen
źródło