५। ४३ भाग
http://pleasingfungus.com/Manufactoria/?lvl=33&code=c16:9f0;q15:9f3;q14:9f3;q13:9f3;c12:9f3;c16:10f1;r15:10f3;r14:10f3;b13:10f3 ; Q12: 10f4; P11: 10f4; C16: 11f1; i15: 11f7; प्रश्न 14: 11f7; प्रश्न 13: 11f7; Q12: 11f7; C11: 11f2; R15: 12f3; b14: 12f3; C12: 12f3; C15: 13f0; C14 : 13f0; C13: 13f0; R13: 12f3; y10: 3f3; C10: 4f2; g10: 5f1; q10: 6f4; Y11: 3f0; प्रश्न 11: 4f6; R11: 5f3; P11: 6f4; B11: 7f1; I12: 4f7 ; C12: 5f3; Q12: 6f0; G12: 2f3; C12: 3f3; p13: 4f6; Y13: 3f0; C13: 5f0; C12: 7f3; बी 12: 8f3; और CTM = Mod7; इनपुट: _binary_number_big_endian._Output: _that_binary_number_mod_7; bbb : | brrr: b | brrrr: br | bb: bb | bbrrb: brr। brrrrb: brb | bbrb: bbr; 13; 3; 1 ;
कीथ रान्डेल ने सबसे पहले इनपुट को एकरी में बदलने का विचार बहुत अच्छा था, इसलिए मैंने इसे चुरा लिया। ;-) आसानी से, मैंने अभी कुछ समय बाइनरी-टू-एकी कन्वर्टर्स के रूप में निर्मित करने में बिताया ।
यह डिजाइन अब उस बिंदु पर है जहां सिर्फ ऊपर से नीचे तक रोबोट को प्राप्त करने की आवश्यकता होती है अन्यथा बेकार के अतिरिक्त कन्वेयर की आवश्यकता होती है। आगे के किसी भी महत्वपूर्ण हिस्से में कटौती शायद लेआउट को लम्बा और संकरा करने के लिए फिर से डिज़ाइन करने से आएगी।
(* उस चुनौती के लिए आवश्यक है) डिजाइन एक 7 × 7 बोर्ड पर फिट होने के लिए, और बी) एकांतर आउटपुट लाल मार्करों में होना चाहिए। यदि आप उपरोक्त मशीन के बाइनरी-टू-अनरीरी कन्वर्टर भाग को देखते हैं, तो आप ध्यान देंगे कि एक या दो अतिरिक्त भागों के साथ, यह आसानी से किसी भी आवश्यकता को पूरा कर सकता है, लेकिन अफसोस, दोनों नहीं।)
यहां पिछला 58-भाग संस्करण है:
http://pleasingfungus.com/Manufactoria/?lvl=32&code=g12:2f3;q13:13f5;c14:13f0;c15:12f3;c9:6f2;c9:7f1;c9:8f1;c9:9f1;c10:4f3 ; C10: 5f3; i10: 6f5; C10: 7f2; C10: 9f0; B11: 3f2; P11: 4f1; C11: 5f1; P11: 6f2; P11: 7f2; C11: 8f3; P11: 9f3; B11: 10f2; C12 : 3f2; C12: 4f2; C12: 5f0; r12: 6f3; C12: 7f3; I12: 8f1; I12: 9f5; y12: 10f3; C13: 3f2; C13: 4f3; i13: 5f1; C13: 6f3; C13: 7f2 ; i13: 8f0; C13: 9f1; C14: 3f3; C14: 4f2; p14: 5f5; C14: 6F1; p14: 7f6; p14: 8f7; R14: 9f3; C15: 4f3; प्रश्न 15: 5f0; C15: 6f3; C15 : 7f3; i15: 8f6; C15: 9f3; प्रश्न 15: 10f7; C15: 11f3; r12: 12f2; p13: 12f7; b14: 12f0; b14: 11f3; बी 12: 11f3; Y14: 10f3; y15: 13f0; और CTM = Mod7 ; इनपुट: _binary_number_big_endian._Output: _that_binary_number_mod_7; bbb: | brrr: b | brrrr: br | bb: bb: bbrrb: brr: brbrrb: brb। Bbrb: bbrb; 13 ;
जैसा जन ड्वोरक के समाधान , यह भी एक 7 राज्य FSM पर आधारित है। मैंने स्क्रीनशॉट में प्रत्येक राज्य के अनुरूप गेट्स को लेबल किया है ताकि इसे पढ़ना आसान हो सके। राज्य मशीन, हालांकि, वास्तव में आसान हिस्सा है; मुश्किल हिस्सा गेट्स की न्यूनतम संख्या के साथ अंतिम आउटपुट उत्पन्न कर रहा है।
एक तरकीब जो मुझे उपयोगी लगी, वह थी फाइनल कॉपी लूप की जो बैरल-शिफ्ट को पीले मार्कर से अंत तक (जबकि हरे रंग की मार्कर से अलग करते हुए) लिखी गई है: इसने मुझे उच्च-क्रम आउटपुट बिट्स में पुनरावृत्ति का उपयोग करने की अनुमति दी आउटपुट उत्पन्न करने के रूप में:
0: Y ->
1: BY -> B
2: YBR -> BR
3: YBB -> BB
4: RYBR -> BRR
5: BYBR -> BRB
6: RYBB -> BBR
यह मुझे आउटपुट आउटपुट 2, 4 और 5 (जो सभी के साथ शुरू होता है BR
) और 3 और 6 (जो शुरू होता है BB
) के लिए आउटपुट पथ को संयोजित करने देता है ।