আক্রমণ, ক্ষয়, টেকসই, মুক্তি


47

শব্দটির নির্দিষ্ট পরামিতি (যেমন সামগ্রিক জোরে) সময়ের সাথে কীভাবে পরিবর্তন হয় তা নিয়ন্ত্রণ করতে শব্দ সংশ্লেষকরা খামে জেনারেটর ব্যবহার করে। অনেক সংশ্লেষকগুলিতে একটি খামটি চারটি পরামিতি দ্বারা সংজ্ঞায়িত করা হয়, উইকিপিডিয়া থেকে নিম্নলিখিত চিত্রটিতে উপস্থাপিত :

  • আক্রমণের সময় (এ) : কীটি প্রথমে টিপলে শূন্য থেকে শুরু করে খামটিকে সর্বোচ্চ স্তরে পৌঁছাতে সময় সময় লাগে।
  • ক্ষয়ের সময় (ডি) : খামটি নির্দিষ্ট বজায় রাখার পর্যায়ে পৌঁছাতে সময় নেয়।
  • সাস্টেন লেভেল (এস) : স্তরটি চালিত হচ্ছে যতক্ষণ না প্রাথমিক আক্রমণ এবং ক্ষয়ের পরে, যতক্ষণ না চাপ দেওয়া হচ্ছে।
  • প্রকাশের সময় (আর) : কীটি প্রকাশিত হওয়ার পরে খামটি শূন্যে পৌঁছাতে সময় সময় নেয়।

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

চ্যালেঞ্জ

এ, ডি, এস, আর চারটি পরামিতি ইনপুট করুন এবং খামটি প্লট করুন

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

সর্বাধিক স্তর (আক্রমণ ফেজ শেষে পৌঁছে গেছেন) গণ্য করা হবে 127

টিকে থাকতে পর্যায়ে অনুভূমিক সেগমেন্ট আছে অধিকৃত করা হবে না সময়কাল 64 (প্রকৃত শব্দ এই সময়কাল সংশোধন করা হয় না, কিন্তু সময় পরিমাণ দ্বারা নির্ধারিত হয় যে কী ধরে রাখা)।

ফর্ম্যাট এবং আরও বিশদ

আউটপুটটি রাস্টার বা ভেক্টর ফর্ম্যাটে একটি চিত্র হওয়া উচিত। যদি এটি রাস্টার হয় তবে বহুভুজরেখাটি অনুভূমিকভাবে কমপক্ষে 50 পিক্সেল উল্লম্বভাবে দখল করে।

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

গ্রাফটিতে কেবল বহুভুজীয় লাইন থাকে যা খামটিকে সংজ্ঞায়িত করে। প্রতিটি অক্ষের স্কেল অবাধে চয়ন করা যেতে পারে। অক্ষের লাইন, সংখ্যাযুক্ত লেবেল বা লাইন রঙের মতো অন্যান্য উপাদানগুলি alচ্ছিক।

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

বাইটস মধ্যে সংক্ষিপ্ত কোড।

পরীক্ষার মামলা

ইনপুট ফর্ম্যাটে রয়েছে [A D S R]। নোট করুন যে স্কেল প্রতিটি চিত্রের মধ্যে পৃথক (নিয়ম অনুসারে যে স্কেলটি নিখরচায় চয়ন করা যেতে পারে)

[15 30 70 40]

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

[64 64 64 64]

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

[0 10 50 80]

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

[0 0 90 80]

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

[5 50 0 0]

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

[5 50 0 80]

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

[24 32 127 48]

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



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

উত্তর:


7

এমএটিএল, 31 22 বাইট

Oii64ivYsO127itO5$h&XG

গ্রহণ চার পৃথক ইনপুট হিসাবে আদেশ A, D, R,S

এমএটিএল অনলাইন এ চেষ্টা করে দেখুন

ব্যাখ্যা

0   % Push a literal 0 to the stack
ii  % Grab the first two inputs
64  % Push the number literal 64 to the stack
i   % Grab the third input
v   % Vertically concatenate all values
Ys  % Compute the cumulative sum
0   % Push the number literal 0 to the stack
127 % Push the number literal 127 to the stack
i   % Grab the fourth input
t   % Duplicate the fourth input
O   % Push the number literal 0 to the stack
5$h % Concatenate the last 5 elements on the stack
&XG % Plot the result using the first array as x and second array as y

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


43

টিকজেড, 195 193 181 177 172 167 163 160 159 বাইট

ডেভিড কার্লিসিল এখানে তার সহায়ক উত্তরের জন্য ধন্যবাদ

\documentclass[tikz]{standalone}\begin{document}\tikz\def~#1{\typein[#1];}~\a~\s~\d~\r\def\u{)--(\a+\d}\draw(,)--(\a,127\u,\s\u+64,\s\u+\r+64,);\end{document}

হ্যাঁ, আপনি ঠিক টিকজেড শুনেছেন ।

ব্যাখ্যা

এটি তার লক্ষ্য অর্জনের জন্য বেশ কয়েকটি কৌশল ব্যবহার করে। প্রথম জিনিসটি ইনপুট। বেশিরভাগ লোকেরা হয়ত জানেন না যে এল টি এক্স ইনপুট নিতে পারে। ভাল এটা করতে পারেন। কমান্ড দিয়ে এটি অর্জন করা হয় \typein। এটি সংযোজকটি থামিয়ে দেবে এবং ব্যবহারকারীর কাছ থেকে ইনপুটটির অনুরোধ করবে যেমন এটি একটি ভেরিয়েবলের জন্য নির্ধারিত হয়।

অন্যান্য প্রধান কৌশল হ'ল ব্যবহার \def\defটিক্জে অদ্ভুতভাবে শক্তিশালী। এটি মূলত কোডের একটি অংশকে সংজ্ঞায়িত করে এবং আপনি ভেরিয়েবলটিকে যে কোনও জায়গায় আটকান। এই \typein[#1]{}কোডটিতে আমরা দুটি জিনিস সংজ্ঞায়িত করি যাতে আমরা আমাদের ভেরিয়েবলগুলি গল্ফিলিভাবে বরাদ্দ করতে পারি এবং )--(\a+\dকারণ এই কোডটি অযুগলিত সংস্করণে বহুগুণ প্রদর্শন করে।

এখানে কোডের দুটি সংস্করণ রয়েছে (মোড়ক ছাড়াই):

Golfed:

\documentclass[tikz]{standalone}\begin{document}\tikz\def~#1{\typein[#1];}~\a~\s~\d~\r\def\u{)--(\a+\d}\draw(,)--(\a,127\u,\s\u+64,\s\u+\r+64,);\end{document}

Ungolfed:

\typein[\a]{}\typein[\s]{}\typein[\d]{}\typein[\r]{}\draw(0,0)--(\a,127)--(\a+\d,)--(\a+\d+64,)--(\a+\d+\r+64,0);

চিত্র:

যেহেতু আমি সরাসরি পিডিএফ চিত্র আপলোড করতে পারি না এবং এটি অন্য কোনও ফর্ম্যাটে রূপান্তরিত করার ফলে লাইনটি পুরোপুরি অদৃশ্য হয়ে যায়, তাই প্রাকদর্শনটিতে খোলার সময় কোনও চিত্র দেখতে কেমন লাগে তা এখানে এই চিত্রটির ইনপুটটি রয়েছে [64 64 64 64]:

পূর্বরূপ চিত্র

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


12
আপনি এই বিষয়টিকে আন্তরিকভাবে প্রশংসা করি যে আপনি টিকজেডকে এত ভাল জানেন যে এটিই প্রথম সমাধান যা আপনার মনে আসে। (এবং যদি এটি না হয় তবে কিংবদন্তি মনে রাখবেন)
ডান লেগ

1
input tikz\begin{document}কাজ করে না ?

5
ছবি কেমন? 😉
সার্জে বোর্স

আপনি কীভাবে এটি রেন্ডার করবেন? pdflatex adsr.texকাজ মনে হচ্ছে না। - ওহ অপেক্ষা করুন, এটি কাজ করে, আমি কেবল এটি ইন্টারেক্টিভ ইনপুটটির জন্য অনুরোধ করব বলে আশা করি না!
ঘড়ির

@ ওয়েট উইজার্ডের চিত্রগ্রাহক পিডিএফটি যথাযথভাবে রূপান্তর করতে পারবেন যদি আপনি এটি সঠিকভাবে করেন
সারেজ বোর্স

20

পাইথন 2, 83 80 79 বাইট

from turtle import*
def f(A,D,S,R):X=A+D+64;map(goto,[A,A+D,X,X+R],[127,S,S,0])

এটি অনলাইনে ব্যবহার করে দেখুন (83-বাইট সংস্করণ, কারণ এটি অনলাইনে চলে)

নোট করুন যে ক্যানভাসটি যেভাবে কাজ করে তার জন্য নির্দিষ্ট ফলাফলগুলি ট্রিনকেট ব্যবহার করে সম্পূর্ণ দৃশ্যমান নাও হতে পারে। পাইথনটি আরও ভালভাবে কাজ করতে চাইলে আপনাকে ডাউনলোড এবং ইনস্টল করতে হবে।

Ungolfed:

from turtle import*
A,D,S,R=input()
goto(A,127)
goto(A+D,S)
goto(A+D+64,S)
goto(A+D+64+R,0)

এই সংস্করণটি ট্রিনকেটে কাজ করে না, কারণ ত্রিনিকেট ইনপুটটির মূল্য আনপ্যাকিং সমর্থন করে না।


আপনি mapপাইথন 2:lambda A,D,S,R:map(goto,[A,A+D,A+D+64,A+D+R+64],[127,S,S,0])
xnor

@xnor আমি পেতে SuspensionError: Cannot call a function that blocks or suspends here on line undefined in main.pyকবজ করেন। আপনি নিশ্চিত করেছেন যে এটি কাজ করে? ত্রুটিটি ট্রিনকেটের কাছে অনন্য কিনা তা আমি নিশ্চিত নই।
mbomb007

2.7.12 এ আমার জন্য কাজ করে।
xnor

@ এক্সনর এমএমকে, ধন্যবাদ এটি সম্ভবত স্কাল্প্টের একটি সীমাবদ্ধতা।
mbomb007

আমি স্কাল্প্ট গিথুব রেপোতে উদাহরণ হিসাবে এই প্রোগ্রামটির একটি সহজ সংস্করণ জমা দিয়েছি এবং তারা ভেবেছিল এটি একটি দুর্দান্ত সন্ধান। আশা করি তারা এটি ঠিক করতে সক্ষম হবেন তবে তাদের "টার্টল স্প্রিন্ট" এর গতি আরও হাঁটাচলা করে বলে মনে হচ্ছে।
mbomb007

17

গণিত, 61 58 বাইট

ListLinePlot[{Accumulate@{0,##3,64,#2},{0,127,#,#,0}}]&

এটি অপারেটর Transposeএবং Tগণিতের দ্বারা একটি সুপারক্রিপ্ট হিসাবে রেন্ডার করা হয়।

ক্রমে আর্গুমেন্ট নেয় S, R, A, Dএবং ভেক্টর গ্রাফিক্স বস্তুটি প্রদান করে।

সাতটি পরীক্ষার ক্ষেত্রে ফলাফল:

এখানে চিত্র বর্ণনা লিখুন আরও বড় সংস্করণের জন্য ক্লিক করুন।


সেটা দ্রুত ছিল!
লুইস মেন্ডো

আমাকে শেখানোর জন্য +1 ListLinePlot:) এবং এর ListStepPlotপাশাপাশি রয়েছে — তাই দরকারী!
গ্রেগ মার্টিন

12

আর, 66 63 বাইট

function(A,D,S,R)plot(cumsum(c(0,A,D,64,R)),c(0,127,S,S,0),"l")

অক্ষের ল্যাবগুলি cumsum(c(0,A,D,64,R))এবং c(0,127,S,S,0)অক্ষ অক্ষরেখাগুলি এবং সংখ্যাসূচক লেবেল সহ চিত্রটি প্রদর্শন করে ।

@ জহিরো মোড়কে 3 বাইট কামিয়ে দেওয়ার জন্য ধন্যবাদ !

পূর্ববর্তী উত্তর:

function(A,D,S,R)plot(c(0,A,A+D,b<-A+D+64,b+R),c(0,127,S,S,0),"l")

2
আপনি cumsum(c(0,A,D,64,R)) প্লটের প্রথম পদটি প্রতিস্থাপন করতে ব্যবহার করতে পারেন । চামসামের সাথে আপনার আর ট্রিকের প্রয়োজন হবে না এবং এখনও 3 বাইট শেভ করবেন :) function(A,D,S,R)plot(cumsum(c(0,A,D,64,R)),c(0,127,S,S,0),"l")
জহিরো মোর

11

মতলব, 50 বাইট

@(A,D,S,R)plot(cumsum([0,A,D,64,R]),[0,127,S,S,0])

এটি একটি বেনামি ফাংশন "আনস" দেয় যা উত্তর হিসাবে ডাকতে হবে (এ, ডি, এস, আর)।


9

জাভাস্ক্রিপ্ট (ES6) + এইচটিএমএল, 126 + 23 = 149

c=O.getContext`2d`;c.moveTo(a=0,z=O.height=128);g=(y,x=prompt())=>c.lineTo(a+=+x,y)||g;g(0)(s=z+~prompt())(s,64)(z);c.stroke()
<canvas id=O width=512>

ক্রমে একবারে ইনপুট নেয় A, S, D, R


9

জাভাস্ক্রিপ্ট (ES6), 114 111 বাইট

f=(a,d,s,r)=>`<svg width=446 height=128><path stroke=red fill=none d=M0,127L${a},0l${d},${127-s}h64l${r},${s}>`
<div oninput=o.innerHTML=f(a.value,d.value,s.value,r.value)><input type=number value=0 min=0 max=127 id=a><input type=number value=63 min=0 max=127 id=d><input type=number value=127 min=0 max=127 id=s><input type=number value=0 min=0 max=127 id=r><div id=o><svg width=446 height=128><path stroke=red fill=none d=M0,127L0,0l63,0h64l0,127 /></svg>

এর জন্য উপযুক্ত একটি এসভিজি চিত্র প্রদান করে innerHTML। বৈধ এক্সএমএলের জন্য 18 বাইট যুক্ত করুন।


চিত্রটি রিয়েল টাইমে আপডেট হয় কীভাবে এটি দুর্দান্ত!
লুইস মেন্ডো

এটি দুর্দান্ত, আমার কিছু সময় এসভিজি সিনট্যাক্স শিখতে হবে। সম্ভবত <input>এস এর মধ্যে ডিফল্ট মান যুক্ত করবেন ?
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশনগুলি কি আপনার কোনও বিশেষ খেলাপ মনে আছে? (প্রদত্ত ডিফল্টরূপে যেভাবে যাইহোক প্রাথমিক গ্রাফটি ট্রিগার করা যাবে না ...)
নিল

আমি সম্ভবত ঠিক ছিল 64,64,64,64। সাধারণত আমি ডিফল্ট
ইনপুটটির

8

হাস্কেল, 112 110 বাইট

import Graphics.Gloss
(a#d)s r=display(InWindow""(600,300)(0,0))red$line$zip(scanl(+)0[a,d,64,r])[0,127,s,s,0]

ব্যবহারের উদাহরণ: (0#10) 50 80

বিজ্ঞাপনের খাম

এটি Glossগ্রন্থাগার ব্যবহার করে । displayফাংশন একটি উইন্ডোতে চক্রান্ত (এখানে: একটি (শিরোনাম ছাড়া উইন্ডোতে আশা ""), আকার 600x300, অবস্থান (0,0)ডেস্কটপে), একটি পটভূমি রঙ ( red) এবং ছবি জাদুকরী ক্রমপুঞ্জিত সমষ্টি zip করা দ্বারা তৈরি পথ বরাবর একটি লাইন [0,a,d,64,r]= [0,a,a+d,a+d+64,a+d+64+r]যেমন এক্স স্থানাঙ্ক এবং [0,127,s,s,0]y স্থানাঙ্ক হিসাবে।

সম্পাদনা: 2x বাইটের জন্য @xnor ধন্যবাদ!


লেখার জন্য আরও খাটো হওয়া উচিতscanl(+)0[a,d,64,r]
xnor

5

প্রক্রিয়াজাতকরণ, 134 108 + 14 (কল করুন size) = 148 122 বাইট

প্রথমে আমাদের sizeপ্রোগ্রামের কোথাও একটি কল প্রয়োজন যাতে আউটপুটটি উইন্ডোতে ফিট হয়ে যায় (100x100 এ ডিফল্ট)।

size(400,400);

এবং এখানে আসল ফাংশন:

void g(int a,int b,int c,int d){line(0,127,a,0);line(a,0,b+=a,c=127-c);line(b,c,b+=64,c);line(b,c,b+d,127);}

এটিকে কল করুন f(15,20,70,40);

স্ক্রিনশট

15, 20, 70, 40

ভাবমূর্তি


আমার নতুন উত্তরটি পুরানো উত্তরের চেয়ে আরও সোজা, তবে আমি আরও পুরনোটি পছন্দ করি (এটি আরও বড় হলেও)।

পুরানো উত্তর (148 বাইট)

size(400,400);

এবং দুটি ফাংশন

void f(int[]v){translate(0,127);l(v[0],-127);l(v[1],127-v[2]);l(64,0);l(v[3],v[2]);}void l(int x,int y){line(0,0,x,y);translate(x,y);}

এটিকে কল করুন f(int_array_containing_values);এবং ফলাফলটি দেখতে এমন কিছু দেখাচ্ছে:f(new int[]{15,20,70,40});


4

স্মাইলব্যাসিক, 90 বাইট

INPUT A,D,S,R
B=A+D+64W=#Y-S
GLINE.,#Y,A,0GLINE A,0,A+D,W
GLINE A+D,W,B,W
GLINE B,W,B+R,#Y

4

পিএইচপি, 149 130 বাইট

[,$a,$d,$s,$r]=$argv;imagepolygon($i=imagecreatetruecolor(446,127),[0,127,$a,0,$d+=$a,$s,$d+=64,$s,$d+$r,127],5,999);imagepng($i);

কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট নেয়, স্টাডআউটে চিত্র লেখায় (কালোতে গ্রাফ নীল দিয়ে পিএনজি)। পিএইচপি 7.1 বা তার পরে প্রয়োজন।

ব্যবহার যেমন

# any OS with ImageMagick:
php -r '<code>' <parameters> | display

# linux with feh:
php -r '<code>' <parameters> | feh

পুরোনো পিএইচপি জন্য +4 বাইট: প্রতিস্থাপন [,$a,$d,$s,$r]সঙ্গে list(,$a,$d,$s,$r)


সেখানে একটি ছোট হ্যাক রয়েছে: imageopenpolygonবেস লাইনটি লুকানোর জন্য ব্যবহারের পরিবর্তে , সমাপ্ত বহুভুজ রেখাটি ক্যানভাসের বাইরে টানা হয়। (y = 127 কেবল উচ্চতা> = 128 এর সাথে একটি চিত্র প্রদর্শিত হবে)

আমি 999 এর পরিবর্তে 99 বা 9 রঙ দিয়ে আরও সঞ্চয় করতে পারতাম; তবে এগুলি কালো রঙে দেখতে বেশ শক্ত। :)


3

বাশ + গ্রেস , 70 বাইট

t=$[$1+$2]
echo "0 0
$1 127
$t $3
$[t+64] $3
$[t+64+$4] 0">f
xmgrace f

স্ক্রিপ্ট fপ্রতিটি পয়েন্টের স্থানাঙ্ক ফাইল করার জন্য লিখেছে , এবং এক্সএমগ্রাস (জিইউআই সংস্করণ) ফাইলটি পড়ে এবং পূর্বনির্ধারিতভাবে লাইন ব্যবহার করে প্লটটি প্রদর্শন করে।

চালান :

./plot_ADSR.sh 15 30 70 40

আউটপুট: (মুদ্রণ স্ক্রিন)

15 30 70 40

আমি মনে করি এটি কোনও অনুগ্রহ স্ক্রিপ্ট দ্বারা সরাসরি করা যেতে পারে, যদি এটি ইনপুট গ্রহণ করতে পারে তবে আমি এর সিনট্যাক্সের সাথে পরিচিত নই। আমি এটার দিকে নজর রাখব.

ব্যাখ্যা:

t=$[$1+$2]          # store the value of (A+D) for later usage
echo "0 0           # start writing the coordinates to file "f", first the origin
$1 127              # then (A, 127)
$t $3               # then (A + D, S)
$[t+64] $3          # then (A + D + 64, S)
$[t+64+$4] 0">f     # then (A + D + 64 + R, 0)
xmgrace f           # call xmgrace to plot the generated XY file

2

যান, 947 915 506 বাইট

এই প্রশ্নগুলিতে অংশ নেওয়ার সময় ভাষা শেখার চেষ্টা করা অপ্টিমাইজড থেকে অনেক দূরে। আমি কী করতে পারি তা নির্দ্বিধায় মনে করুন।

স্থির চিত্র

ঘনীভূত:

package main;import (."os";."image";k"image/png";c"image/color";."strconv";."math");func main(){g:=NewRGBA(Rect(0,0,127*4,127));a,_:=ParseFloat(Args[1],4);d,_:=ParseFloat(Args[2],4);s,_:=ParseFloat(Args[3],4);r,_:=ParseFloat(Args[4],4);z:=[5][]float64{{0,0},{a,127},{a+d,s},{a+d+64,s},{a+d+64+r,0}};for i:=1;i<len(z);i++{v,w,x,y:=z[i-1][0],z[i-1][1],z[i][0],z[i][1];m:=(y-w)/(x-v);t:=y-m*x;for v<=x{g.Set(int(Ceil(v)),127-int(Ceil(w)),c.RGBA{0,0,0,255});v+=.01;w=m*v+t}};f,_:=Create("o.png");k.Encode(f,g)}

Uncondenced:

package main

import (
    ."os"
    ."image"
    k"image/png"
    c"image/color"
    ."strconv"
    ."math"
    "fmt"
)

func main(){
    g := NewRGBA(Rect(0, 0, 127*4, 127))

    a, _ := ParseFloat(Args[1], 4)
    d, _ := ParseFloat(Args[2], 4)
    s, _ := ParseFloat(Args[3], 4)
    r, _ := ParseFloat(Args[4], 4)

    z := [5][]float64{{0,0},{a,127},{a+d,s},{a+d+64,s},{a+d+64+r,0}}
    for i:=1;i<len(z);i++{
        v,w,x,y:=z[i-1][0],z[i-1][1],z[i][0],z[i][1]
        m:=(y-w)/(x-v)
        t:=y-m*x
        for v<=x{
            g.Set(int(Ceil(v)),127-int(Ceil(w)), c.RGBA{0,0,0,255})
            v+=.01
            w=m*v+t
        }
    }
    f,_:=Create("o.png")
    k.Encode(f,g)
}

@ লুইস মেন্ডো এটি ডিফল্টরূপে 0,0 শীর্ষ বামে থাকে। আমি যত তাড়াতাড়ি সম্ভব বিপরীত সবকিছু।
কেমিকোফা

1
আমি কখনই কোডিং করি নি, তাই জানি না। ব্যবহারকারীরা এখানে তাদের কোডটি ম্যানুয়ালি গল্ফ করে কারণ তারা একটি সাধারণ মিনিফায়ারের চেয়ে বেশি বাইট সংরক্ষণ করতে পারে। খারাপ কোডিং অনুশীলন এবং কৌশল এখানে স্বাগত জানানো হয়। প্রাক্তন হিসাবে, ভেরিয়েবল (l1x, l1y, l1X, l1Y এর মত) স্ট্রাক্ট অবজেক্টগুলিকে প্রতিস্থাপন করা গল্ফিয়ার হতে পারে না?
শৈশুমারা

1
@ অরগদিয়ালার এটি সাহায্য করতে পারে, আপনি যদি না দেখে থাকেন তবে
লুইস মেন্ডো

1
আপনার লিঙ্কটি প্রায় 400 বাইট হারিয়েছে @
লুইস

1
@ অরগদিয়ালার বাহ, এটি অনেকটা \ o /
লুইস মেন্ডো

1

ডিসি, 120 বাইট

প্রাথমিকভাবে আমি ভেবেছিলাম আমি ডিসিতে উত্তর দিতে পারব না, তবে আমি দেখতে পেয়েছি যে কোনও ভেক্টর চিত্রের সিনট্যাক্স মুদ্রণের অনুমতি রয়েছে।

?sR127r-sS[<svg><path d="M0 127 L]nrdn[ 0 L]n+dn32PlSn[ L]n64+dn32PlSn[ L]nlR+n[ 127" fill="none" stroke="red"/></svg>]p

কোড প্রতিটি পয়েন্টের অনুবাদিত স্থানাঙ্কগুলি গণনা করে এবং প্লটের জন্য এসভিজি সিনট্যাক্স উত্পন্ন করে। যেহেতু কোনও চিত্র সম্পাদকের উপরের-বাম কোণে মূল রয়েছে , তাই আমাকে এই ক্ষেত্রে 127 ডলার yথেকে মানগুলি বিয়োগ করতে heightহয়েছিল, যাতে চিত্রটি প্রদর্শিত হয় যেন উত্সটি নীচের বাম কোণে রয়েছে।

উদাহরণ চালান: অথবা এটি অনলাইন ব্যবহার করে দেখুন!

dc -f plot_ADSR.dc <<< "15 30 70 40"

আউটপুট:

<svg><path d="M0 127 L15 0 L45 57 L109 57 L149 127" fill="none" stroke="red"/></svg>

চিত্রের প্লটটি প্রদর্শনের জন্য, কোনও সঠিক ফাইলটিকে সেই সঠিক আউটপুট সংরক্ষণ করুন এবং এটি গিম্পের সাথে খুলুন, উদাহরণস্বরূপ, বা এইচটিএমএল পৃষ্ঠায় পাঠ্যটি লিখুন যেমন আমি উপরে করেছি।

ব্যাখ্যা: dc একটি বিপরীত-পোলিশ ডি এস্ক সি অ্যালকুলেটর স্ট্যাক ভাষা

স্ক্রিপ্টটি এসভিজি সিনট্যাক্স স্ট্রিংয়ের দীর্ঘ সূচনা। শব্দ Mঘোরা পদক্ষেপ তুল্য এবং Lঘোরা দেওয়া তুল্য বর্তমান অবস্থান থেকে ড্র লাইন

?                           # read input (in reverse order by default). Stack: RSDA
sR                          # pop top value, store it in register 'R'. Stack: SDA
127r-sS                     # push 127, swap top 2 values, pop them and push
                            #subtracting result, save it to 'S', pop it. Stack: DA
[<svg><path d="M0 127 L]n   # [..]n print string (push then pop). Stack: unchanged
rdn                         # swap, duplicate top, print (A) and pop it. Stack: AD
[ 0 L]n                     # printing
+dn                         # pop top 2 values, push addition result, duplicate it,
                            #print and pop it. Stack: (A+D)
32P                         # print a space
lSn                         # push value from register 'S', print and pop it.
                            #Stack: unchanged
[ L]n                       # printing
64+dn                       # push 64, pop top 2 values, push addition result,
                            #duplicate it, print and pop it. Stack: (A+D+64)
32PlSn[ L]n                 # print space, print register 'S', more printing
lR+n                        #push value from register 'R', pop top 2 values, push
                            #addition result, print it and pop it. Stack: empty
[ 127" fill="none" stroke="red"/></svg>]p   # printing
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.