এএসসিআইআই আর্টে গ্রেডিয়েন্ট অঙ্কন


41

কার্য বিবরণী:

ASCII শিল্পে একটি রেডিয়াল গ্রেডিয়েন্ট আঁকার জন্য যতটা সম্ভব সংক্ষিপ্ত একটি প্রোগ্রাম লিখুন। আউটপুট গ্রিডের আকার পূর্বনির্ধারিত। গ্রেডিয়েন্টের জন্য ব্যবহৃত কেন্দ্র বিন্দু এবং অক্ষরগুলি প্রোগ্রামটির ইনপুট হিসাবে সরবরাহ করা হয়।

গ্রেডিয়েন্টটি নীচের স্পেসিফিকেশনগুলির সাথে আকারে 70 × 25 অক্ষরের ঘর হবে

  • গ্রিডের উপরের-বাম কোণে স্থানাঙ্ক রয়েছে (0, 0)।
  • সরবরাহ করা অক্ষরের সমন্বয়ে গ্রেডিয়েন্টটি 35 দৈর্ঘ্যের ইউনিটে ম্যাপ করা হয় । একটি দৈর্ঘ্যের এককটি একটি অক্ষর লম্বা এবং দুটি অক্ষর প্রশস্ত হয় (যেহেতু monospaced fontsসাধারণত তারা প্রশস্তের দ্বিগুণ হয়ে থাকে)।
  • সেই 35 টি এলইউর মধ্যে কেন্দ্র বিন্দু থেকে বর্তমান দূরত্বটি গ্রেডিয়েন্ট অক্ষরের সংখ্যার / 35 দ্বারা গুণিত হয় যাতে বিন্দুটি আঁকতে অক্ষরের সূচক হয়। সূচকের জন্য ভগ্নাংশের সংখ্যা এখানে শূন্যের দিকে বৃত্তাকার। দৈর্ঘ্যের এককগুলিকে একটি আসল সংখ্যা হিসাবে ছেড়ে যেতে হবে। (অবশ্যই, ফলাফলগুলি একই হয়, বাস্তবায়নে কিছু আসে যায় না))
  • এই 35 টি LU এর বাইরে কেবলমাত্র শেষ গ্রেডিয়েন্ট চরিত্রটি উপস্থিত হয়। তবে, যেহেতু শেষ গ্রেডিয়েন্ট »ব্যান্ড« ইতিমধ্যে 35 এলইউর মধ্যে শুরু হয়েছে , শেষ চরিত্রটি ইতিমধ্যে 35 এলইউ এর সংক্ষিপ্ত প্রদর্শিত শুরু করে।

ইনপুট:

ইনপুটটি স্ট্যান্ডার্ড ইনপুটটিতে দেওয়া হয় এবং তিনটি লাইন থাকে, প্রতিটি লাইন ব্রেক দ্বারা শেষ হয়:

  • এক্স গ্রেডিয়েন্ট কেন্দ্র বিন্দু তুল্য
  • Y গ্রেডিয়েন্ট কেন্দ্র বিন্দু তুল্য
  • গ্রেডিয়েন্ট আঁকার জন্য ব্যবহারযোগ্য অক্ষর। এগুলির মধ্যে স্পেস অন্তর্ভুক্ত থাকতে পারে।

আউটপুট:

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

নমুনা ইনপুট 1:

58
14
 .:;+=xX$&

নমুনা আউটপুট 1:

&&$$$$$$$$XXXXXXXXxxxxxxxxx===========++++++++++++++++++++++++++++++++
&$$$$$$$$XXXXXXXXxxxxxxxxx=========+++++++++++++;;;;;;;;;;;;;;;;;;;;;+
$$$$$$$$XXXXXXXXxxxxxxxx=========+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$$XXXXXXXXxxxxxxxx========++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$XXXXXXXXxxxxxxxx========+++++++++;;;;;;;;;;;;;:::::::::::::;;;;;
$$$$$XXXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;;;:::::::::::::::::::::;
$$$$$XXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;:::::::::::::::::::::::::
$$$$XXXXXXXXxxxxxxx=======++++++++;;;;;;;;;:::::::::::::::::::::::::::
$$$$XXXXXXXxxxxxxx========+++++++;;;;;;;;::::::::::...............::::
$$$XXXXXXXXxxxxxxx=======+++++++;;;;;;;;:::::::::...................::
$$$XXXXXXXxxxxxxx=======++++++++;;;;;;;::::::::.......................
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;::::::::.........       ........
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........           ......
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::.......             .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::.......             .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::.......             .....
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;:::::::........           ......
$$$XXXXXXXxxxxxxx=======+++++++;;;;;;;::::::::.........       ........
$$$XXXXXXXxxxxxxx=======++++++++;;;;;;;::::::::.......................
$$$XXXXXXXXxxxxxxx=======+++++++;;;;;;;;:::::::::...................::
$$$$XXXXXXXxxxxxxx========+++++++;;;;;;;;::::::::::...............::::
$$$$XXXXXXXXxxxxxxx=======++++++++;;;;;;;;;:::::::::::::::::::::::::::
$$$$$XXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;:::::::::::::::::::::::::
$$$$$XXXXXXXXxxxxxxxx=======+++++++++;;;;;;;;;;;:::::::::::::::::::::;
$$$$$$XXXXXXXXxxxxxxxx========+++++++++;;;;;;;;;;;;;:::::::::::::;;;;;

নমুনা ইনপুট 2:

0
0
X.X.X.X

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

XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXX............XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXX.............XXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXX
..................XXXXXXXXXXX..........XXXXXXXXXX...........XXXXXXXXXX
................XXXXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXXX
...............XXXXXXXXXXXX...........XXXXXXXXXX...........XXXXXXXXXXX
............XXXXXXXXXXXXXX...........XXXXXXXXXXX..........XXXXXXXXXXXX
.........XXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX.............XXXXXXXXXXX...........XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXX...........XXXXXXXXXXXXXXX
XXXXXXXXXXXXXXX................XXXXXXXXXXXX............XXXXXXXXXXXXXXX
XXXXXXXXXXX..................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXX
...........................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXX
........................XXXXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXXX
......................XXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXX
..................XXXXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXXXX
.............XXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX.................XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX...................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXX......................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

নমুনা ইনপুট 3:

70
25
.:+#

নমুনা আউটপুট 3:

######################################################++++++++++++++++
#################################################+++++++++++++++++++++
#############################################+++++++++++++++++++++++++
##########################################++++++++++++++++++++++++++++
#######################################+++++++++++++++++++++++++++++++
####################################++++++++++++++++++++++++++++++++++
##################################++++++++++++++++++++++++++++++++++++
################################++++++++++++++++++++++++++++++++++++++
##############################++++++++++++++++++++++++++++++++::::::::
#############################+++++++++++++++++++++++++++::::::::::::::
###########################+++++++++++++++++++++++++::::::::::::::::::
##########################++++++++++++++++++++++++::::::::::::::::::::
#########################++++++++++++++++++++++:::::::::::::::::::::::
########################+++++++++++++++++++++:::::::::::::::::::::::::
#######################++++++++++++++++++++:::::::::::::::::::::::::::
######################++++++++++++++++++++::::::::::::::::::::::::::::
#####################+++++++++++++++++++::::::::::::::::::::::::::::::
####################+++++++++++++++++++::::::::::::::::::::::::.......
####################++++++++++++++++++::::::::::::::::::::::..........
###################+++++++++++++++++++::::::::::::::::::::............
###################++++++++++++++++++:::::::::::::::::::..............
###################+++++++++++++++++:::::::::::::::::::...............
##################++++++++++++++++++::::::::::::::::::................
##################++++++++++++++++++:::::::::::::::::.................
##################++++++++++++++++++:::::::::::::::::.................

নমুনা ইনপুট 4

59
1
 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789<>|,.-#+!$%&/()=?*'_:;

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

!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCAzyxwutsrqonmljihgfdcba abcdfghijl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><97654310ZYXVUTSQPONMKJIHGEDCBAyxwvutrqponmkjihgffeedeeffghijkm
$+#-.|><98654320ZYXWUTSRQONMLKIHGFEDBAzyxwutsrqponmlkjihhggggghhijklmn
$!#-.,|<987643210YXWVUSRQPONLKJIHGEDCBAzywvutsrqponmllkjjjiiijjjkllmno
$!+#.,|><87654210ZYXVUTSRQONMLKJHGFEDCBAzywvutsrrqponnmmlllllllmmnnopq
%!+#-.|><987543210YXWVUTRQPONMLJIHGFEDCBAzyxwvutsrrqppooonnnnnoooppqrr
%$!+-.,|><87654310ZYXWVTSRQPONMLJIHGFEDCBAzyxxwvuttssrrqqqqqqqqqrrsstt
&%!+#-.,><987643210ZYXVUTSRQPONMLKJIHGFEDCBAzyyxwvvuutttssssssstttuuvv
&%$!+#.,|><986543210ZYWVUTSRQPONMLKJIHGFEDDCBAzzyyxwwwvvvuuuuuvvvwwwxy
/&%$!#-.,|><976543210ZYXVUTSRQPONMLKKJIHGFEEDCBBAAzzyyyxxxxxxxxxyyyzzA
(/&%!+#-.,|><876543210ZYXWVUTSRQPONMLKJJIHGGFEEDCCBBBAAAzzzzzzzAAABBBC
)(/%$!+#-.,|><876543210ZYXWVUTSRQPPONMLKKJIIHGGFFEEDDDCCCCCCCCCCCDDDEE
=)(&%$!+#-.,|><986543210ZYYXWVUTSRQPPONMMLKKJIIHHGGGFFFEEEEEEEEEFFFGGG
?=)(&%$!+#-.,|><9876543210ZYXWVVUTSRRQPOONMMLLKJJJIIIHHHHHHHHHHHHHIIIJ
*?=)(/%$!+#-.,|><98765432210ZYXWWVUTSSRQQPOONNMMLLLKKKJJJJJJJJJJJKKKLL
'*?=)(/&%$!+#-.,|><98765432110ZYXXWVUUTSSRRQPPOOONNNMMMMMLLLLLMMMMMNNN
_'*?=)(/&%$!+#-.,|><988765432210ZYYXWWVUUTTSSRRQQQPPPOOOOOOOOOOOOOPPPQ
:_'*?=)(/&%$!+##-.,|><9877654332100ZYYXXWVVUUTTTSSSRRRRQQQQQQQQQRRRRSS
;;:_'*?=)(/&%$!+#-.,,|><98876554322100ZZYYXXWWVVVUUUTTTTTTTTTTTTTTTUUU
;;;:_'*?=)(/&&%$!+#-.,,|><9987665443321100ZZYYYXXXWWWWVVVVVVVVVVVWWWWX
;;;;;:_'*?=)(/&%$$!+#-..,|>><9887665544322211000ZZZYYYYYYYYYYYYYYYYYZZ
;;;;;;:_'*??=)(/&%%$!+##-.,,|><<99877665544333222111100000000000001111
;;;;;;;;:_'*?==)(/&&%$!++#--.,,|>><<9887766655544433333322222223333334

এক সপ্তাহ কেটে গেল। আমাদের বিশ্ববিদ্যালয়ের প্রতিযোগিতা থেকে সমাধানের দৈর্ঘ্যটি উন্মোচন করার সময় এসেছে:

167 - পাইথন
189 - হাস্কেল
203 - সি
210 - ভিবি.নেট
219 - সি

এবং আমাদের নিজস্ব সমাধান:

  91 - গল্ফস্ক্রিপ্ট
125 - রুবি
157 - পাওয়ারশেল


9
ভাবছিলাম এটা খুব ASCII অত্যাধুনিক প্রশ্নের জন্য একটি ট্যাগ আছে শীতল হবে
gnibbler

আমি হয় LU ধারণাটি নিয়ে সমস্যায় পড়ছি বা আপনার নমুনা আউটপুটগুলি ভুল। আমি প্রতিটি ব্যান্ডে যা বুঝেছি সেগুলি থেকে একাধিক অক্ষর থাকা উচিত, তবুও আপনার নমুনাগুলিতে এটি সত্য নয়। আপনি কি আমাকে এটি বুঝতে সাহায্য করতে পারেন?
হুয়ান

@ জুয়ান: আপনার সঠিক অর্থ কি? আমি ব্যাখ্যা করতে চুষছি এবং ইতিমধ্যে গত বছর করেছি, সত্যি বলতে। শেষ ব্যান্ডটি চিত্রের বাকি অংশে প্রসারিত। অন্যথায়, দ্বিতীয় উদাহরণ এটি সবচেয়ে স্পষ্ট করে তোলে, আমার ধারণা। যেহেতু 35 এলইউ 70 টি অক্ষর প্রশস্ত, প্রতিটি ব্যান্ড (যার মধ্যে 7 টি) শীর্ষ রেখায় 10 টি অক্ষর প্রস্থ। বাম প্রান্ত বরাবর প্রতিটি ব্যান্ড 5 টি অক্ষর লম্বা (তবে কেবল প্রথম 5 টি ব্যান্ড গ্রিডের উচ্চতায় ফিট করে)।
জোয়

@ জোয়ি আমার অর্থ, একটি নির্দিষ্ট লাইনে একটি ব্যান্ডের প্রস্থ সমান হওয়া উচিত, যেহেতু একটি ব্যান্ড এন এলইউ দ্বারা রচিত হবে (প্রতিটি 2 টি অক্ষর প্রশস্ত)। সুতরাং আমাদের প্রতি ব্যান্ড প্রতি 2 * এন অক্ষর আছে। এটা কী ঠিক?
জুয়ান

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

উত্তর:


11

রুবি ১.৯, 116 114 108 101 অক্ষর

x,y,z=*$<;25.times{|r|70.times{|c|$><<z[[(c-x.to_i+2.i*(r-y.to_i)).abs/70.0*k=z=~/$/,k-1].min]};puts}

27

ব্রেইনফাক - 1286

এটি এখনও আমার প্রিয় একটি সৃষ্টি। একটি ওয়ার্কিং (কাজের কিছু সংজ্ঞার জন্য) বর্গমূলের ফাংশন অন্তর্ভুক্ত করে।

>,>,<<<<<<<+>,[<+[<+>-],]<-[>>[>]>>>+<<<<[<]<-]>>[<+<+<+>>>-]<<<[>>>+<
<<-]>[>]>>>>>>>+++++[<+++++>-]<[>>+++++++[<++++++++++>-]<[>>+++++++[<+
+++++++++>-]<<[>->+<<-]>>[<<+>>-]<<<<<[>>>>->+<<<<<-]>>>>>[<<<<<+>>>>>
-]<[>+>+<<-]>[<+>-]>>+++++++[<<++++++++++>>-]>[-]>[-]+>[-]<<<<[>+>+<<-
]>[<+>-]<<[>>+<<-]+>>>[>-]>[<<<<->>[-]>>->]<+<<[>-[>-]>[<<<<->>[-]+>>-
>]<+<<-]>[-]>[-]<<<[-]<[-<+[+>+<]>+[<+>-]]++<[->-[>+>>]>[+[-<+>]>+>>]<
<<<<]>[-]>[-]>[<<<+>>>-]<+++++[<+++++>-]<<<<[>>>->+<<<<-]>>>>[<<<<+>>>
>-]<<<<<[>>>>->+<<<<<-]>>>>>[<<<<<+>>>>>-]<[>+>+<<-]>[<+>-]>>+++++[<<+
++++>>-]>[-]>[-]+>[-]<<<<[>+>+<<-]>[<+>-]<<[>>+<<-]+>>>[>-]>[<<<<->>[-
]>>->]<+<<[>-[>-]>[<<<<->>[-]+>>->]<+<<-]>[-]>[-]<<<[-]<[-<+[+>+<]>+[<
+>-]]<<[>>+>+<<<-]>>[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]<[<<+>>-]<
[>+>+<<-]>[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>-]>-]<<[-]<[<<+>>-]<<>+>>+<<<[
[>>+>>+<<<<-]>>>>[<<<<+>>>>-]>[-]>[-]+>[-]<<<<[>+>+<<-]>>[<<+>>-]<<<[>
>>+<<<-]>>>[>-]>[<<<<+>>[-]>>->]<+<<[>-[>-]>[<<<<+>>[-]+>>->]<+<<-]>[-
]>[-]<<+<<[>>-<[-]<-<<[-]>>]>>[-<<<[>+>+<<-]+>[<+>>+<-]>+>]<<<<]>[<+>-
]<-<<<<<[<+>->>>>>>+<<<<<<]<[>+<-]>>>>>>[>>>+<<<-]>>>[<<[<+>>+<-]>[<+>
-]>-]<+++++++<[-]>[<+++++>-]<<[->-[>+>>]>[+[-<+>]>+>>]<<<<<]>[-]>[-]>[
<<<<<<<<<<<+>>>>>>>>>>>-]<<<<<<<<<<<[-<[>>+<<-]>[<+>-]<]<.>>>[[<<+>>-]
>]>>>>>-]++++++++++.[-]<-]

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

আউটপুট 1:

&$$$$$$$$XXXXXXXXxxxxxxxxxx========++++++++++++++++++++++;;;++++++++++
$$$$$$$$$XXXXXXxxxxxxxxxx========++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$$XXXXXXXXxxxxxxxx========++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;
$$$$$$$XXXXXXxxxxxxxxxx======++++++++++++;;;;;;;;;;;;;;;;:::;;;;;;;;;;
$$$$$XXXXXXXXxxxxxxxx========++++++++++;;;;;;;;;;:::::::::::::::::::;;
$$$$$XXXXXXxxxxxxxxxx======++++++++++;;;;;;;;:::::::::::::::::::::::::
$$$$$XXXXXXxxxxxxxx======++++++++++;;;;;;;;:::::::::::::::::::::::::::
$$$XXXXXXxxxxxxxxxx======++++++++;;;;;;;;::::::::::::::::...::::::::::
$$$XXXXXXxxxxxxxx========++++++++;;;;;;::::::::::::...............::::
$$$XXXXXXxxxxxxxx======++++++++;;;;;;;;::::::::::...................::
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::::..........   ..........
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::........           ......
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::......               ....
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::......               ....
$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::......                   ..
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::......               ....
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::......               ....
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::........           ......
$$$XXXXXXxxxxxxxx======++++++++;;;;;;::::::::::..........   ..........
$$$XXXXXXxxxxxxxx======++++++++;;;;;;;;::::::::::...................::
$$$XXXXXXxxxxxxxx========++++++++;;;;;;::::::::::::...............::::
$$$XXXXXXxxxxxxxxxx======++++++++;;;;;;;;::::::::::::::::...::::::::::
$$$$$XXXXXXxxxxxxxx======++++++++++;;;;;;;;:::::::::::::::::::::::::::
$$$$$XXXXXXxxxxxxxxxx======++++++++++;;;;;;;;:::::::::::::::::::::::::
$$$$$XXXXXXXXxxxxxxxx========++++++++++;;;;;;;;;;:::::::::::::::::::;;

আউটপুট 2:

XXXXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XXXXXXXX............XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
XX................XXXXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
..................XXXXXXXXXX............XXXXXXXXXX..........XXXXXXXXXX
................XXXXXXXXXXXX..........XXXXXXXXXXXX..........XXXXXXXXXX
..............XXXXXXXXXXXX............XXXXXXXXXX..........XXXXXXXXXXXX
..........XXXXXXXXXXXXXXXX..........XXXXXXXXXXXX..........XXXXXXXXXXXX
..XXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXXX............XXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXXXXX..........XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXX............XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX................XXXXXXXXXXXX............XXXXXXXXXXXXXX
XXXXXXXXXXXX..................XXXXXXXXXXXX............XXXXXXXXXXXXXXXX
XX..........................XXXXXXXXXXXXXX..........XXXXXXXXXXXXXXXXXX
..........................XXXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXX
......................XXXXXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXXXX
..................XXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXX
..............XXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXX
..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXX................XXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXX..................XXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX....................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX......................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

3
আমি এই ভয়াবহ এবং ভয়ঙ্কর বিবেচনার মধ্যে ছিড়ে ফেলেছি: ডি। আমি অনুমান করি যে একটি সঠিক বর্গমূল কেবলমাত্র একটি অনুসন্ধানের টেবিল বা আরও অনেক কোড সহ করা যেতে পারে
জয়ে

চেহারা সাহায্য করবে না। আমি বর্গমূলের ঠিক নীচে পূর্ণসংখ্যার গণনা করতে পারি। ভাসমান পয়েন্টটি পরিচালনা করতে আপনার একটি নতুন ডেটা উপস্থাপনা দরকার এবং আমি এই লাফটি প্রস্তুত করতে প্রস্তুত নই।
ক্যাপচার্যাগ

12

পাইথন - 141 অক্ষর

x=input();y=input();z=raw_input();w=len(z)
for i in range(-y,25-y):print"".join(z[min(w-1,int((i*i*4+j*j)**.5*w/70))]for j in range(-x,70-x))

8

দেলফি, 200 (এবং 185)

যেহেতু আমি এখানে অসি-আর্ট পছন্দ করি এই কোড গল্ফের একটি ডেল্ফি সংস্করণ:

uses Math;var G:string;X,Y,l,i,j:Int16;begin ReadLn(X,Y);ReadLn(G);l:=Length(G);for j:=-y to 24-y do for i:=-x to 70-x do if i=70-x then WriteLn else Write(g[Min(l,1+Trunc(l*sqrt(i*i/4+j*j)/35))])end.

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

যাইহোক, নমুনা 4 এর আউটপুট আমাকে দেয়:

!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCAzyxwutsrqonmljihgfdcba abcdfghijl
!+#-,|><87654210ZYWVUTRQPONLKJIHFEDCBzyxwutsrqonmlkjhgfedcbbbcdefghjkl
!+#-,|><97654310ZYXVUTSQPONMKJIHGEDCBAyxwvutrqponmkjihgffeedeeffghijkm
$+#-.|><98654320ZYXWUTSRQONMLKIHGFEDBAzyxwutsrqponmlkjihhggggghhijklmn
$!#-.,|<987643210YXWVUSRQPONLKJIHGEDCBAzywvutsrqponmllkjjjiiijjjkllmno
$!+#.,|><87654210ZYXVUTSRQONMLKJHGFEDCBAzywvutsrrqponnmmlllllllmmnnopq
%!+#-.|><987543210YXWVUTRQPONMLJIHGFEDCBAzyxwvutsrrqppooonnnnnoooppqrr
%$!+-.,|><87654310ZYXWVTSRQPONMLJIHGFEDCBAzyxxwvuttssrrqqqqqqqqqrrsstt
&%!+#-.,><987643210ZYXVUTSRQPONMLKJIHGFEDCBAzyyxwvvuutttssssssstttuuvv
&%$!+#.,|><986543210ZYWVUTSRQPONMLKJIHGFEDDCBAzzyyxwwwvvvuuuuuvvvwwwxy
/&%$!#-.,|><976543210ZYXVUTSRQPONMLKKJIHGFEEDCBBAAzzyyyxxxxxxxxxyyyzzA
(/&%!+#-.,|><876543210ZYXWVUTSRQPONMLKJJIHGGFEEDCCBBBAAAzzzzzzzAAABBBC
)(/%$!+#-.,|><876543210ZYXWVUTSRQPPONMLKKJIIHGGFFEEDDDCCCCCCCCCCCDDDEE
=)(&%$!+#-.,|><986543210ZYYXWVUTSRQPPONMMLKKJIIHHGGGFFFEEEEEEEEEFFFGGG
?=)(&%$!+#-.,|><9876543210ZYXWVVUTSRRQPOONMMLLKJJJIIIHHHHHHHHHHHHHIIIJ
*?=)(/%$!+#-.,|><98765432210ZYXWWVUTSSRQQPOONNMMLLLKKKJJJJJJJJJJJKKKLL
'*?=)(/&%$!+#-.,|><98765432110ZYXXWVUUTSSRRQPPOOONNNMMMMMLLLLLMMMMMNNN
_'*?=)(/&%$!+#-.,|><988765432210ZYYXWWVUUTTSSRRQQQPPPOOOOOOOOOOOOOPPPQ
:_'*?=)(/&%$!+##-.,|><9877654332100ZYYXXWVVUUTTTSSSRRRRQQQQQQQQQRRRRSS
;;:_'*?=)(/&%$!+#-.,,|><98876554322100ZZYYXXWWVVVUUUTTTTTTTTTTTTTTTUUU
;;;:_'*?=)(/&&%$!+#-.,,|><9987665443321100ZZYYYXXXWWWWVVVVVVVVVVVWWWWX
;;;;;:_'*?=)(/&%$$!+#-..,|>><9887665544322211000ZZZYYYYYYYYYYYYYYYYYZZ
;;;;;;:_'*??=)(/&%%$!+##-.,,|><<99877665544333222111100000000000001111
;;;;;;;;:_'*?==)(/&&%$!++#--.,,|>><<9887766655544433333322222223333334

আপনি যদি ইনডেন্টড আউটপুট গ্রহণ করতে চান তবে এই সংস্করণটি নিউলাইনটিকে একটি ইনডেন্টে পরিবর্তন করে কিছুটা খাটো করা হবে যা একটি 80-অক্ষরের মোড়কে নিয়ে যায় (স্ট্যান্ডার্ড 80x25 কনসোলগুলিতে একটি নতুন লাইন সিমুলেট করে):

uses Math;var G:string;X,Y,l,i,j:Int16;begin ReadLn(X,Y);ReadLn(G);l:=Length(G);for j:=-y to 24-y do for i:=-x to 70-x do Write(g[Min(l,1+Trunc(l*sqrt(i*i/4+j*j)/35))]:11*Ord(i=-x))end.

(এটি মোট 185 টি অক্ষরের জন্য 15 টি অক্ষর সংরক্ষণ করে)। এটি "0 0 XXXX" এর আউটপুট:

          XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
          XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
          XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
          XXXXXXXX............XXXXXXXXXX..........XXXXXXXXXX..........XXXXXXXXXX
          XXXXXX.............XXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXX
          ..................XXXXXXXXXXX..........XXXXXXXXXX...........XXXXXXXXXX
          ................XXXXXXXXXXXX...........XXXXXXXXXX..........XXXXXXXXXXX
          ...............XXXXXXXXXXXX...........XXXXXXXXXX...........XXXXXXXXXXX
          ............XXXXXXXXXXXXXX...........XXXXXXXXXXX..........XXXXXXXXXXXX
          .........XXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXXXXX............XXXXXXXXXXX...........XXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXXX.............XXXXXXXXXXX...........XXXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXX...........XXXXXXXXXXXXXXX
          XXXXXXXXXXXXXXX................XXXXXXXXXXXX............XXXXXXXXXXXXXXX
          XXXXXXXXXXX..................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXX
          ...........................XXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXX
          ........................XXXXXXXXXXXXXXX............XXXXXXXXXXXXXXXXXXX
          ......................XXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXX
          ..................XXXXXXXXXXXXXXXXX.............XXXXXXXXXXXXXXXXXXXXXX
          .............XXXXXXXXXXXXXXXXXXXX..............XXXXXXXXXXXXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXXXXXXXXXX...............XXXXXXXXXXXXXXXXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXXXXXX.................XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          XXXXXXXXXXXXXXXXXXXX...................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          XXXXXXXXXXXXXX......................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

(আপনি কি ইনডেন্টটি দেখতে পাচ্ছেন?! ;-))


7

এপিএল ()৪)

{L←⍴⊃C Y X⎕IO←⍞⎕⎕0⋄⎕←{C[⊃⌊L⌊35÷⍨L×.5*⍨+/2*⍨1 2÷⍨⍵-Y X]}¨⍳⍵}25 70

এটি কোনও ফাংশনে আবৃত হওয়ার কারণ হ'ল সংশোধনটি ⎕IOসিস্টেমের বাকী অংশে প্রযোজ্য নয়।

ব্যাখ্যা:

  • L←⍴⊃C Y X⎕IO←⍞⎕⎕0: সেট ⎕IOকরুন 0(1-ভিত্তিক পরিবর্তে অ্যারে 0-ভিত্তিক তৈরি করা), এক্স সেট করুন (প্রথম লাইনটি পড়ুন), Y তে সেট করুন (দ্বিতীয় লাইন পড়ুন), সি সেট করুন (তৃতীয় লাইনটি পড়ুন, বিন্যাস ছাড়াই) এবং এল সেট করুন দৈর্ঘ্য ( ) C
  • 25 70: ম্যাট্রিক্সের মাত্রা।
  • ¨⍳⍵: ম্যাট্রিক্সের প্রতিটি উপাদানের জন্য যেখানে প্রতিটি উপাদান তার নিজস্ব স্থানাঙ্ক ...
  • ⍵-Y X: বর্তমান পয়েন্ট এবং কেন্দ্র পয়েন্টের মধ্যে পার্থক্য
  • 1 2÷⍨: এক্স স্থানাঙ্ককে 2 দিয়ে ভাগ করুন (কারণ একটি চরটি লম্বার চেয়ে অর্ধেক প্রশস্ত)
  • .5*⍨+/2*⍨: স্কোয়ারের যোগফলের বর্গমূল নিন
  • 35÷⍨: 35 দ্বারা বিভক্ত
  • ⌊L⌊: ন্যূনতম অক্ষরের পরিমাণ এবং বর্তমান মানটি নিন এবং এটিকে গোল করে নিন
  • ,/: মানগুলি এখনও একটি তালিকায় আবৃত রয়েছে (কেবলমাত্র একটি উপাদানের) এবং এটি আউটপুটে ফাঁক তৈরি করবে, সুতরাং মানগুলি তাদের তালিকা থেকে 'মুক্ত' করবে।
  • C[... ]: অক্ষর তালিকার সূচক হিসাবে আমরা যে মানটি পেয়েছি তা ব্যবহার করুন
  • ⎕←: আমাদের এখন একটি ম্যাট্রিক্স রয়েছে যেখানে প্রতিটি উপাদান (x, y) অক্ষরের (x, y), সুতরাং ম্যাট্রিক্স আউটপুট দেয়।

6

পার্ল 5.10, 103 অক্ষর

$x=<>;$y=<>;@C=<>=~/./g;for$j(-$y..24-$y){print+(map$C[@C/35*sqrt$_**2/4+$j**2]//$C[-1],-$x..69-$x),$/}

এ চমৎকার কৌতুক জন্য @JB ধন্যবাদ codegolf.stackexchange.com/questions/678/...
ninjalj

এছাড়াও @gnibbler কে তার "বিয়োগের পরিসীমা প্রাক্কলকুলেটেড" ট্রিকের জন্য ধন্যবাদ।
নিনজালজ

আউটপুট দেওয়ার আগে আপনি একটি খালি লাইন পেয়েছেন। সুতরাং বর্তমানে এটি অবৈধ হিসাবে গণ্য করা হয়।
জো

@Joey: সুনির্দিষ্ট করা থাকে ...
ninjalj

তবুও, এখানে আমার একটি পরীক্ষার কেস ব্যর্থ। আমি এটি প্রশ্নের সাথে যুক্ত করেছি (নমুনা 4)। কোনওভাবে আউটপুটে শূন্যগুলি একটি সেমিকোলন দ্বারা প্রতিস্থাপিত হয়।
জোয়

5

পার্ল, 120 অক্ষর

$x,$y=<>,<>;@C=split'',<>;for$j(0..24){print+(map$C[($c=$#C/35*sqrt(($x/2-$_/2)**2+($y-$j)**2))<$#C?$c:$#C-1],0..69),$/}

প্রথম এবং তৃতীয় উদাহরণে ব্যর্থ। absএকটি কারণ আছে।
নিনজালজ

1
স্কোয়ারিং কোনওভাবেই সাইনটি সরিয়ে দেয়, আমি দেখতে পাচ্ছি না কীভাবে অ্যাবস কিছু পরিবর্তন করতে পারে
বেনামে কাপুরুষতা

1
ডি আহা! তুমি পুরোপুরি ঠিক আমার সিস্টেমে যা ব্যর্থ হচ্ছে তা হচ্ছে $x,$y=<>,<>;
নিনজালজ

4

উইন্ডোজ পাওয়ারশেল, 157

কিছুই লক্ষণীয়। ইতিমধ্যে হত্যা করা হয়েছে:

$x,$y,$c=@($input)
$l=$c.Length
$c+=(""+$c[-1])*90
0..24|%{$r=$_
-join(0..69|%{$c[[math]::truncate([math]::sqrt(($x-$_)*($x-$_)+4*($y-$r)*($y-$r))*$l/70)]})}

2

সি, 176

এখানে 24 টি অক্ষর সাশ্রয় করে সি থেকে আমার ডেলফি সমাধানটির একটি অনুবাদ:

X,Y,l,i,j,t;char G[99];main(){scanf("%d\n%d\n",&X,&Y);gets(G);l=strlen(G);for(j=-Y;j<25-Y;j++)for(i=-X-1;i<70-X;)t=floor(l*sqrt(i*i++/4+j*j)/35),putchar(!i+X?10:G[t<l?t:l-1]);}

আপনি এই কোডটি এখানে পরীক্ষা করতে পারেন: http://www.ideone.com/oTvHt


3
main()আমার অনুমানের যুক্তি তালিকায় আপনি ইনটি ভেরিয়েবলগুলির ঘোষণাটি রাখতে পারেন এবং সেমিকোলনটি সেভাবে সংরক্ষণ করতে পারেন।
জোয়

2

কমন লিস্প, 173 টি অক্ষর

(let*((c(read))(v(read))(g(read-line))(l(length g)))(dotimes(y 25)(dotimes(x 70)(princ(elt g(min(floor(*(sqrt(+(expt(/(- c x)2)2)(expt(- v y)2)))l)35)(1- l)))))(princ #\
)))

আমি এখানে আসল কৌশলটিই ব্যবহার করছি

#\[actual newline]

আক্ষরিক হিসাবে একটি নতুন লাইন চরিত্র


1

স্কেলা 223 (অ্যাপ-মোড়ানো ছাড়া 204)

object C extends App{
import math._
def r=readInt
val p=r
val q=r
val m=readLine
(1 to 70)map(x=>(0 to 25)map(y=>{
printf("%c[%d;%dH%s",27,y,x,m(({
val a=abs(p-x)
val b=abs(q-y)
sqrt(a*a+2*b*b)
}*(m.size-1)/74).toInt))}
))}

কলস এবং সারিগুলি (70, 25) গতিশীলভাবে সেট করা স্ক্রিনফিলিং গ্রেডিয়েন্টগুলির জন্য মঞ্জুরি দেয়।


1

সি # 311

ভেবেছিলাম অন্যকে আরও ভাল লাগানোর জন্য আমি একটি দীর্ঘ প্রোগ্রাম করব:

using System;class P{static void Main(){Func<string>r=Console.ReadLine;int x=int.Parse(r()),y=int.Parse(r());var c=r();for(int j=0;j<25;j++){for(int i=0;i<70;i++){var l=c.Length;Console.Write(c[(int)Math.Min(l*Math.Sqrt(Math.Pow(Math.Abs(x-i)/2.0,2)+Math.Pow(Math.Abs(y-j),2))/35,l-1)]);}Console.Write("\n");}}}

কনসোল থেকে ইনপুট নেওয়া হয়, একবারে একটি লাইন (স্থানাঙ্কের জন্য দুটি লাইন এবং গ্রেডিয়েন্ট অক্ষরের জন্য একটি)।

টিপসটির জন্য জোয়াকে ধন্যবাদ ।

নমুনা 1: http://ideone.com/X0jIZ

নমুনা 2: http://ideone.com/RvICt


@ জোয়ে রাইট আমি এটি স্থির করেছি এবং বুঝতে পেরেছিলাম কেন সি # তে এটি চেষ্টা করা খুব খারাপ ধারণা। যদিও মজা ছিল। :-)
ক্রিশ্চিয়ান লুপাস্কু

@ জো আপনি ঠিক বলেছেন, ক্লাস বা পদ্ধতিটিকে জনসাধারণ
ক্রিশ্চিয়ান লুপাস্কু

জোয়ি যদি আমরা এর intপরিবর্তে ব্যবহার করি তবে floatতা প্রকাশ x-iএবং y-jপ্রকারের হয়ে যায় int। এর কারণে, ভাসমানটির পরিবর্তে Math INT গণিত.আবস (ইনট মান) ডাকা হবে, যার ফলে কিছুটা নির্ভুলতা হ্রাস পাবে। আমি এটি চেষ্টা করে দেখেছি এবং বেশ কয়েকটি
ক্রিশ্চিয়ান লুপাস্কু

@ জোয়ে রাইট, অ্যাবস নির্ভুলতার উপর প্রভাব ফেলবে না, তবে এটি এমন একটি প্রত্যাবর্তন করবে, যা 2 এর সাথে বিভক্ত হয়ে যথাযথতা হারাবে, ভাসমানের বিপরীতে।
ক্রিশ্চিয়ান লুপাস্কু

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