क्या आप बार में बारकोड कर सकते हैं?


12

मेलबर्न के piNapple बार में आपका स्वागत है। सभी बेहतरीन कोड गोल्फर यहां अपने लैपटॉप, सैंपल कॉकटेल और प्रोग्रामिंग के साथ बुरी तरह से बढ़ रहे हैं।

मुझे लगता है कि आखिरी बिंदु पर फिर से विचार करने की विशेष आवश्यकता है। बुरी तरह से बढ़ जाना। अल्कोहल प्रोग्रामिंग लॉजिक के लिए अजीब चीजें कर सकता है।

इसलिए - कुछ गोल्फर्स बढ़ती हुई विदेशी भाषाओं में कुछ नेस्टेड खानों का प्रयास कर रहे थे। किसी व्यक्ति ने INTERCAL में अगले आदेश को मारा था। फिर शराब का प्रवाह रुक गया। उसने नशे में, गलती से बारकोड रीडिंग एल्गोरिदम को पूरी तरह से अलग कंप्यूटर से हटा दिया ... जो कि किसी भी नेटवर्क से जुड़ा नहीं था! (बच्चे - आप के लिए नहीं। आपके परिवार के लिए।)

आम तौर पर, यह एक बड़ा मुद्दा नहीं होगा। लेकिन, कुछ गोल्फरों ने सालों पहले सिस्टम को डिजाइन किया था, और कोई भी बारकोड मानक नहीं थे। मान लें कि 1 की लाइनें हैं, और 0 की जगह हैं, वे सभी 101 से शुरू होती हैं और 1001 के साथ खत्म होती हैं। बीच में सब कुछ 7-बिट ASCII है।

Barkeep के पास एक बड़ा फैंसी बारकोड रीडर है, जो 1 के और 0 के, की मनमानी लंबाई (हालांकि कम तब 300 बिट्स) के एक स्ट्रिंग को आपके प्रोग्राम के आधार पर STDIN, तर्क या फ़ाइल के माध्यम से लौटाएगा। और यह आगे या पीछे की ओर आ सकता है, जिस पर निर्भर करता है कि बोतल किस तरीके से रखी जा रही है। आपके कार्यक्रम को बारकोड के बीच से STOUT या फ़ाइल के माध्यम से वापस करना होगा।

दुर्भाग्य से, उन्होंने अपने भंडारण पर उतना खर्च नहीं किया, इसलिए सबसे कम स्रोत वाले कार्यक्रम को चुना जाएगा, और अन्य गोल्फरों से मुफ्त पेय और शराबी प्रोग्रामिंग ट्यूटोरियल जीतेंगे।

सौभाग्य!


7
दूसरे शब्दों में, निर्धारित करें कि इनपुट बाद के मामले में है 101...1001या 1001...101उल्टा है, तो केंद्र को बाइट्स में पैक करें।
जॉन ड्वोरक

1
पूरी तरह से सटीक। लेकिन इसमें क्या मजा है? : p
lochok

जवाबों:



1

जे - 35 बाइट्स

_7(a.{~#.)\_4}.3}.|.^:([:-.2{])"."0

स्पष्टीकरण बाद में आ रहा है :)।


4
बाद में कितना? ;-)
टिम

0

अजगर , २१

smCid2c:?zv@z2_z3_4 7

स्पष्टीकरण:

        ?zv@z2_z           Input if 3rd character of input is 1, else reversed input.
       :        3_4        Slice out the middle portion, ASCII of the above string.
      c             7      Chop into 7 character chunks.
 mCid2                     Convert each chunk from binary to integer, then to a character.
s                          Sum up the characters into a string and print.

ध्यान दें कि प्रश्न भाषा से पुराना है, प्रश्न के अस्तित्व ने किसी भी तरह से भाषा के डिजाइन को प्रभावित नहीं किया है, क्योंकि मैंने आज से पहले प्रश्न नहीं देखा है।

अभी भी नियम नियम हैं, इसलिए मैं इसे सीडब्ल्यू बना रहा हूं।


ठीक है, मैं इसे तब सीडब्ल्यू बनाऊंगा।
isaacg

0

AWK, 116 बाइट्स

/101$/{r=1}{L=split($0,a,"")
n=r?L-2:3
N=r?-1:1
while(d<L-7){c=0
for(k=0;k<7;k++){c*=2;c+=a[n+=N];d++}printf"%c",c}}

मुझे पता है कि इस सवाल ने बहुत प्यार नहीं देखा है, लेकिन मैं देखने और AWKसमाधान के बारे में उत्सुक था । यह सब चतुर नहीं है, लेकिन यह काम करने लगता है और मुझे गोल्फ में कोई स्पष्ट क्षेत्र दिखाई नहीं देता है। मैंने मूल रूप से जरूरत पड़ने पर स्ट्रिंग को उल्टा कर दिया, लेकिन पीछे की ओर बढ़ने के लिए वेतन वृद्धि तर्क को मोड़ने की तुलना में अधिक बाइट्स जोड़े।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.