একটি অকেজো দোভাষী কার্যকর করা [বন্ধ]


12

আপনার কাজটি অকেজো ভাষায় দোভাষী তৈরি করা :

এখানে কার্যকরী প্রয়োজনীয়তা রয়েছে:

  • সমস্ত বর্ণিত আদেশগুলি দোভাষী দ্বারা গ্রহণ করা উচিত।
  • NO., NOOPএবং INCLUDE-xxxসম্মানিত করা আবশ্যক।
  • DONTUSEME(n) পরীক্ষার উদ্দেশ্যে আরও যুক্তিসঙ্গত কিছুতে সহজেই কনফিগারযোগ্য হওয়ার জন্য অবশ্যই এর বেস তারিখটি থাকতে হবে।
  • INCLUDE-xxxমোটামুটি সমান সম্ভাবনা সহ যে কোনও কমান্ড তৈরি করতে সক্ষম হতে হবে। যদি এটি একটি উত্পন্ন করে DONTUSEME(n)তবে তার এলোমেলোভাবে n এর জন্য একটি ছোট মান নির্বাচন করা উচিত।
  • DONTUSEME(n)উইন্ডোজ NO.নির্দেশ থেকে বেঁচে থাকা উচিত । টিপ: এই উইন্ডোগুলির জন্য একটি নতুন প্রক্রিয়া উত্সাহিত করুন।
  • BOOM!এবং KABOOM!অবশ্যই খারাপ এবং ভীতিজনক কিছু KABOOM!করতে হবে এবং এর চেয়ে খারাপ হতে হবে BOOM!। তবে এটিকে খুব বেশি গুরুত্ব সহকারে নেওয়া উচিত নয় , তাই এটি ধ্বংসাত্মক, অত্যধিক-বিপর্যয়কর বা পূর্বাবস্থায় ফিরে আসা কঠিন কিছু হওয়া উচিত নয়। দয়া করে, এই নির্দেশাবলী কোনও কমান্ড চালাবেন না, একটি কাঁটাচামচ চালান, ফাইল সিস্টেমে ম্যালওয়্যার ইনস্টল করুন, দূষিত ডেটা বা ইন্টারনেট থেকে অনুপযুক্ত সামগ্রী পোস্ট বা ডাউনলোড করুন বা অন্য কোনও বিষয় পরিষ্কারভাবে আপত্তিজনক করবেন না, করবেন না এবং করবেন নাrm -rf \
  • TURINGVSALONZOএটি চালানো উচিত যেন এটি বাস্তবে এটি করা উচিত ছিল। টিপ: এটি এলোমেলোভাবে সিদ্ধান্ত নিন যে এটি খুব দীর্ঘ সময়, বা এলোমেলো স্বল্প সময়ের জন্য বা চিরকালের জন্য ঘুমায় কিনা।
  • অন্য সমস্ত পূর্বনির্ধারিত নির্দেশাবলী পূর্বোক্ত নির্দেশাবলী এবং অন্যটির থেকে পৃথক পৃথক কিছু বাদ দিয়ে অন্য কিছু করা উচিত, তবে কখনও BOOM!বা এর চেয়ে খারাপ কিছু হতে পারে না KABOOM!। তারা ঠিক কী করে তা আপনার উপর নির্ভর করে তবে একটি সাধারণ বাস্তবায়ন কেবল একটি ত্রুটি বার্তা বা অন্য কোনও পাঠ্য আউটপুট দেয়।
  • দোভাষী দ্বারা পরিচালিত প্রোগ্রামটি আপনার ব্যবহারকারীর পক্ষে একটি সহজ উপায় সরবরাহ করা উচিত। অর্থাত্ কোনও ফাইল থেকে বা পাঠানো পাঠ্য পাঠ্য stdinঠিক আছে। ইন্টারনেটে কোথাও একটি এনক্রিপ্ট করা ফাইল থেকে এটি পড়া নয়।

ঐচ্ছিক:

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

অপব্যবহার এড়াতে আমাদের কয়েকটি অ-কার্যকরী প্রয়োজনীয়তা রয়েছে:

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

এবং অবশেষে, এটি বিবেচনা:

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

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


আপনার মানে `আরএম-আরএফ`?
সাইমন কুয়াং

উত্তর:


8

টিআইবি-বেসিক

জন্য একটি কিল বাটন আছে DONTUSEME, আপনি এটি কোনটি বুঝতে পারেন? :)

:Lbl 1
:Input Str1
:If Str1="NO."
:Pause
:If Str1="FAIL"
:Disp "OBSOLETE. WHAT A FAIL."
:If Str1="NOT"
:Disp "USING NOT IS HIGHLY DISCOURAGED!"
:If Str1="NEVER"
:get(Police,911)
:If Str1="IDK"
:Disp LLLundefined
:If Str1="BOOM!"
:Disp "rm -rf \"
:If Str1="KABOOM!"
:send(virus)
:If Str1="QWAOZAPWQFUOA"
:Disp "SKIPPING QWAO... UNIMPLEMENTED"
:If Str1="WUT?"
:dayOfWk(1)
:If Str1="WHERE?"
:Disp "NON-EXISTENT. SKIPPED."
:If Str1="HOW?"
:++
:If sub(Str1,1,9)="DONTUSEME"
:Then
:While 1
:sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(sin(e)
:End
:End
:If Str1="ILLEGAL"
:Archive X
:If Str1="GODEXISTS"
:Disp "GOD EXISTS, PROVEN BY LAW."
:If Str1="WINDOWS"
:Disp "UNABLE TO OPEN START MENU!"
:If Str1="NOOP"
:Lbl 0
:If sub(Str1,1,8)="INCLUDE-"
:sub(Str1,9,length(Str1-8))
:If Str1=Ans
:Then
:If not(rand)
:Goto 0
:End
:If Str1="TURINGVSALONZO"
:Then
:"+"→Str0
:randInt(5,10)
:While Ans
:Ans-1
:If fpart(Ans,4)4=3
:Str0+"+"→Str0
:If fpart(Ans,4)4=2
:Str0+"-"→Str0
:If fpart(Ans,4)4=1
:Str0+">"→Str0
:If fpart(Ans,4)4=0
:Str0+"."→Str0
:End
:Disp "0"
:"?utm_campaign=0"
:End
:Goto 1

2
তার :Goto 1মানে কি এটি BOOM!কেবল একটি অনিঃপত্তি?
ভিক্টর স্টাফুসা

1
@ উইক্টর স্টাফুস হ্যাঁ আরও কিছু বিবেচনা করার পরে, আমি এটিকে changed rm -rf to এ পরিবর্তন করেছি কারণ আপনি আমাকে বলেছিলেন (না)।
টিমটেক

আপনি প্রয়োগ করেছেন বলে আমি মনে করি না INCLUDE-
লিটারোসিয়াসট

9

এইচটিএমএল + জাভাস্ক্রিপ্ট + jQuery + jQuery UI

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

আপনি এটি http://jsfiddle.net/bCBfk/ এ চেষ্টা করতে পারেন

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
    <title>Useless interpreter</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
    <style type="text/css">
      textarea { height: auto; }
      .badshit { color: red; }
      .ui-dialog-titlebar-close { display: none; }
    </style>
    <script type="text/javascript">
      String.prototype.startsWith = function(x) {
        return this.substring(0, x.length) === x;
      };
      String.prototype.endsWith = function(x) {
        return this.substr(this.length - x.length, x.length) === x;
      };

      var npe = "<pre>java.lang.NullPointerException\n"
          + "       at org.esolangs.wiki.useless.memorymodel.ExistentObjectPool.findObject(ExistentObjectPool.java:684)\n"
          + "       at org.esolangs.wiki.useless.interpreter.WhereInstruction.visit(WhereInstruction.java:29)\n"
          + "       at org.esolangs.wiki.useless.interpreter.UselessProgram.run(UselessProgram.java:413)\n"
          + "       at org.esolangs.wiki.useless.interpreter.Main.main(Main.java:53)</pre>";

      var wut = navigator.userAgent + " - " + navigator.language + " - " + navigator.platform + " - Ii?".toLocaleUpperCase();

      var wut2 = "";
      for (var c = wut.length - 1; c >= 0; c--) {
          wut2 += wut.charAt(c);
      }

      var popupMasterMind;
      function killIt() {
        clearInterval(popupMasterMind);
        $(".dontuseme").remove();
        popupMasterMind = null;
      }

      function spawn() {
        var x = $("<div class='dontuseme' title=''><p></p></div>");
        $("body").append(x);
        x.dialog();
        var bw = $("body").innerWidth();
        var bh = $("body").innerHeight();
        if (bh < 500) bh = 500;
        var xw = x.width();
        var xh = x.height();
        x.parent().css({left: Math.random() * (bw - xw) + "px", top: Math.random() * (bh - xh) + "px"});
      }

      function dontuseme() {
        if (popupMasterMind) return;
        spawn();
        popupMasterMind = setInterval(spawn, 700);
      }

      var hasOutput = false;
      function clearOutput() {
        $("#output").empty();
        hasOutput = false;
        $("#cc").hide();
      }

      function out(a) {
        $("#output").append($(a));
        hasOutput = true;
      }

      function finish() {
        $("#running").hide();
        $("#bt").show();
        if (hasOutput) $("#cc").show();
      }

      var annoyingUser = false;
      function swap() {
        annoyingUser = true;
        $("#everything").toggle();
        setTimeout(swap, 800);
      }

      function randomString() {
        var r = "";
        var f = Math.floor(Math.random() * 12) + 8;
        for (var i = 0; i < f; i++) {
          r += "ABCDEFGHIJKLMNOPQRSTUVWXYZ.!?0123456789".charAt(Math.floor(Math.random() * 39));
        }
        return r;
      }

      var instructions;
      function includeInstruction(name) {
        name = name.toUpperCase();
        if (instructions[name]) return; // Do not add it twice or overwrite existing instructions.
        var array = [];
        for (var e in instructions) {
          array.push(e);
        }
        var rand = Math.floor(Math.random() * array.length);
        //alert(name + ": " + array[rand]);
        instructions[name] = instructions[array[rand]];
      }

      // DONTUSEME(n) are special cases handled elsewhere.
      instructions = {
        "FAIL": function() { out("<p class='badshit'>Warning: The &lt;blink&gt; tag is obsolete.</p>"); if (!annoyingUser) swap(); return "next"; },
        "NOT": function() { out("<p class='badshit'>Warning: The NOT instruction is discouraged because it breaks yor Useless program.</p>"); return "quit"; },
        "NEVER": function() { out("<pre>Wild MISSINGNO. appeared!</pre>"); return "next"; },
        "IDK": function() { out("<pre>" + {}.idk + "</pre>"); return "next"; },
        "BOOM!": function() { $("#everything").empty(); return "quit"; },
        "KABOOM!": function() { window.location = "http://answers.yahoo.com/question/index?qid=20110816062515AANqygl"; return "quit"; },
        "NO.": function() { finish(); return "quit"; },
        "QWAOZAPWQFUOA": function() { out("<p class='badshit'>Sorry, I could not understand <a href='https://www.google.com.br/#q=women+psychology+and+behaviour'>this</a>.</p>"); return "next"; },
        "WUT?": function() { out("<p>" + wut2 + "</p>"); return "next"; },
        "WHERE?": function() { out(npe); return "next"; },
        "HOW?": function() { out("<p class='badshit'>Regular expression parser failed for HTML. Cause: \"ZALGO\"</p>"); return "next"; },
        "ILLEGAL": function() { out("<pre>codegolfer is not in the sudoers file.  This incident will be reported</pre>"); return "next"; },
        "GODEXISTS": function() { out("<p>'GOD' spelled backwards is 'DOG'. A DOG is an animal that does not exists, and by backwarding this, we conclude that GOD exists and is not an animal.</p>"); return "next"; },
        "WINDOWS": function() { out("<p><img width='640' height='400' src='http://upload.wikimedia.org/wikipedia/commons/3/3b/Windows_9X_BSOD.png' alt='Sorry, this optional instruction was not implemented. Please, install the service pack.'></p>"); return "next"; },
        "NOOP": function() { return "next"; },
        "TURINGVSALONZO": function() {
          var r = Math.random() * 10;
          if (r < 2) return "next";
          if (r < 7) return "t" + (Math.random() * 14 + 1) * 1000;
          if (r < 9) return "t" + (Math.random() * 50 + 10) * 60 * 1000;
          return "quit";
        },
        "42": function() {
          out("<p>Calculating the answer of the life, the universe and everything.</p>");
          out("<p>Estimated time is 7.5 million years.</p>");
          out("<p>Don't you want to briefly take a coffe while you wait? It will not take long, I promise.</p>");
          return "quit";
        },

        // This is special, as it needs a (surprising) useless parameter, it can't be acessed directly without prior processing, this is why it is lowercase.
        "dontuseme": function() { dontuseme(); return "next"; },

        // This is special. If the INCLUDE-xxx generates a INCLUDE-yyy instruction, the yyy instruction will have an unknown random generated name.
        // Since yyy is random and unknown, it probably won't appear in the input source code, but implement it regardless.
        "include-random": function() { includeInstruction(randomString()); return "next"; }
      };

      function bad(line) {
        //alert(line);
        out("<p class='badshit'>Syntax error: </p>");
      }

      function beyondEnd() {
        out("<p class='badshit'>Unrecoverable error: Tried to execute code beyond the end or program.</p>");
      }

      function interpretInstruction(lines, idx) {
        if (idx >= lines.length) { beyondEnd(); return; }

        // The toUpperCase serves two purposes: Making the language case-insensitive and hiding private implementations as lowercase instructions.
        ins = lines[idx].trim().toUpperCase();

        var result;

        // Special handling for parsing DONTUSEME(n)
        if (ins.startsWith("DONTUSEME(") && ins.endsWith(")")) {
          try {
            parseInt(ins.substring("DONTUSEME(".length, ins.length - 1));
          } catch (e) {
            bad(ins);
            return;
          }
          ins = "dontuseme";

        // Special handling for INCLUDE-xxx
        } else if (ins.startsWith("INCLUDE-") && ins.length > 8) {
          var name = ins.substring(8);
          includeInstruction(name);
          ins = "NOOP"; // Already executed, follow-up as noop.
        }

        // Execute the instruction.
        var f = instructions[ins];
        if (!f) { bad(ins); return; }
        var result = f();

        // Move on.
        if (result === "quit") return;
        var toWait = result === "next" ? 0 : parseInt(result.substring(1));
        var ii = idx + 1;
        setTimeout(function() {
          interpretInstruction(lines, ii);
        }, toWait);
      }

      function startInterpreter() {
        $("#bt").hide();
        $("#cc").hide();
        $("#running").show();
        var src = $("#input").val();
        var lines = src.split('\n');
        interpretInstruction(lines, 0);
      }

      $(document).ready(function() {
        $("#bt").click(startInterpreter);
        $("#cc").click(clearOutput);
      });
    </script>
  </head>
  <body>
    <div id="everything">
      <p>Type here your program input:</p>
      <textarea id="input" style="width: 400px; height: 150px;"></textarea>
      <p>
        <button id="bt">Run the program</button>
        <span id="running" style="display: none;">Running the program...</span>
      </p>
      <p>Here is the program output:</p>
      <p id="output" class="useless"></p>
      <button id="cc" style="display: none;">Clear the output</button>
    </div>
  </body>
</html>

এটিতে একটি নতুন আদেশ রয়েছে:

এটি 42হুকুম যা জীবন, মহাবিশ্ব এবং সমস্ত কিছুর উত্তর গণনা করে। একমাত্র উদ্দীপনাটি এটি শেষ করতে 7.5 মিলিয়ন বছর সময় নেয়।

অন্যান্য স্পেলার:

এই এন্ট্রিটিতে বেশ কয়েকটি বৈশিষ্ট্য রয়েছে:

  • আপনি FAILআদেশটি সত্যই ঘৃণা করবেন ।
  • BOOM!আপনাকে "এক্সিকিউশন ইউনিট" স্ক্রু আপ করবে। কমপক্ষে উইন্ডোগুলি এটি থেকে DONTUSEME(n)বাঁচতে সক্ষম।
  • KABOOM! বেশ কয়েকটি খারাপ উপায়ে বিশ্বের পক্ষে সত্যই বিপজ্জনক।
  • DONTUSEME(n)সর্বদা 0.8 সেকেন্ডে একটি করে অসীম অনাবৃত খালি উইন্ডো খোলে। তবে একটি লুকানো কিল সুইচ রয়েছে।
  • DONTUSEME(n)বেঁচে থাকে NO., FAILএমনকি BOOM!KABOOM!যদিও আমি এটিকে টিকিয়ে রাখতে পারি না । কারণটি হ'ল পপআপ উইন্ডোগুলি কাজ করবে না কারণ এটি একটি ক্লিকের ফলাফল নয় (এবং অন্যান্য উপায়ে তৈরি পপআপগুলি সমস্ত বড় ব্রাউজারগুলিতে দীর্ঘকাল নিষিদ্ধ ছিল), এবং একই-উত্স নীতি লঙ্ঘনের কারণে আইফ্রেমেস ব্যবহার করতে পারে না ।
  • INCLUDE-xxxDONTUSEME(n)বা অন্য কোনও নির্দেশ সহ যেকোন নির্দেশ তৈরি করতে পারে INCLUDE-yyy
  • যদি INCLUDE-xxxকোনও INCLUDE-yyyনির্দেশ জেনারেট করে , yyyনামটি এলোমেলোভাবে তৈরি করা হয়। আপনি যদি জেনারেটেড কমান্ডটির নাম ফায়ারব্যাগ বা এর অনুরূপ অন্য কিছু দিয়ে দখল করেন তবে আপনি এটি ব্যবহার করতে পারেন।
  • এটি ত্রুটিযুক্ত সিনট্যাক্স এবং অসম্পূর্ণ বা খালি ইনপুট পরিচালনা করে।

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