hackertyper.net


11

ভূমিকা

হ্যাকার্টিপার.net এমন একটি ওয়েবসাইট যা লিনাক্স কার্নেলের ক্রিপ্টো বিভাগ থেকে জটিল কোড আউটপুট করে পর্দায় প্রতি একটি ইনপুটপ্রাপ্ত প্রতি 3 অক্ষরের হারে টাইপ করে "হ্যাকিং" (যেমন মিডিয়া এটি চিত্রিত করেছে) অনুকরণ করে website

চ্যালেঞ্জ

আপনার প্রোগ্রাম / ফাংশনটি হয় কোনও ফাইলকে কমান্ড-লাইন আর্গুমেন্ট হিসাবে গ্রহণ করতে পারে, ফাইলের পাথটি হার্ড-কোডড থাকা উচিত, অথবা পাঠ্যটি [যে ফাইলটিতে থাকবে] একটি কমান্ড-লাইন বা ফাংশন আর্গুমেন্ট হিসাবে গ্রহণ করবে এবং হ্যাকারটাইপার নেটকে নকল করবে should STDIN বা সমতুল্য মাধ্যমে প্রাপ্ত প্রত্যেকের জন্য ফাইল থেকে 3 টি অক্ষর স্ক্রিনে (STDOUT বা সমতুল্য) আউটপুট করে।

ইওএফ পৌঁছে যাওয়ার পরে প্রোগ্রামটির পুনরায় ফাইলের মোড়ক (মোড়ানো) থেকে অক্ষর আউটপুট করা শুরু করা উচিত।

চশমা

সরলতার উদ্দেশ্যে, আপনি ধরে নিতে পারেন যে এসটিডিআইএন ইতিমধ্যে কোনও বাফার এবং কোনও ইকো মোডে সেট করা আছে, এটি আপনার প্রোগ্রামে ইনপুট পাস করার আগে এবং আপনার টাইপ করা অক্ষরগুলি প্রদর্শন না করার আগে ব্যবহারকারী প্রেসগুলি প্রবেশ না করা পর্যন্ত অপেক্ষা করে না।

ফাইলটিতে নিউলাইনগুলি থাকতে পারে, তবে ইনপুটটিতে নতুন লাইন থাকবে না

সি (golfed নয়) লেখা একটি ছোট উদাহরণ হিসেবে বলা যায় প্রমান করে যে কিভাবে এই কাজ, দেখুন এই

সবুজ পাঠ্য এবং একটি কালো পটভূমি প্রয়োজন হয় না।

উদাহরণ ইনপুট এবং আউটপুট

ফাইল:

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

ইনপুট:

hello world

আউটপুট:

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

ফাইল:

hello

ইনপুট:

hello world

আউটপুট:

hellohellohellohellohellohellohel

1
1. ফাংশনগুলি অনুমোদিত (যা আর্গুমেন্ট হিসাবে দুটি স্ট্রিং নেয় এবং অন্য স্ট্রিংটি ফিরে আসে) ২. আপনার অনুমান প্রতিটি ইনপুটটির জন্য তিনটি অক্ষর আউটপুট করতে বলে, তবে উদাহরণগুলি প্রতিটি ইনপুটটির জন্য কেবল একটি আউটপুট দেয়।
ডুরকনব

1
@ ডুরকনব ১. হ্যাঁ, এবং ২। এটি একটি ভুল, স্থির ছিল।
মাজোরা320

আমাদের কি ফাইল হিসাবে ফাইলের তথ্য গ্রহণ করতে হবে, বা আমরা কোনও ফাংশন আর্গুমেন্ট বা সমমানের মাধ্যমেও সেই তথ্যটি পেতে পারি? আমাদের যদি তা করতে হয় তবে সেই ফাইলটির নাম কী হবে? এটি কি আমাদের স্ক্রিপ্ট (গুলি) থেকে দূরে কোনও নির্দিষ্ট ডিরেক্টরিতে থাকবে বা আমাদের স্ক্রিপ্ট (গুলি) এর মতোই থাকবে?
আর কাপ,


3
বোনাসগুলি খারাপ হতে পারে। এবং আরও খুব কম লোক পেনাল্টি পাবে এবং এটিকে "বোনাস" বলা বিভ্রান্তিকর।
ক্যালকুলেটরলাইন

উত্তর:


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
আমার ধারণা আপনি ডেনিসের উত্তরটির "জেলি"?
ডেনিস ভ্যান গিলস

জেলি খারাপ ...
ক্যালকুলেটরফলাইন


3

জাভাস্ক্রিপ্ট (ES6), 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

বা অ-পয়েন্টফ্রি, (সম্ভবত) আরও ভাল পাঠযোগ্যতার জন্য:

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


@ ক্যাটসআরএলফ্লি cycleএকটি তালিকা নিয়েছে এবং এটি অসীম পুনরাবৃত্তি করে। উদাহরণস্বরূপcycle "hi" == "hihihihi..
মাইকেল ক্লিন

আপনি বিবেচনা করেছেন $?
ক্যালকুলেটরফলাইন

@ ক্যাটস আরেফ্ল্ফী আমি নিশ্চিত নই আমি এটি কোথায় ব্যবহার করব, আপনি কী ভাবছিলেন?
মাইকেল ক্লিন

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একটি দেওয়া হয় তার পরিবর্তে পড়ে reads (আপনি একটি ফাইল সরবরাহ ভুলে গিয়ে থাকেন তবে আপনি একটি ফাঁকা আউটপুট পেতে হয়েছে কারণ এটি বাইরে সবকিছু সার্চ $stdinমধ্যে $<.readএবং এইভাবে STDIN.read.size0. হবে)

$><<($<.read*s=3*STDIN.read.size)[0,s]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.