দুটি ব্রেইনফাক প্রোগ্রাম রচনা করুন


10

২ টি ব্রেইনফাক কোড স্নিপেটস Aএবং B, কিছু ব্রেইনফাক কোড আউটপুট দেয় Cযা এর ফলাফলের Bইনপুট নিয়ে চলার মতো আচরণ করে A। নোটটি Cনীচের অনুমানগুলির সাথে মেলে এমন কোনও ইনপুটটির জন্য অবশ্যই কাজ করা উচিত, যেমন এটি দেওয়া হয়েছিল A

আপনি ধরে নিতে পারেন:

  1. সীমাবদ্ধ ইনপুট।
  2. এ এবং বি উভয়ই থেমে আছে।
  3. ইওএফ ধারাবাহিকভাবে 0 বা ধারাবাহিকভাবে -1 হয়।
  4. ধারাবাহিকভাবে সেলগুলিকে বামে অনুমতি দিন বা অনুমতি দিন
  5. আনবাউন্ডেড টেপ (অন্যথায় প্রয়োজনীয়তা অসম্ভব হতে পারে)
  6. ধারাবাহিকভাবে 8-বিট মোড়ানো বা আনবাউন্ডেড পূর্ণসংখ্যা
  7. কোনও স্ট্রিম (এ বা বি এর জন্য ইনপুট বা আউটপুট) ইওএফ উপস্থাপন করে বাইট ধারণ করে না
  8. কোড এ এবং বিতে এমন অক্ষর থাকতে পারে যা সম্ভবত আপনার সিতে উপস্থিত হয় এবং +-[]<>,.

উদাহরণস্বরূপ (EOF = 0)

A = ,[..,]
B = ,[...,]
C = ,[......,]

A = >,[>,]<[.<]
B = ,[...,]
C = >>>>,[[-<+<+<+>>>]>>>,]<<<<[.<]

A = >,[>,]<[.<]
B = ,[...,]
C = >,[>,]<[...<]

A = ,.
B = ,.
C = ,>,[,]<.

A = ,.
B = ,.
C = ,.

বৈধ পরীক্ষা

প্রতিটি ভাষার জিতে সংক্ষিপ্ত কোড। ব্রেইনফাকের বিজয়ী গ্রহণযোগ্য হবে।


7
Shortest code in each language winএবং Shortest Brainfuck solution will be acceptedদুটি ভিন্ন জয়ের মানদণ্ড।
মেগো

2
@ মেগো আমার অর্থ আপনি যদি ব্রেইনফাকের উত্তর দেন এবং আপনি জিতেন তবে আপনি স্বীকৃত
হবেন

1
এছাড়াও। আপনার উপর সম্প্রসারিত করতে পারেন 4.Consistently allow or disallow cells to left। নেতৃস্থানীয় উত্তরের কাজের উত্তরে বামদিকে কোষগুলি প্রয়োজন তবে এ, বি, এবং সি প্রথম বাইট উত্তীর্ণ না হওয়ার জন্য বারণ করে। আমার উত্তর ডায়ল্লোগুলি উত্তরে বাম দিকে সরানো হয়, এ, বি এবং সি। যদি আমার প্রোগ্রাম এবং সি এর নিয়মগুলি এ এবং বি থেকে আলাদা হতে পারে তবে আমি অবশ্যই আমার উত্তরটি অনেক ছোট করতে পারি।
সিলেস্টার

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

1
সম্ভবত আমি চ্যালেঞ্জকে পুরোপুরি ভুল বুঝছি, তবে পরীক্ষার কেস # 3 এবং # 4 এর মধ্যে সংঘাত বলে মনে হচ্ছে।
জেমস

উত্তর:


8

ব্রেনফাক, 526 বাইট

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

বিন্যাসকৃত:

-<+++++<+<+++++<-[+++++++[<++++++++>-]<--->>]
<<--<--<+..<<<<
,
[
  [<+> >+<-]
  ----[>-<----]>
  [
    not question mark
    +
    [
      not greater than
      ++
      [
        not less than
        ++++++++++++++
        [
          not period
          ++
          [
            not comma
            [-]<
          ]
          <<<
          [
            comma B
            >-->>> -.>>>.<<<.>.>.<<.+>>--..>.<..<.>.>..<++.<.>..>.<..<.>--.>>.<<
            .>.<..<.>.>.<.<.>++.<<.>.>.>.<.<.>..>.<..<.>>>.<<--.++<<<
          ]
          >>>>[<]<
        ]
        >
        [
          period
          <<<<
          [
            B
            >
          ]
          >
          [
            A
            +>>> >>.>.<<<.>.<.>>>.<.[.<.>>>]<++[<<.<.>>.<<--.<<.>.>.++>>>-]<<<<.
            >.>>.<.<<<.>>..>>.<<<.>--.>.<++...<<.>>--..>>.<.<..<.>.>>.<<++...>.<
            ..<.>>>.<<--...++<<[.>]<<<--.<<.>>++.<.>>>.<<--.++<<<
          ]
        ]
        <
      ]
      >
      [
        less than
        <<<.>>
      ]
      <
    ]
    >
    [
      greater than
      >>.>.<<<.>.>>>.[<]
    ]
    <
  ]
  >
  [
    question mark
    >>.>.<..<.>>>.[<]
    <<<+>->>
  ]
  <<.[-]>,
]

এ, বি, এবং সি: EOF = 0 এর সাথে সম্মতিতে, বাম কোষগুলি বঞ্চিত করা হয়নি, 8-বিট মোড়ানো ঘর cells

প্রত্যাশী এ এর ​​পরে ?বি অনুসরণ করবে

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

(এই উত্তরটি একটি ব্রেইনফাক ইন্টারপ্রেটারের সাথে সঙ্গতিপূর্ণ করা যেতে পারে যা প্রতিলিপি y/<>/></এবং প্রিপেন্ডিংয়ের মাধ্যমে এক বাইটের ব্যয়ে শুরুতে বাম দিকে যেতে দেয় না >))

মৌলিক ধারণা, যাতে 2-সেল নোড ব্যবহার A এবং B এর টেপ সিমুলেট করার জন্য স্ট্রিং প্রতিস্থাপন একটি সিরিজ ব্যবহার করা বিশেষ প্রতিস্থাপন দেওয়া মনোযোগ দিয়ে .একটি এবং ,বি যাতে অন্তর্বর্তী তথ্য প্রবাহ একটি ব্লক রাখা হয় সিমুলেটেড টেপের বাম দিকে কোষগুলি। স্ট্রিং প্রতিস্থাপন প্রকল্পটি হ'ল:

  • এ এর >>আগে .োকান

  • উভয় A এবং B সালে প্রতিস্থাপন >সঙ্গে >[-]+>এবং <সঙ্গে<<

  • একজন সালে প্রতিস্থাপন .সঙ্গে>[-]-[>>]+[[>+<-]<[>+<-]<]>+[->>+]<[>>>-<<+[<<]<+>>>[>>]+<<<-]>[+<->]+</

  • ঢোকান >[>>]+>পরে এবং B আগে

  • বি এ, প্রতিস্থাপন ,সঙ্গে,[,]>,<<[<<]<[[>]>>[>>]<+<[<<]<[<]>-]>[>]>>[>>]+<*


,[>,]<[.<]?,[...,]ইনপুট 12345ফেরত 111, এমনকি যথেষ্ট >আগে?
l4m2

@ l4m2 হুম, এটা আমার জন্য কাজ করছে Tio উপর । ( ,[>,]<[.<]বৈধ নয় তবে >,[>,]<[.<]হ'ল)
মিচ শোয়ার্জ

সুতরাং আপনার "এটি স্টার্ট সেলটির বামে যেতে দেয়" কী?
l4m2

1
সুতরাং আপনার উত্তরটির জন্য একটি বিএফ প্রয়োজন যা অসীম টেপের মাঝখানে শুরু হয়, তবে এ এবং বি এর প্রকৃতি এমন মানের মধ্যেই সীমাবদ্ধ যেখানে একটি অনন্ত টেপের ডানদিকে প্রথম কক্ষে শুরু হয়?
সিলেস্টার

1
এই সমাধানের জন্য, স্টার্ট কক্ষের বাম দিকে যেতে এ, বি এবং সিতে নিষিদ্ধ করা হয়েছে, তবে এটি প্রোগ্রামে অনুমোদিত (আমরা এটি সুবিধার জন্য ডি বলতে পারি) যা A এবং B নেয় এবং তারপরে সি উত্পাদন করে I এটি মনে হয় না যে এটি খুব উল্লেখযোগ্য এবং সমাধানটির প্রকৃতি দেওয়া একটি প্রাকৃতিক পছন্দ। এ, বি এবং সি প্রসঙ্গে শুরুতে বাম দিকে যাওয়ার বড় পরিণতি হয়, তবে এটি ডি এর পক্ষে যথেষ্ট তুচ্ছ, এবং বিষয়গতভাবে আরও উপভোগ্য গল্ফের অভিজ্ঞতার পাশাপাশি সামান্য সংক্ষিপ্ত স্কোর অর্জন করে এবং এটিও করা উচিত নয় >প্রয়োজনবোধে ডি- তে ডিপেন্ড করা সহজ any
মিচ শোয়ার্টজ

6

ব্রেনফাক , 1287 বাইট

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

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

এটা এখানে! ব্রেনফাক কোড যা দুটি ব্রেইনফাক কোড রচনা করে। ব্যবহার করা "!" দুটি ইনপুট কোড স্নিপেট পৃথক করতে। উদাহরণস্বরূপ স্নিপেট একটি জন্য: >,[>,]<[.<], SNIPPET বি ,[...,]। আমার প্রোগ্রামের জন্য ইনপুট: >,[>,]<[.<]!,[...,]। না হলে শেষ হবে না "!" পাওয়া.

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

ব্যাখ্যা

এটি আমার উত্স কোড:

[ 
Tape: "+"(43) "-"(45) "<"(60) ">"(62) "["(91) "]"(93) readA(1) printInput(0) input else exitIf exitElse
]

++++ ++++ ++++ ++++ [->+++>+++>++++>++++>++++++>++++++<<<<<<]>----->--->---->-->----->--->+

<<<.....<<.>>....<<.>>.<<..>... print init routine
>>>>[                           while readA
  >+                              set printInput = true
  >,                              read character
  ->[-]++++[-<-------->]          decrease input by 33 to check for "!"
  +                               set else flag

  # A check for "!"
  <[                              if input not "!"
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <-                              set readA = false
    <<<..>.<.....>>.<<<.....>>.<<<< print routine between A and B
    .>>..>>.<<<.>>>>.<<<...>>>.<<.<
    <<..>>>>.<<<..>>.....<<<..>>>>>
    .<<<<<.>>>>.<<<.>.....<<.>>>>>.
    <<<<.>>..>>>
    >>>>>                           go to exitElse
  ]

  # A check for "dot"
  <<<----- ----- ---              decrease input by 13 (total 46) to check for dot
  [                               if input not dot
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<<..<<.>..>>.<<<.>.<<.>>>.... print list storing routine
    <<<.>>>>.<<<.>.....<<.>>>>>.<<<
    <<.>>>>.<<<..>>.....<<<..>>>>>.
    <<<<..>..<<.>>>..<<<.>>>>.<<<.>
    .....<<.>>>>>.<<<<.>.<<..>>>>.<
    <<..>>.....<<<..>>>>>.<<<<..>..
    >>>.<<<.>>.<<<.>>.<<<.>>.>>>.<<
    ....<<<.>>>>.<<<.>.....<<.>>>>>
    .<<<<<.>>>>.<<<..>>.....<<<..>>
    >>>.<<.....<<.>>>.<<<.>.....<<.
    >>>>>.<<<<.>.<<..>>>>.<<<..>>..
    ...<<<..>>>>>.<<<<.>..>>>>>
    >>>>                            go to exitElse
  ]

  # A check for "less than"
  <<<----- ----- ----             decrease input by 14 (total 60) to check for "less than"
  [                               if input not "less than"
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<<<...>>.<<<<.>>>>>.<<<<.>..>>>>> print A move left routine
    >>>>                            go to exitElse
  ]

  # A check for "greater than"
  <<<--                           decrease input by 2 (total 62) to check for "greater than"
  [                               if input not "greater than"
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<<.......>.<<<<.>>>>>.<<<<.>..>>>>> print A move right routine
    >>>>                            go to exitElse
  ]

  # print remaining character
  <<<<[                           if printInput
    +++++++[->++++++++<]>--.<     print original character
  ]

<                               go to readA
]

>>,                             read next character
[                               while input
  <+                              set printInput = true

  # B check for comma
  >>++++[-<----- ---->]+<+        decrement input by 44 to check for comma
  [                               if input not comma
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<.<<<.>>>>.<<..<<.>>.>.<..... print B list reading routine
    >>.<<<<<.>>>>.<<<.>.....<<.>>>>
    >.<<<<.>>...>.<<<.>...>>.<<....
    .>>>.<<....<<<.>>>>.<<<.>>.....
    <<<.>>>>>.<<<<.>..<<.>>>...>.<.
    ....>>.<<<<<.>>>>.<<<.>.....<<.
    >>>>>.<<<<.>>...>>.<<..<<.>>>.<
    <.....>>>.<<....<<<.>>>>.<<<.>>
    .....<<<.>>>>>.<<<..>>>>> 
    >>>>                            go to exitElse
  ]

  # B check for "less than"
  <<<----- ----- ----- -          decrease input by 16 (total 60) to check for "less than"
  [                               if input not "less than"
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<<<.....>>>>>                 print B move left routine
    >>>>                            go to exitElse
  ]

  # B check for "greater than"
  <<<--                           decrease input by 2 (total 62) to check for "greater than"
  [                               if input not "greater than"
    >>                              go to exitIf
  ]
  >[                              else
    <<-                             set printInput = false
    <<<<.....>>>>                   print B move right routine
    >>>>                            go to exitElse
  ]

  # print remaining character
  <<<<[                           if printInput
    +++++++[->++++++++<]>--.<     print original character
  ]

>,                              input next character
]


@ l4m2: দুঃখিত, আমি পরীক্ষার তথ্যগুলিতে কিছুটা ভুল করেছি। আমি লিখেছি >[,>]<[.<]!,[...,], তাই স্নিপেট এ কিছুই আউটপুট দেয় না। অবশ্যই এটি >,[>,]<[.<]!,[...,]একটি কার্যকারী উদাহরণের জন্য হওয়া উচিত ।
ডোরিয়ান

5

ভিবিএ, 512 489 479 বাইট

Sub f(A,B):Debug.?">>>>>->>>>->--<<<"&Replace(Replace(Replace(A,"<","<<<[+]-<<"),">",">>>>>>>[+]-<<"),".",">>-<<[-<+>>>>+[-<<<<<+]+[-->>>>>++]--<<+>>+[-<<<<<+]-<++[-->>>>>++]--<<]<[->+<]>>>>+[-<<<<<+]+[-->>>>>++]>>>>>-[-<<<<<+]-<++[-->>>>>++]-<<")&">>[>>>>>]<<<<<[+<<[-]<<<]>++[-->>>>>++]+[-<<<<<+]->>"&Replace(Replace(Replace(B,"<","<<<<<"),">",">>>>>"),",","[-]>>->[>>>>>]+[-<<<<<+]->>>[-<<<[<<<<<]>>>>+[->>>>>+]-<<+>>>[>>>>>]+[-<<<<<+]->>>]>>-[<<<<<]>>>>+[->>>>>+]<<"):End Sub

ব্যাখ্যা

ভিবিএ কোড একটি উপায়ে ব্রেনফাক কোড পরিবর্তন করে, যে স্নিপেট এ এর ​​আউটপুট একটি তালিকাতে সংরক্ষণ করা হবে এবং স্নিপেট বি এর ইনপুট সেই তালিকা থেকে পড়তে হবে।

এটি প্রথমে কিছু পরিবর্তনশীল সূচনা করে

>>>>>->>>>->--<<<

তারপর এটি একটি স্নিপেট পড়ে এবং যে প্রতিস্থাপন <দ্বারা <<<[+]-<<, যে >দ্বারা >>>>>>>[+]-<<এবং প্রতি .সংরক্ষণকারী রুটিন দ্বারা

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

এর পরে এটি স্নিপেট এ এর ​​স্মৃতি মুছে ফেলে এবং সঞ্চিত তালিকায় পরিবর্তন করে, তাই এটি স্নিপেট বি এর ইনপুট হিসাবে পড়া যায়:

>>[>>>>>]<<<<<[+<<[-]<<<]>++[-->>>>>++]+[-<<<<<+]->>>>>-<<<

তারপরে স্নিপেট বিটি পড়বে, প্রত্যেকে <প্রতিস্থাপিত হবে <<<<<, প্রত্যেকে >প্রতিস্থাপিত হবে >>>>>এবং প্রত্যেকে ,তালিকা পাঠের রুটিন দ্বারা প্রতিস্থাপন করা হবে:

[-]>>->[>>>>>]+[-<<<<<+]->>>[-<<<[<<<<<]>>>>+[->>>>>+]-<<+>>>[>>>>>]+[-<<<<<+]->>>]>>-[<<<<<]>>>>+[->>>>>+]<<

ব্রেইনফাক সোর্স কোড

কোডের ব্রেইনফাক অংশগুলির জন্য এটি আমার উত্স। আমি বিস্তারিত পরে এটি ব্যাখ্যা করব।

[
Tape: tempMem data out/in dataAnchors outAnchors (all repeating)
dataAnchors of Snippet A: -1 = memory has been used, -2 = active memory cell for copying to out/in
dataAnchors of Snippet B: -1 = active memory cell for copying from out/in
outAnchors of Snippet A: -1 = start of list, -2 = next output position
outAnchors of Snippet B: -1 = character has been read (or start of input)
]

### Init
>>              two blank data cells (for non wrapping pointer)
>>>-            set start of input
>> >>-          set first "used" flag
>--             set end of input
<<<             return to first usable data cell

### A move right routine
>>>>>           move to the next data cell
>>[+]-          clear and set "used" flag
<<              return to data cell

### A move left routine
<<<[+]-         clear and set "used" flag of previous data cell
<<              go to data cell

### A print routine
>>-             set flag
<<[             while value greater 0
  -               decrement value
  <+              increment tempMem
  >>>>+[-<<<<<+]  find start of input
  +[-->>>>>++]--  find end of input
  <<+             increment input
  >>+[-<<<<<+]-   find start of input
  <++[-->>>>>++]--find flag
  <<              go to active data cell
]
<[->+<]         move stored value back to data
>>>>+[-<<<<<+]  find start of input
+[-->>>>>++]    find end of input
>>>>>-          set new end of input
[-<<<<<+]-      return to start of input
<++[-->>>>>++]- return to and delete data flag
<<              go to data cell

### After snippet A: Delete memory of A and configure out/in list
>>[>>>>>]<<<<< go to last used data
[+<<[-]<<<]    delete each data
>++[-->>>>>++] find and delete end of input flag
+[-<<<<<+]-    go to start of input
>>             go to first data cell

### B move right routine
>>>>>          go to next data cell

### B move left routine
<<<<<          go to previous data cell

### B reading routine
[-]                      set cell = 0
>>-                      set flag
>[>>>>>]+[-<<<<<+]-      find start of input
>>>[                     if value greater 0
  -                        decrement value
  <<<[<<<<<]>>>>           go to initial start of input (combined with next)
  +[->>>>>+]-              find mem cell flag
  <<+                      increment mem cell
  >>>[>>>>>]+[-<<<<<+]->>> return to input cell
]
>>-                      set new start of input
[<<<<<]>>>>              go to initial start of input (combined with next)
+[->>>>>+]               find and delete mem cell flag
<<                       go to mem cell

পরীক্ষার কেস 1 এর আউটপুট: f ",[..,]",",[...,]"

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

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

পরীক্ষার ক্ষেত্রে 2 আউটপুট: f ">,[>,]<[.<]",",[...,]"

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

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

পরীক্ষার ক্ষেত্রে 3 আউটপুট: f ",.",",."

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

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

জটিল পরীক্ষার কেস: স্নিপেট এ: বর্ণমালা ত্রিভুজ তৈরি >+++++[<+++++>-]<+[>>[>[.>]]>++++++++++.--[<++++++++>-]<[+.<]<-]>>,>[.>]++++++++++.[<[.<]>,>[.>]<] করুন এটি অনলাইনে চেষ্টা করুন!

স্নিপেট বি: আরোপিত ক্রমে ইনপুটটি বাছাই >>,[>>,]<<[[-<+<]>[>[>>]<[.[-]<[[>>+<<-]<]>>]>]<<] করুন এটি অনলাইনে চেষ্টা করুন!

ফলাফল:

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

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


ধন্যবাদ. আমি জানি এটি বেশ উচ্ছৃঙ্খল। আমি কেবল প্রথম কাজের কোড সরবরাহ করতে চেয়েছিলাম। কোডের ব্রেইনফাক অংশেও পরিবর্তন আনবে।
ডোরিয়ান

5

ব্রেইনফাক , 785 বাইট

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

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

দ্বি থেকে A কে বিভক্ত করার পক্ষে বেছে নিয়েছেন /

Explaination:

প্রকৃত কোড যে এই উত্পন্ন এ / বি জন্য একটি পতাকা এবং একটি সুইচ যে ইনপুট জন্য চেহারা হ্রাস সঙ্গে শুধু একটি পাঠযোগ্য লুপ >, <, /, ,, এবং .এবং অন্যথায় শুধু আউটপুট ইনপুট। এটি প্রকৃতপক্ষে কেবল একটি ট্রান্সপ্লেলার যেখানে ট্রান্সপ্লেরড কোড এমন একটি ডেটা কাঠামোর মধ্যে থাকে যা এটি এ বা একে অপরের থেকে সঞ্চিত ডেটাতে হস্তক্ষেপ করে না। /শুধুমাত্র প্রথম অব্যবহৃত কক্ষে সক্রিয় কক্ষের চলে আসে। আমি প্রাথমিকভাবে এটি পরিষ্কার করেছি, তবে এটি প্রোগ্রাম এবং আউটপুট আরও বড় করে তোলে।

প্রোগ্রাম ফলাফলের নিম্নলিখিত মেমরি মডেল রয়েছে:

|0|input*|cz|d0|c0|d2|c0|...

cটুকরা টুকরা করা হয়। czসর্বদা 0এটি এটি নির্দেশ করে যেখানে আমার অনুকরণকৃত BF ডেটাতে পয়েন্টারটি রয়েছে। সক্রিয় মান -1 হয় যখন সমস্ত পরিদর্শন করা কক্ষগুলি থাকবে 1। ক্রিয়াকলাপগুলিতে aprintএবং breadকিছু cবিশেষ অর্থ পান।

একটি-কোড মুদ্রণ সমস্ত কক্ষকে আরও 1 বাইট ইনপুটের জন্য ঘর ছাড়তে 1 বাইট এড়িয়ে যায় যা পরবর্তী বাইটগুলিতে ব্যাকআপের সাথে অনুলিপিগুলি অনুলিপি করতে ব্যর্থ হয়।

বি-কোড রিড ইনপুট থেকে ইনপুট আনে। এখানে ধ্বংসাত্মক হওয়া ঠিক আছে এবং আপনি যখন শেষ বাইটটি "পড়া" করেন তখন বাস্তবায়ন নির্বিশেষে আপনি ইওএফ হিসাবে 0 পাবেন।

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

:bck
:i
:t
:z
:r
:rc
:rz

;;; outputs a header with most of the result logic
{cinit
  |"
    ;; memory model of the result 
    ML/i/z/d/c
    PTR=1/1/2
    :iz:i:z:d:c:d2:c2

    ;; moves pointer back. Bad things will happen to 
    ;; A output if out of bounds
    {backward @d2 $c2++ $c-- $d
    }

    ;; moves pointer forward
    {forward $c++ $c2[-]- $d2 @d
    }

    ;; stores the current cell in input a the start of bf data
    {aprint
      $c2(-)+                 ; mark next cell as used even if it maybe
      $c[$c2]                 ; go to the end of used data
      $c((->+)$d(->+)@d2)     ; as long as c is something move d and c one place right
      @i$c+[->>+]@c           ; go to active cell, zero it
      $d(-                    ; copy: 
        $c2+                  ; backup in c2 
        $z[<<]@z              ; back to i
        $i+ $c[>>]@c          ; increement and back to zero carry
      )
      $c2-(- $d+)+            ; copy backup in c2 back to d
      $c-                     ; mark active cell
      $d                      ; move to d
    }

    ;; removes all the data from A. And initializes for B
    {aend
      $c[$c2]
      $c((-)<(-)<@c)@z
      $c-$d
    }

    ;; instead of read b fetched from input area
    {bread
      (-)>+@c2          ; clear d and c
      $c[$z]            ; go to z
      $i<[<] @iz        ; go to iz
      $i(-$iz+)         ; switch places between i and iz
      $iz(-             ; copy from iz to d
         $z[>]@z        ; move to z
         $c[$c2]        ; move to the current c 
         $d2+           ; increase d
         $c[$z]         ; back to z
         $i[$iz]        ; back to iz
         @i             ; but since we shave switched correct
      )
      $z[>]@z           ; go back to z
      $c[$c2]-          ; move to active cell and make it -1
      $d2 @d            ; go to d
    }

    $c-$d               ; init. Go to c t mark it active, then go to d
    "
  (-)
}

{cmain
  &cinit
  $t,(
    (-$i+$bck+) ; pour to i and bck

    ;; switch ( $i ) cases '<>,./' using $t
    $t+++++++(-$i------)+$i--; ,
    ($i--; .
      ($i-; /
        ($i-------------; <
          ($i--; >
            ((-) $t(-)  $bck.)
              $t (- |"&forward "(-) )
          ) $t (- |"&backward "(-) )
        ) $t (- |"&aend "(-) $r+ )
      ) $t (- $rc+$r[$rc-$bck.$rc]@r$rc[- |"&aprint "(-) $rz])
    ) $t (- $rc+$r[$rc-|"&bread "(-)]@r$rc[-$bck.$rz])
    $bck (-) ; clear backup
      $t,    ; read into t
  )
}

&cmain

আমি যদি সঠিকভাবে বুঝতে পারি তবে [->+]প্রোগ্রাম সিতে ইনপুটগুলির মতো ব্যর্থতার কারণ হয় ->->,./,.এবং এটি ব্যবহার করে স্থির করা যায় [->>+](নিশ্চিত হওয়া উচিত যে পয়েন্টারটি পছন্দসই প্যারিটি দিয়ে কোনও ঘরে শুরু হয়)। এর জন্য [-<+], আমার মনে হয় আপনি এ এর ​​সমস্ত আউটপুট ননজারো হওয়ায় নেভিগেশন স্কিম পরিবর্তন করতে পারবেন?
মিচ শোয়ার্টজ

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

@ মিচশওয়ার্টজ আপনার মন্তব্যের জন্য ধন্যবাদ। -1যদিও আমি ব্যবহারকারীর ডেটা যদিও স্ক্যান করার আশা করিনি আমি একটু কৌতুকপূর্ণ ছিলাম , তবে প্রকৃতপক্ষে আমি "সক্রিয় কোষে যান, এটি শূন্য করুন" লাইনে করেছিলাম। আমি আমার উত্তর আপডেট করেছি এবং তারপরে আমি একটি বাইট যুক্ত করেছি: -ও তবে কমপক্ষে এটি কার্যকর হয়। BTW। তোমার দর্শন লগ করা জন্য স্ক্যান ব্যবহার করছেন না এমন -1যখন বি ইনপুট আনার সময়ে আমি একটি কপি সক্রিয় বাইট সরাতে হবে >[-<+]<এবং এইভাবে আমি আরো অক্ষর যোগ চেয়ে আমি প্রতিস্থাপন সংরক্ষণ +[-<+]-সঙ্গে [<]। আপনি যদি অনুলিপি না করেন তবে আপনি যে বাইটটি তৈরি করেছেন তা শেষ হয়ে গেছে এবং সমস্ত বাইট অনুলিপি করতে পারবেন না।
সিলেস্টার

আসলে আমার উল্লেখটি [-<+]আসলে বাগগুলি বাদ দেওয়ার ক্ষেত্রেও ছিল (বাইট সংরক্ষণের বিপরীতে) যেমন ইনপুট যেমন -./,>++++++[<++++++>-]<.প্রিন্ট করা উচিত #তার চেয়ে বেশি %। :) তবে আমি বাইটগুলি সংরক্ষণ করারও কিছু সুযোগ দেখতে পাচ্ছি। শুভকামনা! আমি আমার দ্বিগুণ অসীম টেপ সমাধানটি অপ্টিমাইজ করার চেষ্টা করব, যদিও আপনি যা করেছেন তা দেখে আমার মনে হয় ডান-অনন্ত টেপটি শেষ পর্যন্ত গল্ফিয়ার ier
মিচ শোয়ার্টজ

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

4

সেড, 165 বাইট

s > >[-]+> g
s < << g
1s \. >[-]-R+[[>+<-]<[>+<-]<]>+[->>+]<[>+>>-<L+>R+<<<-]>[<+>-]+< g
1s .* R&<R+> 
2s , ,[,]>,<L[[>]R<+L[<]>-]>[>]R+< g
s L <[<<]< g
s R >>[>>] g

ইওএফ = 0 দিয়ে স্বাদগুলির জন্য, 8 টি-বিট মোড়ানো কোষগুলি কমানোর শুরু থেকে বঞ্চিত সেলগুলি নিষ্ক্রিয় হয়।

প্রথম লাইনে A এবং দ্বিতীয় লাইনে বি প্রোগ্রাম আশা করে।

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

এটি A এবং B এর টেপগুলিকে অনুকরণ করতে 2-সেল নোড ব্যবহার করে, এ এর ​​আউটপুটটি বামতম নোডের বাম দিকে সংযুক্ত সেলগুলি দখল করে।

বিকল্প 173-বাইট সমাধান:

1i>>
s > >[-]+> g
s < << g
1s \. >[-]-[>>]+[[>+<-]<[>+<-]<]>+[->>+]<[>>>-<<+[<<]<+>>>[>>]+<<<-]>[<+>-]+< g
1a>[>>]+>
2s , ,[,]>,<<[<<]<[[>]>>[>>]<+<[<<]<[<]>-]>[>]>>[>>]+< g

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

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

কৌশল এবং ধারণার জন্য সিলেস্টার এবং ডোরিয়ানকে ধন্যবাদ।


এটি দুর্দান্ত দেখাচ্ছে। দুর্ভাগ্যক্রমে এটি প্রথম পরীক্ষায় ব্যর্থ হয়। প্রোগ্রাম এ ,[..,]এবং প্রোগ্রাম খ ,[...,]
ডোরিয়ান

ওহ, এটি আমার দিক থেকে নির্বোধ নজরদারি, আমি খুব তাড়াতাড়ি ছুটে এসেছি। এটি স্থিরযোগ্য তবে আমার এখনই এটি মুছে ফেলা উচিত।
মিচ শোয়ার্টজ

@ ডোরিয়ান এটি এখনই ঠিক করা উচিত। (আমি এটি সন্ধান করতে থাকব।) ভুলটি নির্দেশ করার জন্য ধন্যবাদ, এবং অসুবিধার জন্য দুঃখিত।
মিচ শোয়ার্টজ

আমি সচেতন যে কিছু বাইট যেমন s/x/>>/gখুব শেষে থাকায় সংরক্ষণ করা যায় তবে আমি উন্নতিতে আরও আগ্রহী যেগুলি আপাতত আউটপুটকে সংক্ষিপ্ত করবে।
মিচ শোয়ার্টজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.