Renvoie la dernière couleur de l'entrée dans Manufactoria

10

Ce puzzle est le suivant de ma série de défis Manufactoria.

Contexte

Manufactoria est un langage de programmation de jeu / bidimensionnel. Le joueur doit créer des programmes qui manipuleront une file d'attente pour arriver à la sortie souhaitée. Il est facile à apprendre mais difficile à maîtriser, il se prête donc à créer une grande variété de défis. Si vous ne savez pas de quoi je parle, je vous conseille de jouer aux premiers niveaux du didacticiel du jeu.

Défi

Votre défi est de créer une machine qui renverra le tout dernier élément de la chaîne d'entrée. Pour rendre cela encore plus difficile, la chaîne d'entrée peut être n'importe quelle combinaison des quatre couleurs .

Le niveau personnalisé officiel à utiliser se trouve ici:

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:b|:|grybrrgrbrgr r; 13; 3; 0 ;

Le défi de cette semaine est principalement axé sur l'idée de la compression. J'ai choisi ce défi pour exiger un énorme désordre de bandes transporteuses. Le fait que les quatre couleurs apparaissent dans l'entrée signifie qu'il est très difficile de stocker des informations.

Bien que je n'aie pas tenté de compression, mon premier prototype fonctionnel comportait 114 pièces et s'insérait dans l'espace 13x13 avec presque pas de place à revendre.

Notation

Le but de ce défi est d'utiliser le moins possible de pièces. Le score est le nombre de pièces placées et le score le plus bas l'emporte.

Bien qu'il n'y ait que 8 cas de test, votre création devrait pouvoir théoriquement fonctionner sous n'importe quel cas de test. Les cas de test fournis sont à des fins de débogage.

Exemples

in:  byrgyrbyrrgry
out: y
in:  ggryybrryr
out: r
in:         #don't you love degenerate cases?
out:
in:  gyrbrygbrygbyrb
out: b
PhiNotPi
la source

Réponses:

6

65 pièces

entrez la description de l'image ici Pour être honnête, je n'ai même pas eu l'idée de mettre des paires de lecteurs directement les uns contre les autres avant de l'avoir vu dans les solutions déjà publiées. Mais plus tard, j'ai commencé à trouver de nombreuses astuces d'optimisation.

Lien

feersum
la source
... vous pouvez mettre des bandes transporteuses les unes sur les autres?
SuperJedi224
7

73 69 pièces

entrez la description de l'image ici

L'organisation sous forme de bande semble économiser beaucoup d'appareils. De gauche à droite, les colonnes sont "la dernière couleur était jaune", "la dernière couleur était bleue", deux colonnes de périphériques, "la dernière couleur était rouge", "la dernière couleur était verte" et "tout est terminé".

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 | rrrrrrrrrrrr: r; 13; 3 ;

Keith Randall
la source
1
J'ai construit comme cinq solutions différentes pour celle-ci et elles étaient toutes de plus de 100 pièces. Votre solution me souffle.
boîte à pain le
4

91 88 pièces

entrez la description de l'image ici

Le gadget supérieur gauche gère le vert / bleu, le gadget inférieur droit gère le rouge / jaune.

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
la source
+1 - plusieurs idées: décaler le diviseur supérieur rouge / bleu de trois places vers le sud, vous pouvez enregistrer la partie inférieure gauche (décaler une vers la gauche)
Howard
4

99 90 84 81 Pièces

dernière ligne - nouvelles optimisations

Oui - c'est un gâchis de bandes transporteuses. Mais finalement beaucoup moins de 100 pièces - également grâce à la volatilité.

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_col__color_OUT_: _a_series_of_colors_OUT: _ byrgyrbyrrgry: y | bbrrbryyyrrbr: r | ggryybrryr: ​​r | b: b |: | gyrbrygbrygbyrb:b | brbrbryyrygbrg: g | rrrrrrrrrrr: r; 13; 3; 0;

Howard
la source
Un petit réarrangement des bandes transporteuses a réduit ce nombre à 81 pièces. Voyez ici . De plus, changer les couleurs autour semble le rendre plus rapide (même si cela n'a pas vraiment d'importance) de 6h23 à 5h38. Voir cette pâte pour l'URL.
Volatilité
@Volatility Merci pour les 3 parties. Le semble plus rapide dépend totalement des cas de test, donc il n'a pas d' importance ;-)
Howard
2

75 pièces

Capture d'écran du programme Manufactoria en 75 parties pour extraire la dernière couleur d'entrée

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!; IN: _a_series_of_colors_OUT: _the_very_last_color; byrgyrbyrrgry: y | bbrrbryyyrrbr: r | ggrybryb: b: g | rrrrrrrrrr: r; 13; 3; 0;

Oui, je sais, c'est six parties de plus que la solution de Keith Randall , mais que puis-je dire? J'aime la symétrie.

Ilmari Karonen
la source