hackertyper.net


11

परिचय

hackertyper.net एक ऐसी वेबसाइट है जो स्क्रीन पर लिनक्स कर्नेल के क्रिप्टो अनुभाग से जटिल कोड को आउटपुट करके "हैकिंग" (जैसा कि मीडिया इसे चित्रित करता है) अनुकरण करता है, जैसा कि आप प्रति इनपुट 3 अक्षरों की दर से टाइप करते हैं।

चुनौती

आपके प्रोग्राम / फ़ंक्शन को या तो कमांड-लाइन तर्क के रूप में फ़ाइल को स्वीकार करना चाहिए, फ़ाइल पथ को हार्ड-कोडित करना चाहिए, या पाठ को स्वीकार करना चाहिए [जो कि फ़ाइल में होगा] कमांड-लाइन या फ़ंक्शन तर्क के रूप में, और hackertyper.net की नकल करें STDIN या समकक्ष के माध्यम से प्राप्त प्रत्येक के लिए फ़ाइल से स्क्रीन (STDOUT या समकक्ष) पर 3 वर्णों को आउटपुट करके।

एक बार ईओएफ पहुंच जाने के बाद, प्रोग्राम को फाइल की शुरुआत से फिर से वर्णों का उत्पादन शुरू करना चाहिए (लपेटें)।

चश्मा

सादगी के प्रयोजनों के लिए, आप मान सकते हैं कि एसटीडीआईएन पहले से ही बफर और नो इको मोड में सेट किया गया है, जो तब तक इंतजार नहीं कर रहा है जब तक कि उपयोगकर्ता आपके प्रोग्राम में इनपुट पास करने से पहले दर्ज न करें और आपके द्वारा टाइप किए गए पात्रों को प्रदर्शित न करें।

फ़ाइल में newlines हो सकते हैं, जबकि इनपुट में newlines नहीं होगा ।

सी (golfed नहीं) में लिखा एक छोटा सा उदाहरण के लिए यह दर्शाता है कि कैसे इस काम करता है, को देखने के लिए इस

हरे पाठ और एक काले रंग की पृष्ठभूमि की आवश्यकता नहीं है।

उदाहरण इनपुट और आउटपुट

फ़ाइल:

#include <stdio.h>
int main() { }

इनपुट:

hello world

आउटपुट:

#include <stdio.h>
int main() { }

फ़ाइल:

hello

इनपुट:

hello world

आउटपुट:

hellohellohellohellohellohellohel

1
1. क्या कार्यों की अनुमति है (जो एक तर्क के रूप में दो तार लेते हैं और एक और स्ट्रिंग लौटाते हैं)? 2. आपकी कल्पना हर इनपुट के लिए तीन वर्णों को आउटपुट करने के लिए कहती है, लेकिन उदाहरण हर इनपुट के लिए केवल एक आउटपुट देता है।
दरवाज़े

1
@Doorknob 1. हाँ, और 2. यह एक गलती थी, ठीक किया गया।
मेजर 320

हम करते है एक फ़ाइल के रूप में फ़ाइल जानकारी लेने के लिए, या हम भी एक समारोह तर्क या समकक्ष के माध्यम से है कि जानकारी प्राप्त कर सकते हैं? अगर हमें करना है, तो उस फाइल का नाम क्या होगा? क्या यह हमारी स्क्रिप्ट (ओं) से दूर एक विशिष्ट निर्देशिका में होगा, या हमारी स्क्रिप्ट (ओं) के समान है?
आर। काप


3
बोनस खराब हो। और इसके अलावा बहुत कम लोगों को जुर्माना मिलेगा, और इसे "बोनस" कहना भ्रामक है।
CalculatorFeline

जवाबों:


7

जेली , 4 बाइट्स

ẋ3ṁ@

इसे ऑनलाइन आज़माएं!

यह काम किस प्रकार करता है

ẋ3ṁ@    Main link. Arguments: s (input string), t (file string)

ẋ3      Repeat s three times.
  ṁ@    Mold; reshape t like the previous result.
        This repeats the elements of t over and over until the length matches that
        of s repeated thrice.

मैंने हमेशा सोचा है कि "मोल्ड" का क्या अर्थ है ...
लीक नून

18
@ केनीलाऊ मुझे लगता है कि इसका मतलब है कि यह रोटी बाहर फेंकने का समय है।
एलेक्स ए।

4

जे , 7 बाइट्स

$~(3*#)

दो तर्क देता है, दोहराया जाने वाला पाठ और उपयोगकर्ता का इनपुट पाठ।

प्रयोग

इनपुट टेक्स्ट को स्वरूपित किया जाता है जहाँ ,शामिल होने का मतलब LFहै और न्यूलाइन वर्ण है।

   f =: $~(3*#)
   ('#include <stdio.h>', LF, 'int main() { }') f 'hello world'
#include <stdio.h>
int main() { }
   'hello' f 'hello world'
hellohellohellohellohellohellohel

इसे ऑनलाइन आज़माएं। (Tryj.tk)


4

जेली, 9 बाइट्स

⁴L×3
ẋ¢ḣ¢

इसे ऑनलाइन आज़माएं!

⁴L×3     Define nilad as ¢:

 L       length of
⁴        second argument
  ×3     tripled


ẋ¢ḣ¢     Main chain:

         the first argument (implicit)
ẋ        repeated
 ¢       ¢ many times
  ḣ¢     then get the first ¢ characters of it.

2
मुझे लगता है कि आप डेनिस के उत्तर के "जेली" थोड़े हैं?
डेनिस वैन गिल्स

जेली बुराई है ..
कैलक्यूलेटर 18


3

जावास्क्रिप्ट (ईएस 6), 40 बाइट्स

(s,t)=>s.repeat(l=t.length*3).slice(0,l)

जहां sडेटा स्ट्रिंग है और tउपयोगकर्ता स्ट्रिंग है। मान लिया sजाता है lकि यह खाली है और यह सुनिश्चित करने के लिए कि इसकी लंबाई कम से कम हो lताकि वह पहले lपात्रों को वापस कर सके , जहां lलंबाई तीन गुना है t


3

हास्केल, 25 बाइट्स

पहला तर्क यह है कि "टाइप" क्या है, दूसरा स्रोत प्रदर्शित करने के लिए

(.cycle).take.(3*).length

या गैर- pointfree, (संभवतः) बेहतर पठनीयता के लिए:

h a=take(3*length a).cycle

क्या है cycle?
कैलकुलेटर

@CatsAreFluffy cycleएक सूची लेता है और इसे अनंत रूप से दोहराता है। जैसेcycle "hi" == "hihihihi..
माइकल क्लेन

क्या आपने विचार किया $?
CalculatorFeline

@CatsAreFluffy मुझे यकीन नहीं है कि मैं इसका उपयोग कहां करूंगा, आप क्या सोच रहे थे?
माइकल क्लेन

3

पायथन 3.5, 77 65 63 बाइट्स:

lambda g,f:''.join((g*len(f))[i:i+3]for i in range(0,len(f)*3,3))

काफी सरल। एक अनाम कार्य जो दो तर्कों में होता है, पहला "फ़ाइल" ( g) और दूसरा उपयोगकर्ता द्वारा टाइप किए गए अक्षर ( f) होता है। फिर यह प्रत्येक तीन वर्णों वाला एक जनरेटर बनाता है g, जो हर iऔर फिर i+3वर्णों के लिए अनुक्रमण द्वारा पाया जाता है g, जहां iसीमा होती है 0=>(length of f)*3। अंत में, यह जनरेटर में प्रत्येक वस्तु को एक बड़े स्ट्रिंग में शामिल कर देता है। आप इस फ़ंक्शन को एक चर निर्दिष्ट करके और फिर एक print()अभिव्यक्ति के अंदर लपेटे गए चर को कॉल करके कहते हैं । इसलिए यदि फ़ंक्शन का नाम था q, तो इसे निष्पादित किया जाएगा print(q(<byte array here>))

इसे ऑनलाइन आज़माएं! (Repl.it)




2

रूबी, 39 बाइट्स

रूबी $<में, कमांड लाइन के तर्कों में आपूर्ति की गई फ़ाइल से पढ़ता है , $stdinअगर इसके बजाय एक दिया जाता है। (यदि आप किसी फ़ाइल की आपूर्ति करना भूल जाते हैं, तो आपको एक रिक्त आउटपुट मिलता है क्योंकि यह सब कुछ बाहर पढ़ता $stdinहै $<.readऔर इस प्रकार STDIN.read.size0. होगा)

$><<($<.read*s=3*STDIN.read.size)[0,s]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.