এটি একটি বৃষ্টির দিন


42

প্রসঙ্গ

এটা ভালোবাসা দিবস। আপনি কেবলমাত্র সেই ব্যক্তিকেই গতকাল এই ছেলেটির জন্য রেখে গেছেন তিনি সর্বদা "বোকা এবং উদ্দীপনা" পেতেন । বাড়ি ফেরার পথে, আপনি ট্র্যাফিকে আটকে গেছেন, রেডিওতে পুরানো গান শুনছেন, উইন্ডস্ক্রিনে আঘাত করা বৃষ্টি আপনাকে দুলিয়ে দিচ্ছে। আপনার গাড়ীতে কিছুক্ষণ থাকার পরে, আপনি নিজের ছোট অ্যাপার্টমেন্টে নিজেকে একা দেখতে পাচ্ছেন তাকে ছাড়া অন্য কিছু ভাবতে অক্ষম। কোনও আলো নেই এবং আপনি উইন্ডোটি ঘূর্ণন করছেন, অন্ধকারকে ঘিরে রাখছেন। কথা বলার মতো কেউ নেই, আপনার নতুন বন্ধুটি আপনাকে মনের দিকে ঝাঁকুনির বিষয়ে সতর্ক করার পরে আপনার বন্ধুরা এখন অনেক দিন আগে চলে গেছে। আপনি নিজের কম্পিউটারটি শুরু করুন, এটি কেবলমাত্র আপনি যা করতে পারেন, আপনার ব্রাউজারটি খুলুন এবং আপনার মত পরিবর্তন করার প্রয়াসে স্ট্যাকেক্সচেঞ্জে একটি নতুন প্রোগ্রামিং ধাঁধা পোস্ট করুন।

চ্যালেঞ্জ

আপনার পছন্দের ভাষায় একটি প্রোগ্রাম লিখুন যা বৃষ্টির সাথে মাটিতে পড়ে sim আউটপুটটি ASCII টি অক্ষর বা 2D / 3D রেন্ডার সমন্বিত হতে পারে। ক্যামেরাটি স্থির হয়েছে: আপনি সরাসরি মাটির দিকে চেয়ে আছেন। আপনার প্রোগ্রামে অবশ্যই কোনও ধরণের অ্যানিমেশন অবশ্যই অন্তর্ভুক্ত থাকতে হবে যেমন প্রতিবার আপনি একটি নতুন "ফ্রেম" উত্পন্ন করে কনসোল বা পৃষ্ঠাকে রিফ্রেশ করুন। এটি বাস্তবসম্মত হতে হবে, আমি জানি এটি কিছুটা সাবজেক্টিভ তবে তবে আসুন আমরা বলি যে আপনি কেবলমাত্র একটি বড় ফোঁড়ায় সমস্ত স্থলটি পূরণ করতে পারবেন না।

আউটপুটটি কোনও চিত্র হতে হবে না তবে আপনি যদি ক্রিপ্টিক ভাষা ব্যবহার করেন তবে এটি কার্যকরভাবে কীভাবে দেখায় তা বোঝাতে একটি .gif সরবরাহ করা ভাল (তবে অবশ্যই আপনি এটি না করলে এটি আপনার স্কোরকে প্রভাবিত করবে না)।

বিধি

  • আপনার স্কোর মোট ব্যবহৃত বাইট
  • আপনি যদি রঙ ব্যবহার করেন তবে -20 পয়েন্ট
  • -50 যদি আপনি কোনও ধরণের বাতাস রেন্ডার করতে অর্জন করেন
  • সর্বনিম্ন স্কোর জয়

উদাহরণ

কী রেন্ডার করা উচিত তার একটি খুব প্রাথমিক উদাহরণ:

আমি আশা করি আপনি আরও ভাল করবেন এবং এই চ্যালেঞ্জ উপভোগ করবেন।

আমার ইংরাজির জন্য দুঃখিত, আপনি যদি কিছু ত্রুটি সংশোধন করতে চান তবে নির্দ্বিধায় আমার পোস্টটি সম্পাদনা করুন

লিডার বোর্ড

যদি আপনার নামটি তালিকাভুক্ত না হয় তবে এটি কারণ আপনার প্রচেষ্টাটি নিয়মগুলির সাথে মানানসই নয় considered

Tobia - APL - 35  
j6m8 - Processing.js - 38
The Guy with The Hat - Processing - 42  
ace - Processing - 74  
kelunik - JS/CSS - 89  
Riot - Bash - 91  
Michael - JS/jQuery - 105  
Florent - HTML/JS - 123  
David Carraher - Mathematica - 134  
Doorknob - HTML/JS - 150  
undergroundmonorail - Python - 175

টোবিয়ার অভিনন্দন!


51
আমি আন্তরিকভাবে আশা করি প্রথম অনুচ্ছেদটি সত্য গল্প নয়।
কেন্ডাল ফ্রে

1
@ ডেভিডকারারহর হ্যাঁ, আপনি যেমন মেঝেতে আকাশের দিকে তাকিয়ে আছেন।

8
আমি মনে করি না এটি কোড-গল্ফ হওয়া উচিত কারণ সম্ভাব্য আউটপুটগুলিতে খুব বেশি
প্রচ্ছন্নতা রয়েছে

4
এই রেন্ডারিংয়ের জন্য ক্যামেরা অবস্থানের সাথে প্রথম অনুচ্ছেদটি বেশ ম্যাকাব্রে।
টোবিয়া

উত্তর:


26

এপিএল, 105 চর / বাইট * - 20 - 50 = 35 স্কোর

e←{⍞←∊'␛['⍵}
e¨'36m' '?25l' '2J'
{⍵←3⌊⍵+3×0=?t⍴50
⍵{(⍵c)←⍕¨⍵+1
e⍵';'c'H',' .∘⍟'[⍺]}¨⍳t
∇0⌈⍵-1}0⍴⍨t←24 80

*: বেশিরভাগ এপিএল বাস্তবায়ন কিছু প্রকারের (উত্তরাধিকার) একক-বাইট চরসেটকে সমর্থন করে যা এপিএল প্রতীকগুলিকে উপরের 128 বাইট মানগুলিতে মানচিত্র করে। অতএব, গল্ফিংয়ের উদ্দেশ্যে, এমন একটি প্রোগ্রাম যা কেবলমাত্র ASCII অক্ষর এবং এপিএল প্রতীক ব্যবহার করে অক্ষর = বাইট হিসাবে স্কোর করা যায়।

আমি এটি একটি ওএস এক্স টার্মিনালে নোড.জেএস-এ নিকের সর্বশেষতম এপিএল.জেএসে পরীক্ষা করেছি । তবে আমি তার উপভাষার সাথে সুনির্দিষ্ট কিছু ব্যবহার করি নি, সুতরাং এটি কোনও আধুনিক এপিএলে কাজ করা উচিত যা একটি এএনএসআই টার্মিনালে চালানো যেতে পারে এবং ডি-ফানস {...}, স্ট্র্যান্ড অ্যাসাইনমেন্ট (a b)←...এবং যাত্রা সমর্থন করে যেমন লিনাক্সের জন্য ডায়ালগ বা রাস্পবেরি পিআই ( সহ ⎕IO←0)

লাইন 1 (যা 1 বাইট) একটি আক্ষরিক পালাবার চরিত্র। আপনি এটি Ctrl-V Escলিনাক্স টার্মিনাল বা ভিমে ব্যবহার করতে পারেন , বা Alt-027উইন্ডোতে যেমন অনুমিত কিছু ব্যবহার করতে পারেন । এছাড়াও, আমি টার্মিনাল আকারটি আবিষ্কারের একটি নির্ভরযোগ্য উপায় খুঁজে পাইনি, সুতরাং আপনি শেষ লাইনের শেষে সারি এবং কলামগুলির সংখ্যা সম্পাদনা করতে চাইতে পারেন।

আমি 50 টি বোনাসটি প্রতিরোধ করে যে প্রতিটি বৃষ্টিপাত নিম্নলিখিত আকারগুলির মধ্য দিয়ে যায়: ⍟∘.যা উপরের দিক থেকে দৃশ্যের দিকে তাকানো হচ্ছে তা দিয়ে সামান্য নীচের দিকে বাতাসের ছাপ দেয়। প্রকৃতপক্ষে, নীচের জিআইএফটি দেখে আপনার ধারণাটি পাওয়া উচিত যে মাটিতে অদৃশ্য হওয়ার আগে প্রতিটি ফোঁটা আলতো করে নীচের দিকে এবং বাম দিকে চলেছে।

অবরুদ্ধ সংস্করণ:

e←{⍞←∊"␛["⍵}                  # utility to print escape sequence
e¨'36m' '?25l' '2J'            # set cyan, hide the cursor and clear screen
{                              # repeat (⍵=current board of raindrops)
  ⍵←3⌊⍵+3×0=?t⍴50              #   add some new drops (=3) in random places
  ⍵{                           #   print the drops (⍺=drop value, ⍵=coords)
    (r c)←⍕¨⍵+1                #     convert the coordinates to string
    e r';'c'H',' .∘⍟'[⍺]       #     print or clear the drop
  }¨⍳t                         #   ..
  ∇0⌈⍵-1                       #   remove 1 from every drop and repeat
}0⍴⍨t←24 80                    # ..starting with an empty board

আউটপুট:

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


এপিএল, ভিন্ন স্টাইল

প্রতিযোগিতার বাইরে।

m←×/t←1+(ζη)←2×(βγ)←24 80
e←{⍞←∊(⎕UCS 27)'['⍵}
s←{⍵[β-1-⍳β;1+⍳γ]}
p←{⍺{e'H'⍺,⍨{⍺,';',⍵}/⍕¨⍵}¨(,s⍵)/,1+⍳βγ}
e¨'2J' '36m' '?25l'
{'/'p⍵←(200<m÷?t⍴m)∨0⍪⍵[⍳ζ;1+⍳η],0
' 'p(~⍵)∧0,⍵[1+⍳ζ;⍳η]⍪0
'.∘°'[?(+/,sδ)/3]pδ←⍵∧~d←.2<m÷⍨?t⍴m
∇⍵∧d}t⍴0

এখানে আমার লক্ষ্য ছিল বৃষ্টিপাতগুলি একটি স্লান্টের সাথে পড়ে এবং মাটিতে জমা হওয়ার ছাপ দেওয়া, যখন দৃশ্যমান ড্রপগুলির সংখ্যা (হয় পড়ে যাওয়া বা ছড়িয়ে ছিটিয়ে) গড়ে অবিরত রাখার চেষ্টা করার সময়। কৌশলটি ছিল /প্রতিটি চক্রটিতে প্রচুর নতুন ঝরঝরে ড্রপ তৈরি করা এবং পড়ন্ত ড্রপগুলি তারা যে কোনও ছড়িয়ে ছিটিয়ে থাকা যত্রতত্র ভ্রমণ করে "মুছা" করে।

ফলাফলটি অদ্ভুতভাবে ম্যাট্রিক্স কোডের স্মরণ করিয়ে দেয়।

আউটপুট
(প্রতিটি 5s জার্ক জিআইপি লুপিং হয়)

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


এটি দুর্দান্ত, তবে আমি মনে করি না ইসির অক্ষরটি সঠিকভাবে মুদ্রিত হচ্ছে। i.stack.imgur.com/vLERQ.png আমি জিডিট দিয়ে কোডটি আটকানোর চেষ্টা করেছি, কাজ হয়নি।
Riking

আপনি আপনার স্কোর ভুল পেয়েছেন। প্রশ্নটি "বাইটস" বলে, "চরগুলি" নয়।
jazzpi

1
@ রিকিং আমি সেই অংশটি সম্পাদনা করেছি। আপনি যদি আবার চেষ্টা করেন তবে এটি কাজ করা উচিত।
টোবিয়া

@ টোবিয়া আপনার আইবিএম ৫১০০ এ বসে আপনার একটি ছবি আমাকে দেখান, এবং আমি অক্ষর = বাইট যুক্তি কিনব buy
primo


42

বাশ: 111 বাইট - 20 = 91 পয়েন্ট!

আপনার টার্মিনালে একটি মননশীল মৃদু বৃষ্টিপাত। বিভিন্ন উচ্চতা এবং প্রস্থের জন্য যথাক্রমে 819 এবং 41 সংখ্যাগুলি সামঞ্জস্য করুন।

e='printf \e';while :;do for i in {0..819};do((RANDOM<9))&&$e[1\;36m.||$e[1C;((i%41<1))&&$e'
';done;$e[20A;done

স্ক্রিনশট

একটি মনোরম বোনাস হল বৃষ্টি অঞ্চল জুড়ে যেভাবে কার্সার পিটার-প্যাটারগুলি।

সম্পাদনা করুন: @ ম্যানটওয়ার্কের পরামর্শের জন্য 140 বাইট থেকে 129 বাইটে ছোট করা ২ য় সম্পাদনা: @ ম্যানটওয়ার্ক এবং @ টোবিয়ার পরামর্শ, আরও অতিরিক্ত অনুপ্রেরণার জন্য 129 বাইট থেকে 111 বাইট ছোট করা - মন্তব্যগুলি দেখুন

(দ্রষ্টব্য: স্ক্রিনশটটি কোডটির পূর্ববর্তী কম-গল্ফযুক্ত সংস্করণ দেখায়, যা কার্যকরীভাবে অভিন্ন)


1
আপনি বাছাই করতে পারেন: echoবিকল্পগুলির সাথে যোগ দিয়ে 2 টি অক্ষর ; \eপরিবর্তে 2 অক্ষর ব্যবহার করে \033; :পরিবর্তে 3 অক্ষর ব্যবহার করে true; গাণিতিক মূল্যায়ন (ব্যবহার করে 5 অক্ষরের ((…))): e='echo -ne \e';while :;do for i in {0..19};do for i in {0..40};do ((RANDOM<9))&&$e"[1;36m".||$e[1C;done;$e' ';done;$e[20A;done
manatwork

1
পাটিগণিত মূল্যায়নের ভিতরে আপনার সিগিলের দরকার নেই। এবং আপনার কোডের শেষে অবশ্যই একটি পিছনের নিউলাইন থাকতে হবে। কেবল 127 টি অক্ষর হওয়া উচিত।
manatwork

1
আমি বিশ্বাস করি @ মান্যাটওয়ার্ক এর অর্থ হ'ল ডাবল প্যারেন্টেসিসের মধ্যে আপনার ডলারের চিহ্নটি ব্যবহার করার দরকার নেই: ((RANDOM<9))ঠিক তেমন কাজ করে। এছাড়াও, আপনি এর কোডটির অভ্যন্তরে এমন কিছু ব্যবহার করে দুটি এর জন্য {0..19}এবং {0..40}একক জন্য সংযুক্ত করে আপনার কোড সঙ্কুচিত করার চেষ্টা {0..819}করতে পারেন $((i%41))
টোবিয়া

1
কেউ আমাকে থামায় !! e='printf \e'এর চেয়ে কম 2 চর e='echo -ne \e'!
টোবিয়া

1
এবং ব্যবহার করে আরও একটি চর ছাঁটা$e[C
টোবিয়া

39

পাইথন, 312 বাইট - 50 (বায়ু) = 262

from pygame import*
R=__import__('random').randint
t,u=640,480;init();d=display;s=d.set_mode((t,u))
w=[255]*3;r=range(t)
a=[[R(0,t),R(0,u),R(3,6)]for i in r]
while time.wait(9):
 d.flip();event.get();s.fill(R(0,99)<1and w)
 for i in r:x,y,z=a[i];draw.line(s,w,(x,y),(x+z,y+2*z));a[i][0]=(x+z)%t;a[i][1]=(y+z*2)%u

নমুনা আউটপুট (একটি 50-ফ্রেমের লুপ):

আসল প্লেপ্যাকটি জিআইএফএসের মঞ্জুরির তুলনায় উল্লেখযোগ্যভাবে দ্রুত।


3
@ ক্রিশ্চিয়ানকারেগা আমি পারতাম, তবে আমি মনে করি সাদা দেখতে আরও ভাল দেখাচ্ছে।
primo

8
আমার চোখে কেবল সমস্যা: আপনি পাশ থেকে বৃষ্টি দেখছেন, যখন নিয়মগুলি স্থির ক্যামেরাটি নীচে দেখছে state
জোহানেস এইচ।

7
@JohannesH। বা, এটি খুব খুব বাতাসের দিন day
primo

20
আমি মাঝে মাঝে বজ্রপাতের ঝলকানি পছন্দ করি! : পি
দ্য

3
একটি অক্ষর লাইনের R=__import__("random").randintপরিবর্তে ব্যবহার করে সংরক্ষণ করা হয় from random...
সাইমনটি

35

এইচটিএমএল / জেএস, 170 টি অক্ষর - 20 = 150 পয়েন্ট

<canvas id=c></canvas><script>d=400;with(c)width=height=d,t=getContext('2d');t.fillStyle='blue';setInterval("t.fillRect(Math.random()*d,Math.random()*d,5,5)",50)</script>

(sidenote: থেকে একটি স্ট্রিং ক্ষণস্থায়ী আরো golfed setInterval, with!, স্বয়ংক্রিয় আইডি পরিবর্তনশীল নামের ... এটা তাই ভুল মতানুযায়ী শিহরিত অবস্থা )

এটি কেবল এলোমেলো নীল আয়তক্ষেত্র আঁকে।

এইচটিএমএল / জেএস, 309 অক্ষর - 20 - 50 = 239 পয়েন্ট

এখন বাতাসের সাথে!

<canvas id=c></canvas><script>s=400;r=Math.random;with(c)width=height=s,t=getContext('2d');t.fillStyle='blue';o=[];setInterval("t.clearRect(0,0,s,s);for(i=0;++i<o.length;)d=o[i],t.fillRect(d[0],d[1],d[2],d[2]),d[0]+=1,d[1]+=2,d[2]-=1,d[2]<0?o.splice(i,1):0;if(r()<.6)o.push([r()*400,r()*400,20])",50)</script>


163 বাইট: <canvas id=c /><script>d=400;with(c)width=height=d,t=getContext('2d');t.fillStyle='blue';setInterval("t.fillRect(Math.random()*d,Math.random()*d,5,5)",50)</script>আঃআহহহহ! আমি ব্যবহার with! আমি একটি স্ট্রিং পাস করার চেয়ে আরও setInterval
নিবিড়

@নিথডার্কআবসুল ধন্যবাদ;) দেখে মনে হচ্ছে (ক্রোমে অন্তত) canvasস্বয়ংক্রিয়ভাবে বন্ধ হতে পারে না, তবে এটি পুরোপুরি কার্যকরভাবে কাজ করে other (এছাড়াও, স্বয়ংক্রিয় আইডি ভেরিয়েবলের নামগুলি ব্যবহার করাও ততই নোংরা অনুভব করে: ডি)
ডোরকনব

কিছু ব্রাউজারগুলি সেই অঞ্চলে আরও সুস্বাদু বলে মনে হচ্ছে ... তবে এটি ব্যবহার করা এড়ানো হয় onload। আমি অবশ্যই বলতে চাই যে আমি @ ফ্লোরেন্টের ডুপ্লিকেট এড়ানোর পদ্ধতি পছন্দ করিMath.random()
নিট দ্য ডার্ক আবসোল

@ canvasডুরকনব ক্রোমে অটোক্লোজ! আমার উত্তরটি এই ব্রাউজারে বিকাশ / পরীক্ষা করা হয়েছিল।
ফ্লোরেন্ট

1
দ্বিতীয়টির জন্য উপরে উঠুন, ড্রিপগুলি মাটিতে / পোঁদে ডুবে থাকবে।
গ্রিনএজজেড

34

জেএস + jQuery (172-20-50 = 102)

ব্রাউজার কনসোলে সেই লাইনটি অনুলিপি করুন / আটকান (সাধারণত F12 কী টিপুন):

r=Math.random;w=$(window);setInterval("$('<b>♥</b>').css({color:'red',position:'fixed',top:r()*w.height(),left:r()*w.width()}).appendTo('body').animate({fontSize:0},3e3)",9)

ভালোবাসা দিবসের জন্য অ্যানিমেটেড লাল হৃদয়ের বৃষ্টি!

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


1
ভাল, এটি বাস্তববাদী নয়। হৃদয়গুলি পর্দার শীর্ষ থেকে আসছে এবং পৃষ্ঠার এলোমেলো অবস্থানগুলিতে আটকে আছে। এটি সত্যিকারের দৃষ্টিকোণ শর্তের সাথে মেলে না।

10
AUGGGGHH! আমি কীভাবে এটি বন্ধ করব ?!
দ্য হাটের সাথে গাই

1
@ user2509848 তবে অন্য কোনও উপায় আছে কি?
দ্য হাটের সাথে গাই

3
@ দ্য গুয়ুইথথ হ্যাট, পৃষ্ঠাটি পুনরায় লোড করুন
মাইকেল এম

19
উজ্জ্বল! আমি মনে করি এটি প্রশ্নের হৃদয় ধারণ করে।
অ্যান্ড্রুব

26

ম্যাথামেটিকাল

134 - 20 = 114

2D

n = 99; m = Array[0 &, {n, n}]; r := RandomInteger[{1, n}, {2}]
Table[ArrayPlot[m = ReplacePart[m, r ->  1], ColorRules -> {1 -> Blue}], {k, 250}];
Export["d.gif", d]

2D


3D

রেইনড্রপ আকারটি z অক্ষের চারপাশে একটি বিপ্লব প্লটের মাধ্যমে তৈরি করা হয়।

প্রাথমিকভাবে, বৃষ্টিপাত এমন একটি অঞ্চলের জন্য উত্পন্ন হয় যা প্রদর্শন অঞ্চলের উপরে ভালভাবে প্রসারিত হয়। ঝরনা বৃষ্টির উপস্থিতি জেড-অক্ষের সাথে ভিউপয়েন্টটি উপরের দিকে সরানোর মাধ্যমে অর্জিত হয়। (এটি প্রতিটি রেইনড্রপের অবস্থান পুনরায় গণনার তুলনায় আরও দক্ষ)

বৃষ্টি

r = RandomInteger; z = Table[{r@30, r@30, r@160}, {100}];
w = RevolutionPlot3D[{.7 Sin[x] Cos[x], 0,   1.4 Sin[x] }, {x, 0, -Pi/2}, 
PerformanceGoal -> "Speed"][[1]];
c = Map[Translate[w, #] &, z]; 
p = Table[Graphics3D[c, PlotRange -> {k, k + 50}], {k, 1, 100}]
Export["p.gif", p]

বাতাসের সাথে

বাতাসের সাথে বৃষ্টিপাতের জন্য যথেষ্ট ওভারহেড রয়েছে। তবে আমি এখানে যাইহোক অন্তর্ভুক্ত করছি।

নীল তলটি অনেকটা {x, y} দর্শন অঞ্চলটিকে আগ্রহের ক্ষেত্রের মধ্যে সীমাবদ্ধ রাখে। কিছু ভুল আছে, কিন্তু, ওহ ভাল,

r = RandomInteger;
z = Table[{r@120, r@30, r@180}, {800}];
w = RevolutionPlot3D[{.7 Sin[x] Cos[x], 0,   1.4 Sin[x] }, {x, 
     0, -Pi/2}, PerformanceGoal -> "Speed"][[1]];
c = Map[Translate[w, #] &, z];
g[k_, z1_, w_, c1_] :=
 Module[{z2},
  z2 = Cases[z, {x_, _, _} /; 0 + k < x < 30 + k];
  c = Map[Translate[w, #] &, z2];
  Graphics3D[{Polygon[{{0 + k, 0, 1 + k}, {30 + k, 0, 1 + k}, {30 + k,
        30, 1 + k}, {0 + k, 30, 1 + k}}], c}, 
   PlotRange -> {k, k + 50}]]

p = Table[g[k, z, w, c], {k, 1, 100, 1}];
Export["p.gif", p]

বাতাসের সাথে


সরাসরি উপরে থেকে

নিকটতম বৃষ্টিপাতগুলি ক্লিপ করা হয়েছে তবে আমি এটি উপেক্ষা করব।

উপরের 3 ডি থেকে

m=40;
r=RandomInteger;
positions=Table[{r@m,r@m,r@1000},{800}];
g[lowZ_,pos_]:=
Module[{hiZ=lowZ+103},
Graphics3D[{PointSize[Small],White,Point[{{0,0,lowZ},{0,m,lowZ},{m,0,lowZ},{m,m,lowZ},{0,0,hiZ},{0,m,hiZ},{m,0,hiZ},{m,m,hiZ}}],
ImageSize-> 350,Sphere/@Cases[pos,{_,_,z1_}/;lowZ<z1<hiZ-2]},PlotRange->{lowZ,hiZ}, 
ViewPoint-> {0,0,1},ImagePadding->5]]

এটি 50 টিরও কম অক্ষরের পাশের দিকে স্থানান্তর করুন এবং আপনি আপনার স্কোর কমিয়ে আনুন। :)
আলী ক্যাগলায়ান

1
আমি এটি পছন্দ করি

+1 শেষ ক্যামেরার কোণ সহ, তবে আপনি ভুলে গেছেন যে ক্যামেরা কিছুটা বৃষ্টি
আটকে

@ গ্রীনআসজেড, থ্রিডি (উপরে থেকে) ভিউপয়েন্টের জন্য ক্লিপিং এখন ঠিক করা হয়েছে।
ডেভিডসি

মিষ্টি, তবে আপনি যা ভাবেন তার চেয়ে আমি বেশি বেহাল হয়ে উঠছিলাম। আমার অর্থ ছিল যে এখানে একটি ফিজিকাল ক্যামেরা রয়েছে এটি নীচে দেখছে, তাই এটি কিছু বৃষ্টিপাতকে ব্লক করা উচিত:%)
গ্রিনএজজেড

10

এইচটিএমএল / জাভাস্ক্রিপ্ট, 156 123 (143 - 20)

<body bgcolor=0 onload="t=c.getContext('2d');t.fillStyle='#07d';setInterval('n=Math.random()*4e4;t.fillRect(n%270,n/150,1,1)',1)"><canvas id=c>

টীকাগুলি সংস্করণ:

<body bgcolor="#000">
<canvas id="c"></canvas>
<script>
  onload = function() {
    // Retrieve the rendering context
    t=c.getContext('2d');
    // Set rain color
    t.fillStyle='#07d';
    // Render whenever it is possible
    setInterval(function() {
      // Generate a number between 0 and 40,000
      // 40,000 ~= 270 * 150
      n=Math.random()*4e4;
      // Draw a raindrop.
      // Since x and y are not rounded, the raindrop looks blurry!
      t.fillRect(n%270,n/150,1,1)
    }, 1);
  };
</script>
</body>

7

স্মলটাল্ক (স্মার্টটাক / এক্স)

এলোমেলো বাতাসের সাথে ;-)

|BG CLR N1 H W v WIND drops gen newDrops draw remove move buffer|


BG := Color black.
CLR := Color blue lightened.
H := 100.
W := 100.
N1 := 10.
WIND := 0.
drops := OrderedCollection new.

gen := [:n | ((1 to:n) collect:[:i | Random nextIntegerBetween:1 and:W] as:Set) collect:[:x | x@0]].
newDrops := [drops addAll:(gen value:N1)].
draw := [buffer fill:BG; paint:CLR. drops do:[:d | buffer displayPoint:d]].
remove := [drops := drops reject:[:d | d y > H]].
move := [:wind | drops := drops collect:[:d| (d x + wind)\\W @ (d y + 1)]].
v := View new openAndWait.
buffer := Form extent:(v extent) depth:24 onDevice:v device.

[
    [v shown] whileTrue:[
        draw value.
        v displayForm:buffer.
        move value:WIND.
        remove value.
        newDrops value.
        WIND := (WIND+(Random nextBetween:-1 and:1)) clampBetween:-5 and:5.
        Delay waitForSeconds:0.1.
    ]
] fork.

দেখুন আউটপুট: এখানে চিত্র বর্ণনা লিখুন


6
এটি যোগ্যতা অর্জন করে না কারণ এটি বৃষ্টিপাতের একটি পাশের দৃষ্টিভঙ্গি, এবং বৃষ্টিপাত মাটিতে পড়ে না। এখনও একটি দুর্দান্ত বায়ু প্রভাব।

6

প্রক্রিয়াজাতকরণ, 94 - 20 = 74

void setup(){background(0);fill(0,0,255);}
void draw(){ellipse(random(0,99),random(0,99),3,3);}

(পাঠযোগ্যতার জন্য নতুন লাইন যুক্ত হয়েছে added)

একটি অনলাইন ডেমো জন্য এখানে ক্লিক করুন


1
প্রসেসিং এ জাতীয় সমস্যার জন্য সত্যই ভাল।
সিজেফুরে

এটি ফায়ারফক্সে দেখতে পারা যায় না, ডিফল্ট সুরক্ষা সেটিংস জাভা অ্যাপলেটটিকে অবরুদ্ধ করে এবং কীভাবে ওভাররাইড করতে হয় তা আমাকে জানায় না। এএআইএফআইকে একটি প্রসেসিং.জেএস বন্দর জাভাস্ক্রিপ্টে রয়েছে, যদি আপনি এটিকে জেএসে রূপান্তর করতে পারেন এবং একটি লিঙ্ক পোস্ট করতে পারেন তবে আমি কৃতজ্ঞ হব।
marczellm

@ মার্কসেলম আমি উবুন্টুতে ফায়ারফক্স ২ 27.০ ব্যবহার করছি এবং এটি ভাল কাজ করে। আপনি কি নিশ্চিত যে প্লাগইনটিকে অনুমতি দেবে বা অবরুদ্ধ করবে কিনা আপনাকে জিজ্ঞাসা করার জন্য কোনও অনুরোধ নেই? আমি পাশাপাশি একটি জেএস সংস্করণ একবার দেখে নেব।
#HongKongInd dependence

@ace আমি সমস্ত অনুরোধগুলিকে "অনুমতি" দেওয়ার কথা বলার পরেও একটি সুরক্ষা বার্তা এটিকে অবরুদ্ধ করে। জেএস সংস্করণ জন্য ধন্যবাদ।
marczellm

1
@ মার্কসেল্ম উত্তরটিতে জাভাস্ক্রিপ্ট সংস্করণ যুক্ত করেছে, উপভোগ করুন :) এবং কেবল একটি অন্ধ অনুমান, সম্ভবত আপনার বর্তমান জাভা প্লাগইন সংস্করণটি পুরানো এবং সুরক্ষার সমস্যাগুলি
জেনে গেছে

5

সজোরে আঘাত

while true;do echo " / / / / /";echo "/ / / / / ";done

আমি নিশ্চিত নই যে এটি একটি কোড গল্ফ হওয়া উচিত কারণ "বৃষ্টি" কী দেখতে হবে তার কোনও কঠোর প্রয়োজন নেই।

সম্পাদনা: আপনি যদি ক্যামেরাটি দেখতে চাইলে সরাসরি ক্যামেরাটি নির্দেশ করছে তবে এটি ব্যবহার করুন:

while true;do echo " . . . . .";echo ". . . . . ";done

7
"ক্যামেরাটি স্থির হয়েছে: আপনি সরাসরি মাটির দিকে চেয়ে আছেন" " এটা কি পাশ থেকে বৃষ্টি দেখছে?
আন্ডারগ্রাউন্ডোমোনাইল

2
9 টি অক্ষর সংরক্ষণ করুন: while echo \ / / / / /;do echo / / / / /;done(বা একটি পুনরাবৃত্ত ফাংশন সহ আরও কয়েকটি কিন্তু এটি দ্রুত স্ট্যাকটি ফুটিয়ে তুলবে)। @ندرগ্রাউন্ডমোনোরাইল শক্ত বাতাস, ক্যামেরার তুলনায় তির্যক।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

@ গিলস সে ক্ষেত্রে, আমরা এটি করতে while echo -e '\e[0;34m / / / / /';do echo / / / / /;doneএবং বোনাস সহ এটি -13 এ নামাতে পারি :)
আন্ডারগ্রাউন্ডোরিওরাইল

4
এটি অবশ্যই বৃষ্টির মতো দেখাচ্ছে না: ডি
কিউই

5
এটিকে উত্তর হিসাবে বিবেচনা করা উচিত বলে আমি সত্যই মনে করি না। সংক্ষেপে: এটি বাস্তববাদী নয়। বিশদ যুক্তি: আমি যদি প্রশ্নের সঠিক ব্যাখ্যা দিয়ে থাকি তবে বৃষ্টি এলোমেলোভাবে পড়তে হবে (বা কমপক্ষে ছদ্ম-এলোমেলোভাবে) এবং দীর্ঘ সময় ধরে, প্রতি ইউনিট ক্ষেত্রের বিতরণ একই রকম হওয়া উচিত। (বৃষ্টি এভাবেই কাজ করে, তাই না?) তবে এই উত্তরে এটির গ্যারান্টি দেওয়া আছে যে কোনও বৃষ্টিপাতের পাশে বৃষ্টির ঝরনা থাকবে না, তাই আমরা যদি ইউনিট অঞ্চলটিকে একটি চরিত্রের ক্ষেত্র হিসাবে গ্রহণ করি তবে আমরা দেখতে পাই যে বিতরণ অসম।
#HongKongInd dependence

3

পাইথন 2.7: 195 - 20 = 175

আমি নিশ্চিত যে এখানে আরও অনেক কিছু করা যায় তবে আমি এখনই এটি পেয়েছি:

import os,time
from random import*
l=[i[:]for i in[[' ']*100]*50]
while 1:
 os.system('clear')
 l[randint(0,49)][randint(0,99)]='.'
 print'\033[94m\n'.join(''.join(r)for r in l)
 time.sleep(.05)

আমি কীভাবে এটি করতে হবে তা মনে রাখলে আমি আউটপুটটির একটি জিআইএফ পোস্ট করব।

এটি লিনাক্সে কাজ করে। এর সাথে প্রতিস্থাপন 'clear'করা 'cls'এটি উইন্ডোতে কাজ করে, তবে তখন এএনএসআই রঙগুলি কাজ করে না এবং আমি বোনাসটি হারাতে পারি।

আমার কাছে এক-চরিত্রের স্ট্রিংগুলির 2D অ্যারে রয়েছে, যা থেকে শুরু করে । প্রতি 0.05 সেকেন্ডে এগুলির মধ্যে একটি এলোমেলো সেট এ চয়ন করা হয় .এবং স্ক্রিনটি আবারও চিত্রিত হয়।

from random import*দুটি চরিত্রের উপরে import os,time,randomএবং random.randint()দু'বার ব্যবহার করে সংরক্ষণ করে , যদিও আমি নিশ্চিত না যে এটি যে কোনওভাবেই সেল চয়ন করার সেরা উপায়। আমি ব্যবহার করতে চেয়েছিলাম random.choice()কিন্তু আমি অপরিবর্তনীয় স্ট্রিংগুলির এমন কোনও উপায়ের কথা ভাবতে পারি না যা এটি সংরক্ষণের চেয়ে বেশি অক্ষর নষ্ট করবে না।


3
l=[i[:]for i in[[' ']*100]*50], স্ট্যাকওভারফ্লো . com / a / 6688361 / 1114687 অনুসারে । 198 - 20 = 178
n.st

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

আমি মূলত চেষ্টা করেছি l=[[' ']*100]*50, তবে এটি একই 100-উপাদান তালিকার 50 টি রেফারেন্স তৈরি করে, তাই আমি এটিকে অবরুদ্ধ করার জন্য সবচেয়ে সংক্ষিপ্ততম উপায় অনুসন্ধান করেছি এবং উপরে স্ট্যাক ওভারফ্লো উত্তরটি লিঙ্ক পেয়েছি।
n.st

2

132 + 27 - 20 - 50 = 89

জাভাস্ক্রিপ্ট (132)

r=Math.random;setInterval("$('body').append($('<i>∘</i>').css({left:r()*2e3,top:r()*2e3}).animate({left:'+=70',fontSize:0},500))",1)

সিএসএস (২))

i{color:blue;position:fixed

ডেমো: http://jsfiddle.net/kelunik/5WC87/4/ এম্বেডড / রিসাল্ট /


এটি সাইড ভিউ থেকে, এটি মুহুর্তের জন্য যোগ্যতা অর্জন করে না।

@ বেনহু আপনি ঠিক বলেছেন, সেই বিন্দুটি মিস করেছেন, আমার উত্তরটিতে এখন নতুন সংস্করণ রয়েছে।
কেলুনিক

ফায়ারফক্স কনসোলে আপনার কোড চেষ্টা করার পরে কিছুই ঘটছে বলে মনে হচ্ছে: /

@ বেনহহ সেইজন্য একটি জিসফিল-ডেমো রয়েছে।
কেলুনিক

এটা দেখেনি। ধন্যবাদ

1

প্রক্রিয়াজাতকরণ, 62 - 20 = 42

void draw(){stroke(0,0,214);point(random(0,99),random(0,99));}

একটি সাদা পটভূমিতে নীল পিক্সেল উত্পন্ন করে। এখানে খুব অনুরূপ ভাষায় বিক্ষোভ: https://www.khanacademy.org/cs/rain2/6172053633761280


চরম নষ্ট হওয়ার জন্য বাধ্যতামূলক +1।
primo

1

প্রসেসিং.জেএস, 86 - 20 = 66

... তবে এটি আস্তে আস্তে ম্লান হয়ে যায় (প্রাকৃতিকভাবে মাটি বৃষ্টি শোষণ করে)। এর জন্য পয়েন্টস?

g=99;r=random;void draw(){fill(0,9);rect(0,0,g,g);fill(0,g,r(g));rect(r(g),r(g),2,2);}

বোনাস বৈশিষ্ট্যগুলির মধ্যে সবুজ এবং নীলচে বর্ণের (এটি পরিষ্কারভাবে নোংরা 'শহর' বৃষ্টি) এর মধ্যে অন্তর্ভুক্ত রয়েছে।

এছাড়াও, আমি খুব খুশি হয়েছি যে আমি এখানে একটি জাভাস্ক্রিপ্ট হ্যাক ব্যবহার করতে পেরেছি; দ্রষ্টব্য, কারণ এটি প্রক্রিয়াজাতকরণ। JS , আপনি G = 99 typeless ঘোষণা বা ওরফে ভালো জিনিস নিক্ষেপ করতে rজন্য random(ক্রশ-ভাষা ওরফে!)।

অন্য কোন ধারণা মাইনাইফ?

পঠনযোগ্য সংস্করণ:

g = 99;
r = random;                  // Javascript trickery
void draw() {
    fill(0, 9);
    rect(0, 0, g, g);        // Fade the background
    fill(0, r(g), r);
    rect(r(g), r(g), 2, 2);  // Add a new drop
}

পুরো জিনিসটি এখানে দেখা যায়

... প্লাস বিবর্ণ ছাড়া অন্য সংস্করণ: 58 - 20 = 38

আপনি যদি বিবর্ণ পছন্দ না করেন এবং ধূসর ময়লা মনে করেন না:

r=random;void draw(){fill(0,0,255);rect(r(99),r(99),2,2);}

1

টিসিএল / টাকা, 139 - 20 = 119

আমার নিজের উত্তর পুনঃব্যবহার http://codegolf.stackexchange.com/a/143018/29325

ইন্টারেক্টিভ শেল চালানো আবশ্যক

gri [can .c -w 40 -he 40]
set x 0
wh 1 {.c cr o $x [set y [exp int(rand()*40)]] $x [set x $y] -f #[form %06x [exp int(rand()*255**3)]]
upd}

দুর্ভাগ্যবশত, রূপান্তর expr int(rand()*একটি মধ্যে procতোলে স্ক্রিপ্ট আরো এক বাইট আছে!

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

থামাতে, কেবলমাত্র অকার্যকর "এক্স" বোতামটি ক্লিক করতে হবে।

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