একটি বিশেষ সময়ের চিত্র তৈরি করুন


10

এমন একটি প্রোগ্রাম বা ফাংশন তৈরি করুন যা রূপ হিসাবে ইনপুট নেয়

<width>, <height>, <color1>, <color2>

এবং এমন একটি আউটপুট উত্পন্ন করে যা প্রথম সারিতে রঙের পিক্সেলের মধ্যে <color1>এবং <color2>সময়ের সাথে পর্যায়ক্রমে হয় <height>। নিম্নলিখিত প্রতিটি সারির জন্য, সময়কাল হবে <height> - <row number>। নোট করুন যে <color1>সর্বদা সারি শুরু হয়।

নমুনা আউটপুট

ইনপুট 120, 6, #000000, #FFFF00:

নমুনা আউটপুট

ইনপুট 80, 50, #000000, #FFFF00:

নমুনা আউটপুট 2

(নমুনা আউটপুট স্পষ্টতার জন্য ছোট করা হয়েছে)

এটি , তাই বাইটস সবচেয়ে স্বল্পতম বৈধ এন্ট্রি জিততে পারে।


এটা কি ভঙ্গুর? এর কি ফ্র্যাক্টাল ডাইমেনশন আছে?
পাইরুলেজ

উত্তর:


6

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

g=
(w,h,f,b)=>`<svg${s=` width=${w} height=`+h}><rect${s} fill=${b} />`+[...Array(h)].map((_,i)=>`<line stroke=${f} stroke-dasharray=${h-i} x1=0 y1=${i} x2=${w} y2=${i} />`).join``
Width: <input id=w value=80 type=number min=1><br>Height: <input id=h value=50 type=number min=1><br>Foreground: <input id=f value=#000000><br>Background: <input id=b value=#FFFF00><br><input type=button value=Go! onclick=o.innerHTML=g(+w.value,+h.value,f.value,b.value)><div id=o>

একটি HTML5- তুলনামূলক এসভিজি চিত্র আউটপুট দেয়।


4

এক্সেল ভিবিএ, 129 বাইট

বেনামে ভিবিই তাত্ক্ষণিক উইন্ডো ফাংশন যা পরিসীমা থেকে ইনপুট নেয় [A1:D1]এবং পরিসরে আউটপুট নেয়[A2].Resize([B1],[A1])

Cells.RowHeight=48:For Each r in[A2].Resize([B1],[A1]):r.Interior.Color=IIf(int((r.Column-1)/([B1]-R.Row+2))Mod 2,[D1],[C1]):Next

আউটপুট

ইনপুট জন্য আউটপুট 160, 90, 0xBDD7EE, 0xDDEBF7: আউটপুট


4

টিসিএল / টাকা, 143

147 150 151

proc P {w h b c} {set p [image c photo -w $w -h $h]
time {incr y
set x 0
time {$p p -t $x $y [expr {[incr x]/($h-$y+1)%2?$c:$b}]} $w} $h
set p}

চিত্রটি উইডজেটে রেখে canvas, কোনও ফাইলে লেখার মাধ্যমে, ক্লিপবোর্ডে থাকতে পারে ইত্যাদি যাচাই করা যায় Return

পরীক্ষার জন্য কোড

set w 960
set h 540
pack [canvas .c -w $w -he $h -highlightt 0]
.c cr image 0 0 -image [P $w $h #00ffff #ffbf32] -anchor nw

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


3

গণিত, 52 বাইট

Image@Table[If[Mod[j,2i]>i,#4,#3],{i,-#2,-1},{j,#}]&

নমুনা ইনপুট:

Image@Table[If[Mod[j,2i]>i,#4,#3],{i,-#2,-1},{j,#}]&[120,6,Black,Yellow]

3

সি (জিসিসি) , 155 143 বাইট

স্টডআউট করার জন্য একটি পোর্টেবল পিক্স্যাম্যাপ (.ppm) মুদ্রণ করে।

x,y,z;f(w,h,r,g,b,R,G,B){for(y=~0,printf("P3 %d %d 255",w,h);y++<~-h;)for(x=~0;x++<~-w;)z=(x/(h-y)%2),printf("\n%d %d %d ",z?R:r,z?G:g,z?B:b);}

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

আউটপুট

  • ইনপুট: 80, 50, #ad00df, #f17e18

এখানে চিত্র বর্ণনা লিখুন (চিত্র রূপান্তরিত এবং পুনরায় আকার দেওয়া হয়েছে))


~0পরিবর্তে লেখার সুবিধা কী -1?
sergiol

@ সার্জিওল এটি শীতল দেখায়। এবং - তাত্ত্বিকভাবে - আপনার যদি কেবলমাত্র 1গুলি সমেত একটি ভেরিয়েবলের প্রয়োজন হয় ~0তবে তার চেয়ে বেশি বহনযোগ্য -1
জোনাথন ফ্রেচ

2
আমি যখন এটি পেরিয়ে যাচ্ছিলাম তখন এই চিত্রটি আমার চোখকে হত্যা করেছিল। +1
হাইপারনিউটারিনো


1

জাভা 8, 321 + 42 = 363 বাইট

import java.awt.*;import java.awt.image.*;
(w,h,a,b)->{BufferedImage i=new BufferedImage(w,h,1);Graphics2D g=(Graphics2D)i.getGraphics();g.setColor(new Color(a));g.fillRect(0,0,w,h);g.setColor(new Color(b));for(int j=h;j>0;g.drawLine(0,h-j,w,h-j--))g.setStroke(new BasicStroke(1,0,0,1,new float[]{j},j));javax.imageio.ImageIO.write(i,"png",new java.io.File("a"));}

নামের aকোনও পিএনজি ফাইলের আউটপুট (কোনও এক্সটেনশন নেই)।

ল্যাম্বডা চালাতে ব্যবহৃত চারপাশের কোড: এটি অনলাইনে চেষ্টা করে দেখুন!

Ungolfed

(w,h,a,b)->{
    BufferedImage i=new BufferedImage(w,h,1);
    Graphics2D g=(Graphics2D)i.getGraphics();
    g.setColor(new Color(a));
    g.fillRect(0,0,w,h);
    g.setColor(new Color(b));
    for(int j=h;j>0;g.drawLine(0,h-j,w,h-j--))
        g.setStroke(new BasicStroke(1,0,0,1,new float[]{j},j));
    javax.imageio.ImageIO.write(i,"png",new java.io.File("a"));
}

ফলাফল

ইনপুট: 80, 50, 0xFF00FF, 0xFFFF00

উদাহরণ আউটপুট


1

এসওজিএল ভি0.12 , 83 বাইট

..¹Cbe¹"εģνļ▲I-℮eīÆoHι⅛ļJd⁾)⁶f°┌²‘→e∫Ab∫Ƨ01a∙H∑bmWrcwιFHea-¹"S⁸▒Μ¬NrηA¤Y_⅓ļpPboā⁵‘→

এখানে চেষ্টা করুন!

এসওজিএল প্রসেসিংয়ে তৈরি হয়েছিল .. সুতরাং আমি জাভাস্ক্রিপ্ট হিসাবে চালানো ব্যবহার করে এর সুবিধা নিয়েছি । এসওজিএলের গ্রাফিক্সের জন্য কিছু তৈরি করা থাকলে সহজেই অনেকগুলি বাইট কম (কমপক্ষে 30) হতে পারে ।

সঙ্কুচিত স্ট্রিং:

..¹Cbe¹"__processing0.hidden=0;cp.size(ŗ,ŗ)”→e∫Ab∫Ƨ01a∙H∑bmWrcwιFHea-¹"cp.stroke(ŗ);cp.point(ŗ,ŗ)”→

ব্যাখ্যা:

..¹C       save the first 2 inputs as an array on variable C
be¹        save next input - width - on B, next input - height - on E, and wrap both in an array
"__processing0.hidden=0;cp.size(ŗ,ŗ)”→   
           execute "__processing0.hidden=0;cp.size(ŗ,ŗ)" as JavaScript - show the canvas and set the size to the corresponding items in the array

e∫A        repeat height times, saving 1-indexed counter on A
  b∫       repeat width times, pushing 1-indexed counter
    Ƨ01    push "01"
    a∙     multiply vertically A times             - ["01", "01", "01",...]
    H      rotate anticlockwise                    - ["000...","111..."]
    ∑      join together                           - "000..111.."
    bm     mold to the length of width             - "00011100011100"
    W      get the counterth letter of that string - "1"
    r      convert to number                       - 1
    cw     get that item from the variable C
    ι      remove the array from the stack
    FH     push current loops counter minus 1
    ea-    push e-a - height-outerLoopsCounter
    ¹      wrap the 3 items in an array - [itemInC (color), counter-1 (x position), height-outerLoopsCounter (y position)]

    "cp.stroke(ŗ);cp.point(ŗ,ŗ)”→ 
           execute "cp.stroke(ŗ);cp.point(ŗ,ŗ)" as JavaScript, replacing ŗ with the corresponding item from the array

1

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

DEF C W,H,C,D
FOR J=1TO H
FOR I=0TO W-1N=1AND I/J
GPSET I,H-J,C*!N+D*N
NEXT
NEXT
END

এ এক পিক্সেল রঙ (x,height-y)হয়[color1,color2][x/y & 1]


0

পাইথন 2 , 123 101 বাইট

w,h,c,C=input()
print'P3',w,h,255
for i in range(h):
 for j in range(w):print`[c,C][j/(h-i)%2]`[1:-1]

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

জোনাথনের উত্তরের মতো আউটপুটে একটি .ppm মুদ্রণ করে ।


আমার সি এর উত্তরের মতো দেখতে ... আপনি যদি নিজের রঙের ইনপুট ফর্ম্যাটটি পরিবর্তন করেন তবে 105 বাইট (প্রশ্নটি রঙের ফর্ম্যাটটিকে কঠোরভাবে সংজ্ঞা দেয় না)।
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ ধন্যবাদ :) হ্যাঁ, ছবিটি আউটপুট দেওয়ার কোনও উপায় সন্ধান করার সময় আমি আপনার উত্তরটি দ্বারা অনুপ্রাণিত হয়েছি।
TFeld

শুধু আউট কৌতুহল; আপনার .ppm ফাইলটি খুলতে আপনি কোন প্রোগ্রামটি ব্যবহার করেন?
জোনাথন ফ্রেচ

'%d '*3%তুলনায় খাটো '%d %d %d'%
জোনাথন ফ্রেচ

@ জোনাথনফ্রেচ এটি কাজ করে, বা আমি জিম্প ব্যবহার করেছি
টিফিল্ড

0

জাভাস্ক্রিপ্ট (ES6) + HTML5, 138 বাইট

(w,h,a,b)=>{with(c.width=w,c.getContext`2d`)for(c.height=y=h;~--y;)for(x=w;~--x;)fillStyle=x/(h-y)%2<1?a:b,fillRect(x,y,1,1)}
<canvas id=c>

f=
(w,h,a,b)=>{with(c.width=w,c.getContext`2d`)for(c.height=y=h;~--y;)for(x=w;~--x;)fillStyle=x/(h-y)%2<1?a:b,fillRect(x,y,1,1)}
#c{display:block
<input id=w value=80>
<input id=h value=50>
<input id=a value=#000>
<input id=b value=#FF0>
<input value=go type=button onclick=f(w.value,h.value,a.value,b.value)>
<canvas id=c>

অপারেটিং দ্বারা ফাংশন আউটপুট <canvas id=c>

ক্যানভাসের নীচের ডান থেকে শুরু করে, নেস্টেড forলুপটি বাম এবং উপরের দিকে পুনরাবৃত্তি করে এবং x/(h-y)%2<1পিক্সেলের জন্য শর্তটি পরীক্ষা করে x,y। তাহলে অবস্থা trueসঙ্গে পিক্সেল, এটা রং যে color1, অন্য color2

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