একটি এএসসিআইআই আর্ট আনট্রমেবল তৈরি করুন!


11

যেমন ASCII শিল্পের একটি স্ট্রিং দেওয়া হয়েছে (এটি ASCII শিল্প নয় তবে উদাহরণ হিসাবে এটি করবে):

abc
d e
fgh

এলোমেলো করে দিন যেন এটি লাইনের প্রতি একটি অক্ষর দিয়ে পর্দায় প্রদর্শিত হচ্ছে:

a
b
c
d

e
f
g
h

ফলাফলটি মুদ্রণ করুন, টার্মিনালটি পরিষ্কার করার আগে এক সেকেন্ড, ± 0.5 সেকেন্ড এবং একই জিনিসটি মুদ্রণ করুন, তবে 1 টির পরিবর্তে লাইনটিতে 2 টি অক্ষর প্রদর্শিত হবে। মূলত, ডিসপ্লেটির প্রস্থটি 1 থেকে 2 এ পরিণত হয়।

ab
c
d 
e
fg
h

পরে স্থান নোট করুন d। প্রতীক্ষার পুনরাবৃত্তি করুন, তারপরে ইনপুটযুক্ত পাঠ্য আউটপুট না হওয়া পর্যন্ত প্রতি লাইনে অতিরিক্ত অক্ষর দিয়ে মুদ্রণ করুন।

অক্ষরগুলি মুদ্রণের চেষ্টা করার সময় আপনি যদি কোনও লাইনের শেষ প্রান্তে আঘাত করেন তবে আপনি একটি নতুন লাইন সন্নিবেশ করুন এবং এই নিয়মটি অনুসরণ করে বাকিগুলি মুদ্রণ করুন। উদাহরণস্বরূপ ইনপুট:

abcdefg
ab

প্রদর্শনের দৈর্ঘ্য 4 হলে নিম্নলিখিত মুদ্রণ করতে হবে।

abcd
efg
ab

আপনি এখানে টার্মিনালের আকার পরিবর্তন করতে পারেন: https://repl.it/GoeU/1 । প্রোগ্রামটি চালান, তারপরে টেক্সট সম্পাদক থেকে টার্মিনালটি আলাদা করে পিছনে পিছনে জিনিস টেনে আনুন।

ব্যাখ্যা:

একবার লাইনটি কীভাবে ইনপুট করা হয়েছিল ঠিক তেমন উপস্থিত হওয়ার পরে, আপনি ভবিষ্যতে লাইন প্রতি বৃহত্তর অক্ষর গণনার জন্য সেই লাইনটি একা ছেড়ে যেতে পারেন।

abc
ab

মুদ্রণ করা উচিত

ab
c
ab

যখন বাক্যটির দৈর্ঘ্য = 2।


এটি , তাই কমপক্ষে পরিমাণে বাইট জয়!

নিয়মাবলী:

  • একমাত্র আউটপুট হিসাবে অবশ্যই STDOUT এ প্রিন্ট করতে হবে।
  • টার্মিনালটি সাফ করতে হবে, বা 150 টি খালি লাইন যুক্ত করে টার্মিনাল সাফ করার মায়া তৈরি করতে হবে।
  • মানক পদ্ধতিগুলির মাধ্যমে ইনপুট নিতে পারে।
  • ডিফল্ট লুফোলস প্রয়োগ হয়।
  • পাঠ্য সহ স্টাফগুলি অনুসরণ করা ঠিক নেই।

আমি যখন এএসসিআইআই আর্টের সাথে একটি টার্মিনালটির আকার পরিবর্তন করছিলাম তখন এই ধারণাটি আমার কাছে আসে। এটি আকর্ষণীয় দেখায়, তাই আমি এটিকে চ্যালেঞ্জ করার সিদ্ধান্ত নিয়েছি।


পরীক্ষার কেস:

যেহেতু প্রতিটি পরীক্ষার ক্ষেত্রে প্রতিটি পদক্ষেপ স্বতন্ত্রভাবে দেখানো খুব বেশি কাজ হবে, তাই আমি প্রতিটি উত্তরটি বৈধ কিনা তা নিশ্চিত করার জন্য পর্যালোচনা করব। উত্তরটি পরীক্ষার কেসগুলি পরিচালনা করতে পারে তা নিশ্চিত করুন।

 ______   ______     __     __   __     ______      __    __     ______    
/\  == \ /\  == \   /\ \   /\ "-.\ \   /\__  _\    /\ "-./  \   /\  ___\   
\ \  _-/ \ \  __<   \ \ \  \ \ \-.  \  \/_/\ \/    \ \ \-./\ \  \ \  __\   
 \ \_\    \ \_\ \_\  \ \_\  \ \_\\"\_\    \ \_\     \ \_\ \ \_\  \ \_____\ 
  \/_/     \/_/ /_/   \/_/   \/_/ \/_/     \/_/      \/_/  \/_/   \/_____/ 

এই পেস্টবিন

                        __/\__
                        \    /
                  __/\__/    \__/\__
                  \                /
                  /_              _\
                    \            /
      __/\__      __/            \__      __/\__
      \    /      \                /      \    /
__/\__/    \__/\__/                \__/\__/    \__/\__

উত্তর:


2

বাশ (জিএনইউ কোর্টিলস সহ), 69 বাইট

n=`tee x|wc -L`;for i in `seq 1 $n`;do fold -w$i x;sleep 1;clear;done

অস্থায়ী ফাইলে ইনপুট সংরক্ষণ করে x, তারপরে দীর্ঘতম লাইন গণনা করে (জিএনইউ কোর্টিলস এর জন্য পতাকা wcরয়েছে -L) এবং প্রতিটি কনসোল প্রস্থের জন্য 1 থেকে দীর্ঘতম লাইনের দৈর্ঘ্য পর্যন্ত পুনরাবৃত্তি করে। fold, sleepএবং clearবাকি যাদুটি করে।


3

পাইথন 3.6, 124 বাইট

অফিপ্লেইমসের দ্রবণের মতো ইনপুট স্ট্রিংয়ের দৈর্ঘ্যের উপরে লুপ

import re,time
def d(s):
 for i in range(len(s)):print(*'\n'*75,*re.split(f'(.{{1,{i+1}}})',s)[1::2],sep='\n');time.sleep(1)

143 বাইট কেবলমাত্র একটি আল ফ্রেক্সট্রেমের বাশ উত্তর দীর্ঘতম লাইনের প্রস্থে যেতে

import re,time
def d(s):
 for i in range(max(map(len,s.split()))):print(*'\n'*75,*re.split(f'(.{{1,{i+1}}})', s)[1::2],sep='\n');time.sleep(.5)

"রে.স্প্লিট ((। {1, i + 1}))" কে অক্ষরের গোষ্ঠীতে বিভক্ত করতে ব্যবহার করুন। কারণ '.' '\ n' এর সাথে মেলে না, গোষ্ঠীগুলি এক লাইন থেকে পরের দিকে ল্যাপ করে না। যদি রেজেক্স একটি ক্যাপচারিং গ্রুপ ব্যবহার করে, তবে পুনরায় স্প্লিট () বিজোড় সূচকগুলিতে মিলিত গোষ্ঠীগুলির সাথে একটি তালিকা প্রদান করে। এগুলি [1 :: 2] দিয়ে পুনরুদ্ধার করা হয়েছে।

গ্রুপের প্রস্থের উপর পুনরায় প্যাটার্নটি নির্ভর করতে অজগর 3.6 এফ-স্ট্রিং ব্যবহার করে।

রিস্প্লিট () এর সামনের দিকের *টি প্রিন্ট স্টেটমেন্টে তালিকাটিকে আর্গুমেন্টে পরিণত করতে অজগর 3.6 আনপ্যাকিং ব্যবহার করে। একইভাবে, * '\ n' * 75, মুদ্রণ বিবৃতিতে 75 '\ n' যুক্তিতে পরিণত হয় turns মুদ্রণ কীওয়ার্ড আর্গুমেন্ট sep = '\ n' দিয়ে, ফলাফলটি পর্দা সাফ করতে প্রায় 150 টি ফাঁকা লাইনগুলি মুদ্রণ করছে, তারপরে অক্ষরের প্রতিটি গ্রুপ একটি পৃথক লাইনে থাকবে on


এটি আমার চেয়ে ভাল এবং খাটো। দারূন কাজ! (y)
অফিসিয়ালাইম

2

পাইথন 3.5 ( 238 233 229 225) 223 222 বাইট)

- উইন্ডোজ টার্মিনাল এ সূক্ষ্ম কাজ করে; সিস্টেম-নির্দিষ্ট ওএস.সিস্টেম ("ক্লস") কমান্ডের কারণে অন্যান্য প্ল্যাটফর্মগুলি সম্পর্কে নিশ্চিত নন।

- পাস করা স্ট্রিংটি নতুন লাইনের জন্য \ n দ্বারা চিহ্নিত করা উচিত যেমন: 'abc \ nd efgh \ n'

import os,time 
def b(s):
 p=len(s);z=print;r=range
 for i in r(1,p):
  os.system("cls");l=0
  for j in r(p):
   z(s[j],end="");l+=1
   if(s[j]=='\n'):l=0
   if(j+1<p and l==i and s[j+1]!='\n'):z();l=0
  z();time.sleep(.5)
  • 5 বাইট সংরক্ষণ করা হয়েছে: অবাঞ্ছিত শ্বেতস্পেসগুলি সরানো হয়েছে
  • 4 টি বাইট সংরক্ষণ করা হয়েছে: লেনের জন্য সংক্ষিপ্ত
  • 4 টি বাইট সংরক্ষিত: স্পার্ক্লিপনি ধন্যবাদ (প্রিন্টের জন্য শর্টহ্যান্ড)
  • 2 বাইট সংরক্ষণ করা: স্পার্কলপোনিকে ধন্যবাদ (আর এবং আর (0, i) রেঞ্জ হিসাবে শর্টহ্যান্ড (i)) ধন্যবাদ
  • 1 বাইট সংরক্ষিত: স্টিভকে ধন্যবাদ (ঠিক 0.5 হিসাবে .5)

1
শান্ত! আমি মনে করি আপনি z=printশীর্ষে কোডটি ব্যবহার করে এবং তারপরে অন্য সমস্ত দৃষ্টান্ত পরিবর্তন করে কিছু বাইট মুণ্ডন করতে print()পারেন z()
কমরেড স্পার্কলপনি 13

1
আমি মনে করি আপনি ঠান্ডা একই জিনিস আপনার সাথে মতই কাজ printসঙ্গে range, এবং পরিবর্তে range(0,3)ব্যবহার range(3)
কমরেড স্পার্কলপনি

1
sleep(0.5)নিছক হিসাবে আবার লেখা যেতে পারেsleep(.5)
স্টিভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.