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


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.