একটি কাঁচি অ্যানিমেশন তৈরি করুন!


21

একটি সাধারণ এএসসিআইআই আর্ট কাঁচি অ্যানিমেশন তৈরি করার চেষ্টা করুন!

চ্যালেঞ্জ

সমস্ত ইনপুটগুলি 31 থেকে 31 এর মধ্যে পূর্ণসংখ্যা হবে।

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

যদি ইনপুট ( n) ইতিবাচক হয়:

  • অ্যানিমেশনটি শুরু করা উচিত 8<, একে একে খোলা কাঁচি।
  • পরের ফ্রেমটি হ'ল 8=। এটি কাঁচি "কাটিয়া" দেখায়।
  • কাঁচিগুলির পিছনে একটি ড্যাশ (কাটা চিহ্ন) যুক্ত করা হয় এবং nড্যাশ না হওয়া পর্যন্ত অ্যানিমেশন পুনরাবৃত্তি করে ।

যদি ইনপুটটি নেতিবাচক হয়:

  • কাঁচিগুলি বাম দিকে খোলা এবং মুখোমুখি শুরু হয় (এর মতো >8:), সাথেnকাঁচিগুলি সামনে ফাঁকা ।
  • কাঁচিগুলি বন্ধ হয়ে বাম দিকে মুখ করে থাকে (=8 )।
  • কাঁচি আবার খোলার সাথে সাথে স্থানটি সরানো হয় এবং কাঁচির পিছনে একটি ড্যাশ যুক্ত হয়।

যদি ইনপুটটি শূন্য হয়:

  • 10 ফ্রেমের জন্য কেবল কাঁচি খোলার এবং বন্ধ করে আউটপুট দিন। যতক্ষণ না এটি সামঞ্জস্যপূর্ণ হয় ততক্ষণ তারা উভয় দিকের মুখোমুখি হতে পারে।

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম জমাটি জয়। (এমনকি যদি কিছু নতুন ধরণের "গল্ফিং ভাষা" তৈরির কারণে আপনার এন্ট্রি স্পষ্টভাবে জিততে না পারে তবে আমরা এটি দেখতে চাই))

ত্রুটি বার্তাগুলি অনুমোদিত, যতক্ষণ না ত্রুটি বার্তা নিজেই অ্যানিমেশনটিতে হস্তক্ষেপ করে না।

উদাহরণস্বরূপ ইনপুট এবং আউটপুট জোড়া:

(আমি স্বচ্ছতার জন্য ফ্রেমগুলি পৃথক করেছিলাম, তবে প্রতিটি ফ্রেমের মধ্যে প্রায় 25 টন সেকেন্ড হওয়া উচিত)

Input: 1
Output: 
8<
8=
-8<

Input: 2
Output:
8<
8=
-8<
-8=
--8<

Input: 5
Output:
8<
8=
-8<
-8=
--8<
--8=
---8<
---8=
----8<
----8=
-----8<

Input: 0
Output:
8<
8=
8<
8=
8<
8=
8<
8=
8<
8=

Input: -2
Output:
  >8
  =8
 >8-
 =8-
>8--

Input: -3
Output:
   >8
   =8
  >8-
  =8-
 >8--
 =8--
>8---

উপভোগ করুন!


হ্যাঁ, তাই আমি এটি যোগ করব।
আইফোনিক্স

হরফটি কি মনস্তোস করা দরকার?
3urous

@ Οurous আপনার ভাষা যদি এটি সমর্থন করে তবে হ্যাঁ। অন্যথায়, না।
আইফোনিক্স

উত্তর:



5

এমএটিএল , 59 58 57 বাইট

|EQG~10*+:"&FXx45@q2/kGg*XHY"8Vh61@oGO<Eq*+h4M?G|H-Z"hP]D

এমএটিএল অনলাইন এ চেষ্টা করুন ! অথবা অফলাইনের সংকলক থেকে চালিত একটি উদাহরণ দেখুন:

এখানে চিত্র বর্ণনা লিখুন


এটি কেবল আমারই হতে পারে তবে এটি মনে হয় যে বন্ধ কাঁচি অ্যানিমেশনগুলি খোলা কাঁচির চেয়ে দীর্ঘ are এটি কি কেবল ভাষার প্রক্রিয়াজাতকরণের কারণে?
আইফোনিক্স

1
আমি তা লক্ষ করি নি, তবে তা হতে পারে। আমি যেটা লক্ষ্য করি তা হ'ল বাম দিকের লোকেরা কিছুটা ধীর হয়; এবং এটি বোধগম্য কারণ তাদের আরও কিছু প্রক্রিয়াজাতকরণ রয়েছে। যাইহোক, কেবল নিশ্চিত হওয়া, যেহেতু চ্যালেঞ্জটি বলে (প্রায়) এক সেকেন্ডের 1 চতুর্থাংশ দ্বারা পৃথক করে আমি অনুমান করি এটি গ্রহণযোগ্য, তাই না?
লুইস মেন্ডো

আমি এমএটিএলকে চিনি এমন একজনকে পেয়েছি এবং তারা আপনার কোডটি কী করছে তা আমার দেখিয়েছে এবং এটি দুর্দান্ত মনে হয় :)
আইফোনিক্স

@ আইফোনিক্সের আমার একটি ব্যাখ্যা যুক্ত করা উচিত ছিল :-)
লুইস মেন্ডো

4

জাভাস্ক্রিপ্ট (ES2017) + এইচটিএমএল, 165 + 10 বাইট

@ শ্যাগি দ্বারা -16 বাইট

n=>(g=i=>i<-~(n?2*m:9)&&setTimeout(g,250,i+1,s=8+"<>="[i%2?2:n<0|0],o=("-".repeat(i/2)+s).padEnd(m+2),e.innerHTML=(n?n<0?[...o].reverse().join``:o:s)))(0,m=n<0?-n:n)
<pre id=e>

নীচের স্নিপেটে এটি ব্যবহার করে দেখুন:

let globalTimeout;
const _setTimeout = setTimeout;
window.setTimeout = function(){ globalTimeout = _setTimeout.apply(this, arguments); }
// Code above is to support user input

f=
n=>(g=i=>i<-~(n?2*m:9)&&setTimeout(g,250,i+1,s=8+"<>="[i%2?2:n<0|0],o=("-".repeat(i/2)+s).padEnd(m+2),e.textContent=(n?n<0?[...o].reverse().join``:o:s)))(0,m=n<0?-n:n)

// Code below is to support user input
f(10)
const $inp = document.getElementById("inp");
inp.addEventListener("change", ()=>{
  clearTimeout(globalTimeout);
  f(+inp.value);
});
<input type="number" id="inp" min="-31" max="31" value="10" />

<pre id=e>


1
কেবল জেএস ব্যবহার করে আপনাকে 157 বাইটে নামিয়ে আনার জন্য কয়েকটি দ্রুত সঞ্চয় । (যদিও প্রতিটি "ফ্রেমে" লিখিতভাবে অনুগ্রহ করে না, তবে আপনি সে সম্পর্কে স্পষ্টতা পেতে চাইতে পারেনalert
শেগি

@ শেগি উন্নতির জন্য ধন্যবাদ! আমি ইচ্ছাকৃতভাবে ব্যবহার করি নি alertযেহেতু প্রয়োজনীয়তা হ'ল ফ্রেমগুলি ~ 0.25 এর ব্যবধানে আসে যা alertপরবর্তী ব্যবহারকারী ইনপুট ব্যতীত সমর্থন করে না।
বিরজোলাক্সিউ

2

টিআই-বেসিক, 173 বাইট

:"-
:For(X,1,5
:Ans+Ans
:End
:For(X,1,32
:" "+Ans+" →Str1
:End
:ClrHome
:Input N
:N<0→X
:For(A,not(N),abs(N+5not(N
:For(B,4-3X,6-3X-(A=abs(N)),2
:33X-Anot(not(N
:Output(1,16,sub(Str1,33X+32,abs(Ans-1)-NX-31X)+sub(">8=8<8=",B,2)+sub(Str1,Ans+32,1
:rand(11
:End
:End

অন্যদের থেকে আলাদা ফ্রেমে 0 ইনপুট সমাপ্ত হওয়া খুব আকর্ষণীয় বাধা ছিল!

যেহেতু টিআই-বেসিক খালি স্ট্রিং পছন্দ করে না, এটি কাঁচির বামে কমপক্ষে একটি ডামি চরিত্র বজায় রাখে, যার প্রথমটি ক্রমাগত একটি স্থান; আশা করি এন এর অংশ হিসাবে এটি গণনা এড়াতেনেতিবাচক ইনপুটগুলির জন্য স্পেসের , এই প্রোগ্রামটি প্রথম সারির ডানদিকের কলাম থেকে মুদ্রণ শুরু করবে, তারপরে স্ট্রিংয়ের বাকী অংশটি নিচে দিকে মোড় করবে যাতে অ্যানিমেশনের আসল ক্ষেত্রটি শুরু করতে হবে প্রথম কলাম

বহিরাগত ডিভাইসের জন্য কিছু নোট: টিআই-বেসিক কোডের আকারটি টোকনে পরিমাপ করা হয়, অক্ষর নয়। ধারাবাহিক ক্রস-ক্যালকুলেটর তুলনা করার জন্য, আমরা সাধারণত শিরোনামের দৈর্ঘ্যের সাথে কাজ করে বাইট গণনা উপেক্ষা করি (উদাহরণস্বরূপ, আমরা প্রোগ্রাম থেকে 8 বিয়োগ করি: SCISSORS)। অতিরিক্তভাবে, রুটিনগুলির জন্য যা ঘরের স্ক্রিনে পুরোপুরি ভাল আচরণ করে (যারা বেশিরভাগ অংশে নিয়ন্ত্রণ কাঠামোর অভাবে থাকে), আমরা 9 ​​টি বাইটে "সঞ্চয়" করার জন্য খালি প্রোগ্রামের আকারটি আরও বাদ দিই। এই প্রোগ্রামটি বিশেষত হোম স্ক্রিনে টাইপযোগ্য নয়, যাতে স্বাধীনতা নেওয়া হবে না।


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

2

অক্টাভা , 190 186 বাইট

k=32+~e((a=abs(n=(z=input(''))+~z*10))+1,1);for i=1:a
clc
k(i:i+1)=[56,61-(s=sign(n))];q=@(m)fprintf(rot90([m ''],s));q(k)
if(i-a)pause(.25)
clc
k(i+1)+=s;q(k)
pause(.25);k(i)=45;end
end

এটি অনলাইন চেষ্টা করুন! (দ্রষ্টব্য: clcটিআইওতে কাজ করে না, সুতরাং এটি কেবলমাত্র সমস্ত অ্যানিমেশন ফ্রেমগুলি ক্রমানুসারে আউটপুট করা হয়েছে)। অষ্টাভের ফাংশন সম্পর্কে আমাকে সচেতন করার জন্য @ লুইস মেন্ডোকে ধন্যবাদ e(...), যা সমান exp(1)*ones(...)

দেখা যাচ্ছে যে ইনলাইন অ্যাসাইনমেন্টগুলি কেবল পরিবর্তিত অ্যারে এন্ট্রিগুলি প্রদান করে, পুরো অ্যারেটি নয়। এর অর্থ হল যে q(k(i+1)+=s)নির্মাণগুলি যেমন সম্ভব নয়, সুতরাং প্রোগ্রামটি প্রায় ম্যাটল্যাবের মতো। আসলে, ম্যাটল্যাব এন্ট্রিটি কেবল সামান্য দীর্ঘ,

ম্যাটল্যাব, 198 195 বাইট

n=input('');n=n+~n*10;a=abs(n);s=sign(n);k=zeros(a+1,1);q=@(k)fprintf(rot90([k ''],s));for i=1:a
k(i:i+1)=[56 61-s];clc
q(k)
if(i-a)pause(.25);
k(i+1)=k(i+1)+s;clc
q(k)
pause(.25)
k(i)=45;end
end

অক্টাভেতে, আমি মনে করি আপনি +onesকুরুচিপূর্ণ দ্বারা প্রতিস্থাপন করতে পারেন +~e। এছাড়াও, অক্টেভ এবং মতলব মধ্যে, প্রতিস্থাপন [i i+1]দ্বারা i:i+1
লুইস মেন্ডো

@ লুইস মেন্ডো পৃথিবীর এমন কী ব্যবহার হয় e(...)? আমি মনে করি না আমি কখনও এম-বাই-এন ম্যাট্রিক্সের প্রয়োজনীয়তা অনুভব করেছি e। যদিও ভাল গল্ফিংয়ের জন্য তৈরি করে।
Sanchises

সম্ভবত অক্টোভের বিকাশকারীদের মনে কোড গল্ফ ছিল, হাহা
লুইস মেন্ডো

1

পরিষ্কার , 294 বাইট

import StdEnv,System.Time,ArgEnv,System._Unsafe
Start#n=toInt(select(getCommandLine)1)
=[?k l\\k<-[1..]&l<-if(n==0)(flatten o$5)(init)[$(abs n+2)'\b'++if(n<0)(rjustify(abs n+2))reverse[c,'8': $i'-']\\i<-[0..abs n],c<-[if(n<0)'>''<','=']]]
?t#(Clock n)=accUnsafe clock
|n>t*250=id= ?t
$ =repeatn

এটি অনলাইন চেষ্টা করুন!

নোট করুন যে এটি টিআইওতে কাজ করে না, লিঙ্কটি উপস্থাপনের উদ্দেশ্যে is

X86 উইন্ডোজ ক্লিনের ডিফল্ট CLOCK_PER_TICKব্যতীত আপনার যদি ধ্রুবক থাকে তবে আপনার ফলাফলগুলি পৃথক হতে পারে 1000


0

পাইথন 2 , 170 বাইট

import time
n=input()
a=abs(n);s=a and n/a
for i in range([a-~a,10][a<1]):print'\n'*30+(a-i/2)*-s*' '+i/2*s*'-'+'>='[i%2]*(s<1)+'8'+'<='[i%2]*s+i/2*-s*'-';time.sleep(.25)

এটি অনলাইন চেষ্টা করুন!


(approximately) 1 quarter of a second; .2সেকেন্ডের ঘুমের সময়টি ব্যবহার করে বাইট সংরক্ষণ করবেন না কেন ?
জোনাথন ফ্রেচ

0

রুবি, 169 বাইট

->x{i="";o=?=;(x!=0&&x.abs*2+1||10).times{|l|o=o[?=]?x>0?"8<":">8":x>0?"8=":"=8";f=?\s*(x<0&&-x-l/2||0);system"cls";puts x>0?i+o:f+o+i;i+=?-if(l).odd?&&x!=0;sleep 0.25}}

আপনি যখন এটি খনন করেন তখন বেশ স্ব স্ব ব্যাখ্যামূলক, আমার মতে অন্ততপক্ষে। প্রোগ্রামটি একটি কম্পিউটারে cls কমান্ড / ওরফে দিয়ে চলতে হবে।

এটি অনলাইন চেষ্টা করুন! (উপরে উল্লিখিত সীমাবদ্ধতার কারণে কেবল এই স্ক্রিপ্টের জন্য সিস্টেম () পদ্ধতিটি ওভাররাইট করতে হয়েছিল))

আমি ব্যবহার করার চেষ্টা করেছি

puts `cls`, ...

তবে এটি কেবল একটি অদৃশ্য চরিত্র ছাপিয়েছে, কেউ জানেন কেন?

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