অসম্ভব কিউব হতে পারে


17

সমস্যা

একটি ইনপুট দেওয়া হয়েছে aযেখানে একটি সত্যবাদী / মিথ্যা মান আউটপুট সত্য সত্য যদি নিখুঁত অসম্ভব ঘনক্ষেত এবং মিথ্যা হলে নীচের সঠিক স্বাভাবিক ঘনক্ষেত্র হয়।

ইনপুট truthy:

         ___________________________________
        / _______________________________  /|
       / / _____________________________/ / |
      / / /| |                         / /  |
     / / / | |                        / /   |
    / / /| | |                       / / /| |
   / / / | | |                      / / / | |
  / / /  | | |                     / / /| | |
 / /_/___| | |____________________/ / / | | |
/________| | |_____________________/ /  | | |
| _______| | |____________________ | |  | | |
| | |    | | |___________________| | |__| | |
| | |    | |_____________________| | |____| |
| | |   / / _____________________| | |_  / /
| | |  / / /                     | | |/ / /
| | | / / /                      | | | / /
| | |/ / /                       | | |/ /
| | | / /                        | |   /
| | |/_/_________________________| |  /
| |______________________________| | /
|__________________________________|/

ইনপুট falsy:

         ___________________________________
        / _______________________________  /|
       / / _____________________________/ / |
      / / /| |                         / /  |
     / / / | |                        / /   |
    / / /| | |                       / / /| |
   / / / | | |                      / / / | |
  / / /  | | |                     / / /| | |
 / /_/___|_|_|____________________/ / / | | |
/__________________________________/ /  | | |
| ________________________________ | |  | | |
| | |    | | |___________________| | |__| | |
| | |    | |_____________________| | |____| |
| | |   / / _____________________| | |_  / /
| | |  / / /                     | | |/ / /
| | | / / /                      | | | / /
| | |/ / /                       | | |/ /
| | | / /                        | |   /
| | |/_/_________________________| |  /
| |______________________________| | /
|__________________________________|/

বিধি

  • ট্রেলিং হোয়াইটস্পেস অনুমোদিত।
  • চলমান নিউলাইনগুলি অনুমোদিত।
  • সত্যবাদী / মিথ্যা মানগুলি অদলবদল হতে পারে (সত্যিকারের ঘনকের জন্য সত্য এবং অসম্ভব কিউবের জন্য মিথ্যা)
  • ইনপুট শৈলী নির্দিষ্ট করা উচিত
  • বাইটস মধ্যে সংক্ষিপ্ত কোড

1
আমাদের কি সেই সঠিক ঘনক বা কোনও অসম্ভব ঘনক্ষেত্র আউটপুট করতে হবে?
— ডিজাইমা

1
@ ডিজাইমা ঠিক কিউব।
— লিফডেওয়েন

8
প্রথম নজরে, আমি ভেবেছিলাম ইনপুটটি ASCII শিল্প। স্বস্তির দীর্ঘশ্বাস
— আর্নল্ড

2
@ আর্নল্ড এটি অত্যন্ত তুচ্ছ হিসাবে শেষ হবে, কারণ আপনি কেবল একটি নির্দিষ্ট জায়গায় একটি চরিত্রের দিকে তাকিয়ে দু'টিকে আলাদা করে বলতে পারেন।
— জেএডি

8
পুনঃটুইট আমার মনে যা ছিল তা হ'ল "কোনও আকারের অনুরূপ কোনও ইনপুট নিন এবং কিউবটি বৈধ কিনা তা নির্ধারণ করুন" ।
— আর্নাউল্ড

উত্তর:


4

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

─3n{_⁰
ā"¹K╚=+ƨψ≡tšÆA%εW#žt─M^_ξ0“6²⁰ _*ž}"⁵æκLνbΡ°■=μθΝv╝xxΛTγ►℮ΞyF“'№⁰┐∙ž}"⁸Βλμž╚⅔\Ρ═⁴-θ=╚_>◄4℮`ε║t“'¦⁰ā;∫0 /ž}╬5}'Æ6«@┐2Ο3∙:Aža.?X"≥YΤ%‘5n}L9ž

এখানে চেষ্টা করুন!
এই প্রোগ্রামটি লাইন ডেটাটিকে 3 পৃথক বেস 36-46 সংখ্যা হিসাবে সংরক্ষণ করে এবং প্রতিটি žঅ্যারে ডিকোড করে এবং প্রধান অ্যারেগুলিতে মানগুলি ড ।
আমি কীভাবে তির্যক রেখাগুলি আঁকছি তার আপত্তিজনক পদ্ধতির কারণে আউটপুটে স্পেস সহ 27 টি লাইন রয়েছে (যা ওপি দ্বারা অনুমোদিত)

ইনপুট:
0 - অসম্ভব
1 - সম্ভব

ব্যাখ্যা:

The first line is basically a substitute ⁰ with ─3n{_

ā                   push an empty array (the canvas for the whole cube)
 "...“              pushes 29714643711764388252557994982458231735529743027583646902
      6²─           base-36 decodes it
         3n{     }  for each group of 3 numbers do (where the numbers are X, Y, length)
            _         put all the contents on the stack (in the order X, Y, length)
              _*      get POP amount of underscores
                ž     in the canvas at the positions x;y (the position of the 1st char, 1-indexed) put the underscores

"...“             pushes 19564601770087915522037775830252836261712294966673526596188
     '№─          base-46 decodes it
        3n{    }  for each group of 3 numbers do
           _        put all the contents on the stack
            ┐∙      get an array of "|"s with the length of POP
              ž     in the canvas at the position x;y (position of the top char, 1-indexed) put the vertical bar

"...“                    pushes 124633728256573776407884156928319785312464662536125755768
     '¦─                 base-40 decodes it
        3n{           }  for each group of 3 numbers do
           _               put all the contents on the stack
            ā;             one below the stack put an empty array (canvas for the diagonal line)
              ∫    }       for range(length) do
               0             TMP
                 /           push "/"
                  ž          at the position (iter; 0), 1-indexed put a "/". This extends the array one line upward and causes the extra spaces.
                    ╬5     in the canvas at the position x;y(1-indexed, the top position) put the diagonal line canvas without overriding with spaces

'Æ             push 36
  6«           push 12
    @┐2Ο       push two spaces, encased in vertical bars - "| | |"
        3∙     get an array of 3 of those
          :A   save on variable A
            ž  in the canvas, at the positions 36; 12 put the array

a                 push the variable A
 .?         }     if the input is non-0, then
   X                remove the variable A off of the stack
    "≥YΤ%‘          push "|_|_|__________"
          5n        chop that into an array of strings of length 5
             L9ž  at positions 10;9 insert the top of stack (either the ["| | |","| | |","| | |"] or ["|_|_|","_____","","_____"]) in the canvas

কীভাবে এটি ইনপুটের ভিত্তিতে পরিবর্তিত হয়?
— লিফডে ওয়েইন

0 - অসম্ভব, 1 - সম্ভব
— ডিজাইমা

1অন্যান্য সত্যবাদী ইনপুটগুলির মতো একই আউটপুটটিতে ফলাফলের ইনপুটটি নেওয়া উচিত নয় "test"?
— জোনাথন অ্যালান

@ জোনাথন অ্যালান উচিত? এসওজিএলে একটি সত্যবাদী নম্বর ইনপুট হ'ল একটি নন-০ নম্বর। testইনপুট বাক্সে টাইপ করার ফলে একটি ত্রুটি হয়। সমস্যাটি যদি এত বড় হয় যে আমি কেবল স্ট্রিং ইনপুট নিতে পারি যেখানে "" মিথ্যা এবং অন্য সব কিছু সত্যই হবে
— ডিজাইমা

ওহ ঠিক আছে, আমি অনুমান করি যদি ভাষাটি দৃ strongly়ভাবে টাইপ করা হয় তবে কোনও ধরণের ইনপুট পরিচালনা করা সুযোগের বাইরে থাকতে পারে।
— জোনাথন অ্যালান

9

জেলি ,  187  166 বাইট

ḣ9;⁾| ṁ5¤oµ€“µ½¿‘¦
“ _/ |/|”;€⁶;”_ṁ"“¡ẇḞ6’D¤ṃ@“Ė⁸ġṾṗ¢œƝṇRK⁹ṄẸŒÐ¤ɓḂı)ḥṆqƓị¹÷ḄƝṁPʠVW1JĊTc;[¤ÆWŒṠṬ#ʋÆ6ẉ⁷ZḷƊḤƑẹẠGḊ|qi×Ƭ®ÐėƁ1(⁸ṪU¹Bgoƭ<Gḋ×c:ȦṚƇĊ¬e*⁽%ḷݰU’Fs27ǹ⁸?x€15¦€19Y

একটি সম্পূর্ণ প্রোগ্রাম।

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

কিভাবে?

103 বাইট হ'ল একটি 101 অঙ্কের বেস 250 সংখ্যা, যা একটি সম্ভাব্য ঘনক্ষেত্রের বেস -8 সংক্ষেপণ, পিছনের স্থানগুলিকে সারি-দৈর্ঘ্যের সমান করতে যোগ করা হয়েছে নতুন লাইন ছাড়াই এবং প্রতিটি সারির মাঝখানে 18 টি অক্ষর ছাড়াই , তবে নিউলাইন ছাড়া:

         _________________ 
        / _____________  /|
       / / ___________/ / |
      / / /| |       / /  |
     / / / | |      / /   |
    / / /| | |     / / /| |
   / / / | | |    / / / | |
  / / /  | | |   / / /| | |
 / /_/___|_|_|__/ / / | | |
/________________/ /  | | |
| ______________ | |  | | |
| | |    | | |_| | |__| | |
| | |    | |___| | |____| |
| | |   / / ___| | |_  / / 
| | |  / / /   | | |/ / /  
| | | / / /    | | | / /   
| | |/ / /     | | |/ /    
| | | / /      | |   /     
| | |/_/_______| |  /      
| |____________| | /       
|________________|/        

8 বেস -8 অঙ্কগুলি অক্ষরের স্ট্রিং উপস্থাপন করে:

1      2    3    4    5    6        7        0
"   ", "_", "/", " ", "|", "/ / /", "| | |", "_____"

সুতরাং সংক্ষেপণ নীচের মতো যেখানে 1s, 6s, 7s এবং 0sগুলি উপরে প্রদর্শিত স্ট্রিং দ্বারা প্রতিস্থাপন করা হবে:

111000__111/ 00___  /|11 / / 00_/ / |116| |11 / /  |1  6 | |11/ /1|1 671  6| |16 71 6 | |  6  7167 6___|_|_|__6 7/000_/ /  7| 00____ | |  771 7_7__771 | |___7____| |71/ / ___7_  / / 7  6176  7 61 7 / /1761  7/ /1 7 / /11| |1/1  7/_/0__| |  /11| |00__| | /11 |000_|/11  

প্রোগ্রামটি প্রক্রিয়াটিকে বিপরীত করে এবং এমন অক্ষরগুলির পরিবর্তন করে যা ঘনকটি একটি অসম্ভব হওয়া উচিত:

“ _/ |/|”;€⁶;”_ṁ"“¡ẇḞ6’D¤ṃ@“ ... ’Fs27ǹ⁸?x€15¦€19Y  Main link: V
                                                     ...splitting this up...
                                                     ...Main link part 1:
“ _/ |/|”;€⁶;”_ṁ"“¡ẇḞ6’D¤ - make the list of strings of characters
“ _/ |/|”                 - list of characters = " _/ |/|"
           ⁶              - literal space character
         ;€               - concatenate €ach -> ["  ","_ ","/ ","  ","| ","/ ","| "]
             ”_           - literal = '_'
            ;             - concatenate -> ["  ","_ ","/ ","  ","| ","/ ","| ", '_']
                        ¤ - nilad followed by link(s) as a nilad:
                 “¡ẇḞ6’   -   base 250 literal = 31111555
                       D  -   convert to decimal list -> [3,1,1,1,1,5,5,5]
                "         - zip with:
               ṁ          -   mould like
                          -   -> ["   ","_","/"," ","|","/ / /","| | |","_____"]

                                                     ...Main link, part 2:
...ṃ@“ ... ’Fs27 - make the rows of a possible cube without the middle repetitions:
...              - part 1, above
     “ ... ’     - the 101 digit base 250 number
   ṃ@            - base decompression with swapped @rguments
            F    - flatten (because the digit values we are using are actually lists)
             s27 - split into chunks of length 27 (into the rows)

                                                     ...Main link part 3:
...ǹ⁸?x€15¦€19Y - make "impossible" if need be, add the row middles and output
...              - part 2, above
       ?         -  if:
      ⁸          -    chain's left argument = V
   Ç             - ...then: call last link (1) as a monad
                 -          (make it an impossible cube - see link 1, below)
    ¹            - ...else: identity (do nothing)
            €    - for €ach
         ¦       - apply sparsely:
       15        - ...to index: 15
     x€    19    - ...this: repeat €ach nineteen times
               Y - join with newlines
                 - implicit print

ḣ9;⁾| ṁ5¤oµ€“µ½¿‘¦  Link 1, replace characters to make impossible: rows
                 ¦  apply sparsely:
            “µ½¿‘   ...to indexes: code-page indexes = [9,10,11]
                    ...this:
          µ€          for €ach:
ḣ9                      head to index 9
        ¤               nilad followed by link(s) as a nilad:
   ⁾|                     list of characters = ['|',' ']
      ṁ5                  mould like 5 = ['|',' ','|',' ','|']
  ;                     concatenate
         o              logical or (vectorises) with the row
                          (which has the effect of appending the rest of the row)

আমি ঘনক্ষেত্রে "মোটাতাজাকী" করেছি এবং আপনি এটির সুবিধা নিয়েছেন +1
— লিফডে ওয়েইন

5

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

@ বাইর্যান্ডকে ধন্যবাদ 2 বাইট সংরক্ষণ করা হয়েছে

x=>[...'mnopqrstuvwxyz01~'].reduce((p,c)=>(l=p.split(c)).join(l.pop()),`1yup
1z uux z|
1/z uu_/z |
yqswtqvy|
yys wtyvq|
qs0t sw
ys 0ts w
 snt/v0
v_/x${x?0:'|_|_|'}m/v 0
/~_${b=x?0:'o_'}p/zn
| ~${b}m wnrynuo_0__0ryywp0owryv p0_ vr st0/vrst 0vr/vtn/zrvtqwyzr/_/pow z
wuu__wz
|um|/~xo1yyq0w |z /q o__w| |szp~t111svzr
0qy pu~ox_ny0muxx`)

ডেমো


সরানো হচ্ছে a=এবং এর মাধ্যমে এতে এক রেফারেন্স প্রতিস্থাপন 0(যা এটা সবসময় সমান যখন রেফারেন্সড) দুই বাইট পরিমাণ সঞ্চয় হয়।
— ইয়ার র্যান্ড

3

কাঠকয়লা , 188 বাইট

__¶____¶_¶↙¹↓↑⁷↗³P↓⁶↗²↓↓⁷←↙⁴↓↓↓↙↗⁸↑¹²←P←×_³⁵↓↙⁹↑←×_³⁴P↗⁹↓↓¹¹↗→×_³⁴↑¹¹↖P←×_²⁹↗⁷←P←×_³¹↙←×_²⁹↓↙⁶↑←_P↗⁷↓↘P↓⁹←←P×_³²↓↓⁹↗→×_³⁰P↑⁹↖←×_²⁷↗⁶←←↙⁵↘→→↗⁵UO²¹±²_↗↗P×_¹⁹←↙|←P↑²←←↑²FNUO⁵±³ |↑↑P↑⁴F²«→→P↑⁶

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি মিথ্যা সংস্করণে রয়েছে; থেকে ইনপুট পরিবর্তন 0করতে 1truthy সংস্করণের জন্য। উপরের প্রোগ্রামটির জন্য আনুমানিক ভার্বোজ কোডটি এখানে:

Print("__\n____\n_\n");

ডান "গর্ত" এর মাধ্যমে দৃশ্যমান পিছনের অংশটি মুদ্রণ করুন।

Print(:DownLeft, 1);
Move(:Down);
Print(:Up, 7);
Print(:UpRight, 3);
Multiprint(:Down, 6);
Print(:UpRight, 2);
Move(:Down);
Print(:Down, 7);
Move(:Left);
Print(:DownLeft, 4);

ডান "গর্ত" মুদ্রণ করুন।

Move(3, :Down);
Move(:DownLeft);
Print(:UpRight, 8);
Print(:Up, 12);
Move(:Left);
Multiprint(:Left, Times("_", 35));
Move(:Down);
Print(:DownLeft, 9);
Move(:Up);
Print(:Left, Times("_", 34));
Multiprint(:UpRight, 9);
Move(:Down);
Print(:Down, 11);
Move(:UpRight);
Print(Times("_", 34));
Print(:Up, 11);

কিউবের বাইরের প্রান্তটি মুদ্রণ করুন।

Move(:UpLeft);
Multiprint(:Left, Times("_", 29));
Print(:UpRight, 7);
Move(:Left);
Multiprint(:Left, Times("_", 31));
Move(:DownLeft);
Print(:Left, Times("_", 29));
Move(:Down);
Print(:DownLeft, 6);
Move(:Up);
Print(:Left, "_");
Multiprint(:UpRight, 7);

কিউবের শীর্ষ "গর্ত" মুদ্রণ করুন।

Jump(1, 2);
Multiprint(:Down, 9);
Move(2, :Left);
Multiprint(Times("_", 32));
Move(:Down);
Print(:Down, 9);
Move(:UpRight);
Print(Times("_", 30));
Multiprint(:Up, 9);
Move(:UpLeft);
Print(:Left, Times("_", 27));

কিউবের সামনের "গর্ত" মুদ্রণ করুন।

Print(:UpRight, 6);
Move(2, :Left);
Print(:DownLeft, 5);
Jump(3, 1);
Print(:UpRight, 5);
Oblong(21, Negate(2), "_");
Move(2, :UpRight);
Multiprint(Times("_", 19));
Move(:Left);
Print(:DownLeft, "|");
Move(:Left);
Multiprint(:Up, 2);
Move(2, :Left);
Print(:Up, 2);

সামনের "গর্ত" এর মাধ্যমে দৃশ্যমান পিছনের অংশটি মুদ্রণ করুন।

for (InputNumber()) Oblong(5, Negate(3), " |");

প্রয়োজনে কিউবটিকে অসম্ভব করে তুলুন।

Move(2, :Up);
Multiprint(:Up, 4);
for (2) {
    Move(2, :Right);
    Multiprint(:Up, 6);
}

শীর্ষ "গর্ত" এর মাধ্যমে দৃশ্যমান পিছনের অংশটি মুদ্রণ করুন।

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