ইন্টারেক্টিভ ডেডফিশ দোভাষী লিখুন Write


30

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


সবিস্তার বিবরণী

  1. এমন একটি সংযোজক রয়েছে যা কমপক্ষে ১ b বিট আকারে, আরও অনুমোদিত তবে কম নয়। নেতিবাচক সংখ্যাগুলি সমর্থন করার প্রয়োজন নেই। সঁচায়ক হয় 0যখন প্রোগ্রাম শুরু হয়।
  2. চারটি কমান্ডের নিম্নলিখিত দুটি সেট রয়েছে এবং আপনার প্রোগ্রামটি একই সাথে উভয়কেই সমর্থন করবে।
      স্ট্যান্ডার্ড ডেডফিশ │ এক্সকেসিডি ভেরিয়েন্ট │ অর্থ
      ─────────────────────┼──────────────────┼───────── ───────────────────────────
            i │ x │ বর্ধিত সংগ্রহকারী
            d │ d re হ্রাস সংগ্রহকারী
            s │ k │ স্কোয়ার (acc = acc * acc)
            o │ c │ সংখ্যা হিসাবে আউটপুট সংগ্রহকারী
    
  3. যদি, একটি কমান্ড কার্যকর করার পরে, সঞ্চালক হয় হয় -1বা 256, সঞ্চয়ের অবশ্যই শূন্যে পুনরায় সেট করতে হবে। মনে রাখবেন যে এটি প্রায় মোড়ানো নয়। যদি, বলুন, সঞ্চালকটি হয় 20এবং sকমান্ডটি চালিত হয় তবে 400পরে সঞ্চালকটি হওয়া উচিত । একইভাবে, যদি সঞ্চালক হয় 257এবং dকমান্ডটি চালিত হয় তবে সঞ্চালক হয়ে উঠতে হবে 0
  4. এই আদেশগুলির মধ্যে একটি নয় এমন কোনও ইনপুট উপেক্ষা করা উচিত।

পরীক্ষা প্রোগ্রাম

  • xiskso আউটপুট করা উচিত 0
  • xiskisc আউটপুট করা উচিত 289

ইনপুট / আউটপুট

তোমার প্রোগ্রাম একটি প্রম্পট প্রদর্শন করা উচিত: >>। প্রম্পটটি অবশ্যই একটি নতুন লাইনের শুরুতে হওয়া উচিত। এরপরে ব্যবহারকারী ইনপুটটির একটি লাইন পড়তে হবে এবং প্রদত্ত কমান্ডগুলি বাম থেকে ডানদিকে চালানো উচিত। সংখ্যা আউটপুট দেওয়ার সময়, সংখ্যাগুলি পৃথক করতে হবে। অর্থাৎ 12 34ঠিক আছে, 12,34ঠিক আছে,

12
34 

ঠিক আছে, কিন্তু 1234না।

আপনার প্রোগ্রামটি কমপক্ষে EOFপৌঁছানো অবধি লুপে এটি চালিয়ে যাওয়া উচিত ।

উদাহরণ সেশন:

>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>> 

ইনপুট দেওয়ার জন্য অনুরোধ করার কারণে, আমি গল্ফস্ক্রিপ্ট ব্যবহার করতে পারি না :-(
প্রোগ্রামফক্স

@ প্রোগ্রামফক্স: আপনি রুবি ইনপুটটি সঠিকভাবে ব্যবহার করতে পারেন?
মেরিনাস

গল্ফস্ক্রিপ্ট টিউটোরিয়াল অনুসারে আপনি গল্ফস্ক্রিপ্টে ইনপুট দেওয়ার জন্য প্রম্পট করতে পারবেন না, সমস্ত ইনপুট এসটিডিইএন থেকে আসে।
ProgramFOX

@ প্রোগ্রামফক্স: আমি ভাবতাম এমন কিছু #{STDIN.gets}কাজ করবে তবে আসলে তা হয় না।
মেরিনাস

পরিবর্তে বড় হাতের অক্ষরের সাথে আমাদের কী ইনপুট নিতে দেওয়া হচ্ছে?
লিটারোসিয়াসট

উত্তর:


6

কে, 77 বাইট

  {1">>";0{x*2=-1 256?x:y@x}/("xkcdiso"!7#(1+;{x*x};{-1@$x;x};-1+))@0:0;.z.s`}`
>>xiskso
0
>>xiskisc
289

এই কে 4 নোট করুন । একটি কে solution সমাধানটি সামান্য দীর্ঘ কারণ আইও ক্রিয়াগুলি আরও দীর্ঘ হয়, এমনকি সমস্ত কিছু আরও ভাল থাকলেও:

{""0:">>";0{x*^-1 256?x:y@x}/("xkcdiso"!7#(1+;{x*x};{""0:,$x;x};-1+))@0:"";o`}`
  • ""0:প্রিন্ট করে এবং তার যুক্তিটি ফেরত দেয়। কে 4-তে দ্রষ্টব্য আমরা কেবল 1 এ প্রয়োগ করি ।
  • 0 f/ args একটি প্রাথমিক মান, অর্থাত্ হ্রাস প্রদর্শন করে f[f[0;first arg];second arg]…
  • {x*2=-1 256?x…এক্সকে 0 (-1-এর জন্য), 1 (256 এর জন্য) এবং অন্যান্য সমস্ত মানের জন্য 2 কে শ্রেণীবদ্ধ করে। 2=এর অর্থ আমরা 1শ্রেণিবদ্ধ মানগুলির জন্য পাই এবং 0অন্যথায়, দ্বারা গুণিত করা xশর্তযুক্তের চেয়ে কম। K6 আমরা কারণ একটু ভালো কিছু করতে পারি {x*^-1 256?x:y@x}যে উপর নির্ভর করে -1 256?xআয় 0N(নাল) এবং ^ডিটেক্ট করে NULLs।
  • "পার্সার" হ'ল "xkcdiso"প্রস্তাবিত আদেশের পরিবর্তে মানচিত্র কারণ 7#চারটি আর্গুমেন্টের চারপাশে আবরণ করা হবে অর্থাৎ 7#"abcd"রিটার্নগুলি "abcdabc"যা আমাদের টেবিলকে ছোট রাখে
  • মানচিত্রটি অনুবাদ করে "x"এবং "i"প্রক্ষেপণে 1+যা ফাংশনের সমান {1+x}তবে সংক্ষিপ্ত।
  • মানচিত্রটি "d"প্রক্ষেপণে অনুবাদ করে -1+যা ফাংশনের সমান {-1+x}তবে সংক্ষিপ্ত।
  • মানচিত্রটি অনুবাদ করে "k"এবং "s"ফাংশনে{x*x}
  • মানচিত্রটি অনুবাদ করে "c"এবং "o"আউটপুট {-1@$x;x}ফাংশনটিতে যা কে -6 এ আবার কিছুটা দীর্ঘ হয়: {""0:,$x;x}তবে উভয়ই তার আউটপুট একটি নতুন লাইন দ্বারা মুদ্রণ করে এবং তারপরে যুক্তিটি ফিরিয়ে দেয়।
  • .zs হ'ল স্ব-পুনরাবৃত্তি। K6 এ আমরা সহজভাবে বলতে পারি o`যা সংক্ষিপ্ত।

8

পার্ল 5 , 90 বাইট

do{print+(map{$?+=/i|x/-/d/;$?**=1+/s|k/;$?=~s/-1|^256$/0/;"$?
"x/o|c/}/./g),'>> '}while<>

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

এর আগে @xfix তার সহায়তার জন্য ধন্যবাদ ! সংরক্ষিত 4 বাইট @ এক্সকালি ধন্যবাদ !


1
আপনার প্রোগ্রাম প্রিন্ট করে 1যখন সংযোজক উপচে পড়ে যায়। এছাড়াও, আপনি আপনার প্রোগ্রাম পাঁচটি অক্ষর দ্বারা, পরিবর্তন করে খাটো করতে পারেন $aথেকে $?(যা সক্রিয়া করা হয় 0, এবং পরিবর্তন করবে না যতক্ষণ না আপনি পার্ল থেকে কিছু বহিরাগত প্রোগ্রাম চালানো)।
কনরাড বোরোস্কি

আহ্, আমি যে পরিবর্তনশীলটি আমি ব্যবহার করতে পারছিলাম তার জন্য শিকার করছিলাম, নিখুঁত, আপনাকে ধন্যবাদ! উপচে পড়া সম্পর্কে, আমি এটি লক্ষ্য করিনি কারণ এটি কেবলমাত্র আপনি যদি isssoএকটি কমান্ড হিসাবে চালান তবেই ঘটে, যদি আপনি পৃথকভাবে পৃথকভাবে না করেন তবে ... আমি পরে এটি দেখে নেব এবং অবশ্যই ব্যবহার করব $?। ধন্যবাদ!
ডম হেস্টিংস

সুতরাং আমি মনে করি আমি কোডের অংশে পুরানো সংস্করণটি রেখে দিয়েছিলাম তার ''পরিবর্তে মানচিত্রটি ""যখন ব্যবহার perl -e '...'করা হয় ফলাফলের সাথে শেষ হবে s///। আবার ধন্যবাদ!
ডম হেস্টিংস

ঠিক আছে, আপনি সবচেয়ে ছোট।
মেরিনাস

1
সবচেয়ে ছোট উত্তর আর নেই।
জিওকার

6

পাওয়ারশেল, 131 126 121 114 113

for($x=0){[char[]](read-host ">>")|%{switch -r($_){"i|x"{$x++}"d"{$x-=!!$x}"s|k"{$x*=$x}"o|c"{$x}}
$x*=$x-ne256}}
  • for($x=0){...} - সংগ্রহকারীকে 0 এ সেট করুন এবং চিরতরে লুপ করুন
  • read-host '>>' - প্রম্পট সহ ব্যবহারকারী ইনপুট পান >>
  • [char[]](...) - ব্যবহারকারীর ইনপুটকে অক্ষরের একটি অ্যারে রূপান্তর করুন
  • |%{...} - {}প্রতিটি চরিত্রের জন্য যা আছে তা সম্পাদন করুন
  • switch -r($_) - প্রতিটি চরিত্রের জন্য রেজেক্স স্যুইচ
  • "i|x"{$x++} - ম্যাচ iবা x- সঞ্চয়কারী বৃদ্ধি
  • "d"{$x-=!!$x} - ম্যাচে d- হ্রাস $xদ্বারা !!$x, যা হতে হবে 0যদি $xহয় 0, এবং 1অন্যথায়। এটি নিশ্চিত করে যে সংগ্রহকারী কখনও পৌঁছায় না -1
  • "s|k"{$x*=$x} - ম্যাচ sবা k- বর্গ
  • "o|c"{$x} - মিল oবা c- সংগ্রহকারীকে আউটপুট দেয়
  • $x*=$x-ne256- সংযোজকটি 0যদি হয় 256বা 1অন্যথায় দ্বারা গুণ করে ly

উদাহরণ আউটপুট

>>: xiskso
0
>>: xiskisc
289
>>: ddddo ddddo
285
281
>>: ddddo ddddo
277
273
>>: dddddddo
266
>>: dddddddddo
257
>>: do
0
>>: do
0
>>: io
1
>>:

আমি ধারণা করি এর বাস্তবায়ন read-hostহোস্ট সুনির্দিষ্ট, সুতরাং এই পাওয়ারশেল হোস্ট (কনসোলহস্ট) :নির্দিষ্ট প্রম্পটে সংযোজন করে ।


নিস! হ্রাসকে ভালবাসি !!$x, লজ্জা আমি সেটিকে কাজে লাগাতে পারি না ...
ডম হেস্টিংস

আরে ড্যাঙ্কো, আপনি কিছু পরীক্ষার আউটপুট পোস্ট করতে পারেন দয়া করে? আমি নন উইন্ডোতে পাওয়ার শেল পরীক্ষা করতে পারি বলে আমি মনে করি না ... (আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন!)
ডম হেস্টিংস

আমি উত্তরে কিছু পরীক্ষার আউটপুট যুক্ত করেছি।
ডানকো দুর্বিć

6

রেবোল 3, 178 169 161 159

f: does [if a = -1 or (a = 256)[a: 0]]d: [any[["i"|"x"](++ a f)|["d"](-- a f)|["s"|"k"](a: a * a f)|["o"|"c"](print a)| skip]]a: 0 forever [parse (ask ">>") d]

সুন্দর সংস্করণ:

f: does [if a = -1 or (a = 256) [a: 0]]
d: [
    any [
        ["i"|"x"] (++ a f) |
        ["d"] (-- a f) |
        ["s"|"k"] (a: a * a f) |
        ["o"|"c"] (print a) |
        skip
    ]
]
a: 0 
forever [parse (ask ">>") d]

6

হাস্কেল, 202

r=pure;-1%c=0%c;256%c=0%c;s%'o'=s<$print s;s%'c'=s%'o';s%'i'=r$s+1;s%'x'=s%'i'
s%'d'=r$s-1;s%'s'=r$s^2;s%'k'=s%'s';s%_=r s;n s(c:[])=s%c;n s(c:f)=s%c>>=(`n`f)
main=p 0;p s=putStr">> ">>getLine>>=n s>>=p

আপনি সম্ভবত পরিবর্তন করে eএবং vঅপারেটরগুলিতে কয়েকটি অক্ষর সংরক্ষণ করতে পারেন । আমি আবারও লেখার চেষ্টা করেছি vএবং gযাতে প্যারামিটারটি xআইওতে থাকে এবং printইত্যাদি প্রত্যাহারযোগ্য হয়। আমি এটি কাজ করার ব্যবস্থা করে নি, তবে আমি মনে করি যে এটির হেসেল জানে এমন কারও পক্ষে যাওয়ার জন্য এটি ভাল জায়গা হতে পারে।
shiona

@ শিওনা: হ্যাঁ, জিনিস রাখার বিষয়টি IOহ'ল তারা হয় প্রায়শই মুদ্রণ করে (এজন্য আমি r nতার পরিবর্তে ব্যবহার করেছি x) বা পর্যাপ্ত নয় কারণ মানটি কখনই জিজ্ঞাসা করা হয় না…। তাহলে আমি কীভাবে পরিবর্তন করব eএবং vঅপারেটরগুলিতে যাব ?
রাই-

মুদ্রণের ক্ষেত্রেও আমার একই সমস্যা ছিল। অপারেটরদের আপনি কী করতে পারেন (উদাহরণ হিসাবে ই ব্যবহার করে) 'i'%x=x+1;'d'%x=x-1... এবং কেবল এটি ভিতে কল করুন do n<-x;r$w$o%n। অপারেটররা জায়গা বাঁচানোর কারণ হ'ল তাদের চারপাশের স্পেসের প্রয়োজন নেই।
shiona

@ শিওনা: ওহ! শুভ কল, ধন্যবাদ!
Ry-

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

4

রুবি, 140 138

a=0
loop{$><<'>> '
eval gets.gsub(/./){|c|({i:i='a+=1',x:i,d:'a-=1',s:s='a**=2',k:s,o:o='p a',c:o}[:"#{c}"]||'')+';a=a==-1||a==256?0:a;'}}

নমুনা সেশন (আপনার মত একই):

c:\a\ruby>deadfish
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>

4

কে, 121

i:0;while[1;1">> ";{i{(r;0)(-1~r)|256~r:y x}/d{x@&x in y}[x;!d:"ixdskoc"!,/(2#(1+);-1+;2#{x*x};2#{-1@$i::x;})]}'" "\:0:0]

C:\q>q deadfish.k -q
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>

আমার সংস্করণ সংক্ষিপ্ত। আমি মানচিত্রে সংকোচিত হই, ভরসা করি ? "মোড়ানো" মানগুলির জন্য শ্রেণিবদ্ধ করা, কিছুক্ষণ পরিবর্তে ব্যবহৃত পুনরাবৃত্তি এবং সংশোধনের পরিবর্তে কার্যকরী দোভাষী।
জিওকার

4

আদা

যারা এই ভাষার প্রতি আগ্রহী তাদের জন্য এখানে একটি অ্যাডা বাস্তবায়ন। অ্যাডা-র কয়েকটি সেরা অনুশীলন (যেমন অ্যাক্সেসের পরিবর্তে ইনডিফিনিটহোল্ডার্স ব্যবহার করা) ব্যবহার করতে এবং ডেডফিশকে কীভাবে কাজ করতে হবে তা পুরোপুরি বুঝতে পেরে আমাকে বেশ কিছুটা সময় লেগেছে।

with Ada.Text_IO; use Ada.Text_IO;
with Ada.Containers.Indefinite_Holders;
with Ada.Integer_Text_IO;

procedure Deadfish is
   package String_Holder is new Ada.Containers.Indefinite_Holders(String);
   use String_Holder;

   value_output : Natural := 0;
   str_input : String_Holder.Holder := To_Holder("");
begin
   Prompt :
   loop
      Put(">> ");
      String_Holder.Replace_Element(str_input, Get_Line);
      for rg in str_input.Element'Range loop
         case str_input.Element(rg) is
            when 'i' | 'x' => 
               case value_output is
                  when 255 => value_output := 0;
                  when others => value_output := Natural'Succ(value_output);
               end case;

            when 'd'       =>                   
               case value_output is
                  when 257 => value_output := 0;
                  when 0 => null;
                  when others => value_output := Natural'Pred(value_output);
               end case;
            when 's' | 'k' => 
               case value_output is
                  when 16 => value_output := 0;
                  when others =>value_output := value_output * value_output;
               end case;
            when 'o' | 'c' => Ada.Integer_Text_IO.Put(value_output, Width => 0); Put_Line("");
            when others => null;
         end case;
      end loop;
   end loop Prompt;
end Deadfish;

এবং আউটপুট:

>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>

যদি অ্যাডায় কিছু লোক পরীক্ষা করে আমাকে কিছু অপ্টিমাইজেশনের ইঙ্গিত দিতে পারে তবে আমি কৃতজ্ঞ হব।


1
পিপিসিজিতে আপনাকে স্বাগতম! কোড-গল্ফের লক্ষ্যটি হ'ল সংক্ষিপ্ততম কোডটি তৈরি করা এবং আপনার শিরোনামের মধ্যে প্রোগ্রামটির আকার অন্তর্ভুক্ত করা উচিত (1396 বাইট এখানে)
টাকসক্রাফটিং

4

সি, 159 অক্ষর

A; main(c) {
  printf(">> ");
  while (c = getchar(), ~c)
    A = c - 'i' & c - 'x'?
        c - 'd'?
        c - 's' & c - 'k'?
        c - 'o' & c - 'c'?
        c - '\n'?
        A :
        printf(">> "), A :
        printf("%d\n", A), A :
        A * A :
        A - 1 :
        A + 1,
    A *= ~A && A - 256;
}

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

#define X !--c?A

A,M[256];
main(c) {
  for(; !M['x']; c++) M["@osid\nckx"[c]]-=c%5+1;
  for (printf(">> "); c = ~M[getchar()]; A *= ~A && A - 256)
  A= X,printf("%d\n", A),A:X*A:X+1:X-1:A;
  main();
}


3

পাইথন 3, 181 175 171 162

a=0
s=lambda x:"a=%d"%(x!=-1and x!=256and x)
while 1:
 for i in input(">>"):u,b,o=s(a+1),s(a*a),"print(a)";exec(dict(i=u,x=u,d=s(a-1),s=b,k=b,o=o,c=o).get(i,""))

এটি এর পরে একটি নতুন লাইন আউটপুট দেয় >>, কিন্তু ওপিকে এটি অনুমোদিত নয় বলে দেয়নি। আর না!

ধন্যবাদ GlitchMr, minitechএবং golfer9338!


1
আপনি তত্ক্ষণাত্ ফিরে আসে এমন কোনও কার্যের lambdaপরিবর্তে ব্যবহার করতে পারেন def
কনরাড বোরোস্কি

x in(-1,256)দুটি অক্ষর সংরক্ষণ করে বিকল্পভাবে, s=lambda x:"a=%d"%(x!=-1and x!=256and x)কিছু বাঁচাতে পারে।
রাই-

1
আপনি এর পরিবর্তে অপসারণ print(">>")এবং ব্যবহার করতে পারেন for i in input(">>"); input()একটি প্রম্পট নির্দিষ্ট করার অনুমতি দেয়। তারপরে, পরে কোনও নতুন লাইন থাকবে না >>এবং আপনি অক্ষরগুলি সংরক্ষণ করুন।
golfer9338

আপনার স্কোরটি এই মুহুর্তে কম হওয়া উচিত I দয়া করে ডাবল চেক করুন, তবে আমি পোস্ট 162 এর পরিবর্তে 161 এর একটি গণনা পেয়েছি: 3 + 40 + 8 + 107 এর লাইন, 3 টি নতুনলাইন। সত্যি কথা বলতে হবে, আমি হিংসুক, কারণ যেভাবেই হোক না কেন, আপনি আমার সি জবাবের চেয়ে কয়েকটি অক্ষর খাটো। চিয়ার্স!
ড্যারেন স্টোন

3

আর, 161 , 148 , 138

a=0;repeat{x=readline(">> ");for(i in utf8ToInt(x)-99){a=a^((i==8|i==16)+1)+(i==6|i==21)-(i==1&a);a=a*(a!=256);if(i==0|i==12)cat(a,"\n")}}

অবরুদ্ধ সংস্করণ:

a = 0
repeat{
  x = readline(">> ")
  for(i in utf8ToInt(x) - 99) {
    a = a ^ ((i == 8 | i == 16) + 1) + (i == 6 | i == 21) - (i == 1 & a)
    a = a * (a != 256)
    if(i == 0 | i == 12) cat (a, "\n")
  }
}

উদাহরণ সেশন (ইন্টারেক্টিভ মোডে):

>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>> 

3

পাইথন 3, 141

আমি জানি যে আমি দেরি করতে পেরেছি, তবে আমি একটি সংক্ষিপ্ত পাইথন-সংস্করণ (এবং আমার প্রথম কোডগল্ফ-প্রচেষ্টা) পোস্ট করার সুযোগটি নিতে চাইছিলাম। :)

v=0
m=lambda y:(0,y)[-1!=y!=256]
i=x='+1'
d='-1'
s=k='*v'
c=o=');print(v'
while 1:
 for n in input('>>'):exec('v=m(v'+locals().get(n,'')+')')

মুদ্রণ-বিবৃতি এটির জন্য খুব জটিল ছিল। প্রম্পটটি যদি একটি সাদা স্থানের সাথে শেষ করতে হয় তবে গণিতে একটি চর যুক্ত করুন। :)

ব্যাখ্যা

v সঞ্চালক হয়।

mচেক দেওয়া মান কিনা -1বা 256। যদি তা হয় 0তবে ফেরত দেওয়া হবে, অন্যথায় মান।

নিম্নলিখিত লাইনে ক্রিয়াকলাপগুলি সংশ্লিষ্ট ভেরিয়েবলগুলিতে বরাদ্দ করা হয়েছে (কারও কারও একই অর্থ রয়েছে (যেমন iএবং x) এটি একটি নতুন অভিধান ইনস্ট্যান্ট করার চেয়ে ছোট)। সেগুলি তখন execনীচে ব্যবহৃত হয় ।

while 1: প্রধান লুপ হয়

এখন মজা শুরু। @ জাজ্জপি'র সমাধানের মতো এটি ইনপুটটির প্রতিটি চরকে পুনরাবৃত্তি করে। locals()সমস্ত বর্তমান (দৃশ্যমান) ভেরিয়েবলের অভিধান। সঙ্গে .get(n,'')সংশ্লিষ্ট চাবি Exec স্ট্রিং পুরা করা হবে (একটি খালি স্ট্রিং, কী (অন্যান্য ইনপুট = হলে) পাওয়া যায়নি)। এটি তখন কার্যকর হবে, যখন মৃত্যুদন্ড কার্যকর করা হবে vএবং এর সাথে প্রেরণ করা হবে m। রিটার্ন মান vআবার সংরক্ষণ করা হবে ।

সংক্ষিপ্ত উদাহরণ:

হতে n = 'i'( n= ইনপুট-গৃহস্থালির কাজ), আমরা পেতে '+1'আউট locals-block যেমন iমান পরিবর্তনশীল '+1'
জন্য স্ট্রিং execভালো চেয়ে দেখায়: 'v=m(v+1)'
সম্ভবত এখন এটি আরও সহজে দেখা যায়, এক্সিকিউট করার সময়, এটি তার আউটপুটটির mমান দিয়ে v+1এবং এটি সংরক্ষণ করে v

আপনি বিরক্ত না হওয়া পর্যন্ত এটি পুনরাবৃত্তি করুন। :)


আমি বুঝতে পারলাম আমি পার্টিতে অনেক দেরি করেছি, তবে লম্বা লম্বা লম্বা y*(-1!=y!=256)-৩ বাইটের জন্য হতে পারে
মনিকা পুনরায়

মাত্র 5 বছর :) যদিও ইনপুট জন্য ধন্যবাদ। আমি উত্তরটি ঠিক করতে খুব অলস কিন্তু এটি আমি মনে রাখব
ডেভ জে

3

পাইথন 2, 139

a=0
while 1:
 for c in raw_input(">> "):
  if c in'ix':a+=1
  if c=='d':a-=1
  if c in'sk':a*=a
  if c in'oc':print a
  if a in(-1,256):a=0

এটি ঝরঝরে, তবে বেশ সোজাও। এখানে একটি দীর্ঘতর, শীতল সংস্করণ:

def i(a):
 while 1:
  c=yield
  if c in'ix':a+=1
  if c=='d':a-=1
  if c in'sk':a*=a
  if c in'oc':print a
  if a in(-1,256):a=0
 j=i(0);next(j)
while 1: 
 for c in raw_input(">> "):j.send(c)

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


3

টিআই-বেসিক, 104 107 102 100 98

TI-83 + / 84 + সিরিজের ক্যালকুলেটরগুলির জন্য।

নাম দিন prgmD; এটি অবশেষে নিজেকে কল করে স্ট্যাকটিকে উপচে ফেলেছে। একটি দিয়ে পুনরাবৃত্তি প্রতিস্থাপন করুনWhile 1 ঠিক করতে দুটি বাইটের ব্যয়ে ।

Input ">>",Str1
For(I,1,length(Str1
int(.5inString("?ixskd?oc",sub(Str1,I,1
If Ans=4
Disp Y
imag(i^Ans)+Y^int(e^(Ans=2     //decrements when Ans=3; increments when Ans=1
min(0,Ans(Ans≠256→Y
End
prgmD

Y ডিফল্ট হিসাবে 0, সুতরাং হয় তাজা মেমরি ক্লিয়ার ক্যালকুলেটর দিয়ে এটি চালান বা এটি চালানোর আগে 0 থেকে Y ম্যানুয়ালি স্টোর করুন।

খুব খারাপ যে ছোট হাতের অক্ষর (স্ট্রিং লিটারেলগুলিতে) প্রতিটি দুটি বাইট হয়; অন্যথায় এটি ডম হেস্টিংসের উত্তরের চেয়ে কম হবে।

সম্পাদনা: তিনটি বাইটের ব্যয়ে শূন্যের (0। 0) ত্রুটি স্থির করে।

107 -> 102: চারটি বাইট সংরক্ষণের জন্য কাল্পনিক ক্ষয়ক্ষতি কৌশল ব্যবহার করা হয়েছে (1 টি প্রথম বন্ধনী থেকে 1 এবং লুপিংয়ের স্ট্রিংটি দীর্ঘায়িতকরণ থেকে 1) এবং এক্স এর পরিবর্তে ওয়াই ব্যবহার করেছেন, যা আরম্ভ করতে কম বাইট নেয়।


2

পোস্টস্ক্রিপ্ট 272

/cmd<</i{1 add}/x 1 index/d{1 sub}/s{dup mul}/k 1 index/o{dup =}/c 1 index>>def
0{(>> )print flush{/f(%lineedit)(r)file def}stopped{exit}if{f
1 string readstring not{exit}if cmd exch 2 copy known{get exec}{pop pop}ifelse
dup -1 eq 1 index 256 eq or{pop 0}if}loop pop}loop

Ungolfed:

/cmd <<  % define commands
/i { 1 add }
/x 1 index
/d { 1 sub }
/s { dup mul }
/k 1 index
/o { dup = }
/c 1 index
>> def
0        % accumulator on stack
{
    (>> )print flush   % print prompt
    { /f (%lineedit) (r) file def } stopped {exit} if  % read input line or quit
    {
        f 1 string readstring not {exit} if   % read 1-char string from line
        cmd exch 2 copy known { get exec }{ pop pop } ifelse   % execute command or don't
        dup -1 eq 1 index 256 eq or { pop 0 } if   % adjust accumulator if needed
    } loop
    pop
}loop

2

সি (224 212 টি অক্ষর)

এটি সম্ভবত একটি খারাপ ভাষা পছন্দ, তবে ওহ ভাল। এটি এমন নয় যে সি এর মতো ভাষা কিছু গতিশীল প্রোগ্রামিং ভাষার চেয়ে ভাল করতে পারে। ঝাঁকুনিতে, আপনাকে এর জন্য একটি মান নির্দিষ্ট করতে হবে return(এটি জিসিসির জন্য প্রয়োজনীয় নয়)।

#define s(x,y)case x:y;break;
main(){int c=10,a=0;for(;;){switch(c){s(-1,return)s('i':case'x',++a)s('d',--a)s('s':case'k',a*=a)s('c':case'o',printf("%d\n",a))s(10,printf(">> "))}a!=-1&a!=256||(a=0);c=getchar();}}

কেবলমাত্র define qএবং কেবল ব্যবহারটি সরিয়ে ফেলা কি ছোট হবে না printf?
Doorknob

নিবন্ধন করুন q3 বার ব্যবহৃত হয়, তাই define q~ 2 অক্ষর সংরক্ষণ করে।
জাস্টিন

2

লুয়া, 230 228

a=0repeat io.write(">> ")x=io.read()for i=1,#x do c=x:sub(i,i)if c=="i"or c=="x"then a=a+1 elseif c=="d"then a=a-1 elseif c=="s"or c=="k"then a=a*a elseif c=="o"or c=="c"then print(a)end if a==256or a==-1then a=0 end end until _

সবচেয়ে খারাপ নয়, সেরাও নয়।

দ্রষ্টব্য: @ এমনিপ দ্বারা উল্লিখিত হিসাবে 256orআপনার দোভাষীতে কাজ নাও করতে পারে। মন্তব্যে আরও তথ্য।

(কম বা কম) পাঠযোগ্য সংস্করণ:

a=0
repeat
  io.write(">> ")
  x=io.read()
  for i=1,#x do
    c=x:sub(i,i)
    if c=="i"or c=="x"then
      a=a+1
    elseif c=="d"then
      a=a-1
    elseif c=="s"or c=="k"then
      a=a*a
    elseif c=="o"or c=="c"then
      print(a)
    end
    if a==256or a==-1then
      a=0
    end
  end  
until _

আউটপুট:

>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>

সম্পাদনা করুন: 2 চার অপ্টিমাইজেশনের জন্য @ এমনিপিকে ধন্যবাদ : until nil->until _


repeat until x(এক্স নিল যেমন সংজ্ঞায়িত করা হয় না) 2 টি অক্ষর সংক্ষিপ্ত হয়, এবং while 1 do endঠিক একই দৈর্ঘ্য, লুয়া সংস্করণ কি এটি ছাড়া অন্য? 256orআমার দোভাষীর অবৈধ সিনট্যাক্স
mniip

@ এমনিপ ইঙ্গিত সম্পর্কে ধন্যবাদ repeat until x। আমি থেকে সর্বশেষ উইন্ডোজ বাইনারি ব্যবহার করছি এখানে । আপনি দেখতে a=a+1 elseifপারেন স্থান আছে। এর কারণ eহেক্সাডেসিমাল ডিজিট, যখন oইন 256orনেই, তাই আমার দোভাষী orঅন্য বিবৃতি / ব্লক / হাও ইউক্যালআইটি হিসাবে গ্রহণ করেন।
Egor305

হ্যাঁ বেশ সুন্দর 256orএছাড়াও, এছাড়াও 0repeatএবং 1then; আমি lua.org থেকে অফিসিয়াল লুয়া ব্যবহার করছি, আপনার কোড 5.1, 5.2, বা 5.3 এর মধ্যে সংকলন করে না
mniip

2

হাস্কেল , 186 178 বাইট

এই চাহিদার সঙ্গে চালানো যাবে runhaskell(অথবা ভিতরে ghci) যেহেতু তারা উভয় সেট BufferModeথেকে NoBufferingডিফল্টরূপে যা সৌন্দর্য বেশ বাইট অনেকটা:

infix 4#
-1#x=0#x
256#x=0#x
r#x:y=case x of 'i'->r+1#y;'x'->r+1#y;'d'->r-1#y;'s'->r^2#y;'k'->r^2#y;'o'->print r>>r#y;'c'->r#'o':y;_->r#y
r#_=putStr">> ">>getLine>>=(r#)
main=0#""

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

ব্যাখ্যা

এটি একটি নতুন অপারেটর সংজ্ঞায়িত state # source(অপরিবর্তন ঘোষণা আমাদের যখন এটি অন্যান্য অপারেটরদের সাথে ব্যবহার প্রথম বন্ধনী ড্রপ করতে পারবেন (+), (-), (^), (:)এবং (>>)):

  • প্রথম দুটি লাইন রাজ্যগুলিকে "ফিক্স" করে -1এবং256
  • এটি তখন প্রথম চরিত্রের সাথে মেলে এবং এটিতে কাজ করে
  • অক্ষর ( r#_) এর বাইরে চলে যাওয়ার পরে এটি নতুন পাঠ করে এবং আবার পুরানো অবস্থা বজায় রেখে শুরু হয়

প্রক্রিয়াটি শুরু করার জন্য আমরা 0একটি নতুন উত্স লাইন দিয়ে রাষ্ট্রকে সূচনা করি এবং পড়ি ie খালি উত্স দিয়ে শুরু করুন:

main=0#""

1

উইন্ডোজ ব্যাচ, 204 256

@echo off
set a=0
:a
set /p i=^>^> 
if %i%==i set /a a=%a%+1
if %i%==x set /a a=%a%+1
if %i%==d set /a a=%a%-1
if %i%==s set /a a=%a%*%a%
if %i%==k set /a a=%a%*%a%
if %i%==o echo %a%
if %i%==c echo %a%
if %a%==256 set a=0
if %a%==-1 set a=0
set i=n
goto a

সফলভাবে অন্যান্য আদেশগুলি উপেক্ষা করুন ign সত্যিই orকাজ না করেই ফুলে উঠেছে ...

সম্পাদনা:

ফিক্সড:

  • আর সব কমান্ড প্রতিধ্বনি করা হচ্ছে না
  • এটি আসলে / এ দিয়ে ডিও ম্যাথ তৈরি করে
  • -১ এ রিসেট করুন
  • প্রতিটি চক্রের পরে ইনপুট পুনরায় সেট করুন

এটির জন্য 52 টি অক্ষর রয়েছে।

স্থির করা হয়নি:

  • স্কোয়ারিং 0 একটিতে "0 * 0" লিখেছেন।
  • ইনপুটিং স্পেস (বা কিছুই ইনপুট না করা, আপনি যখন এটি সবেমাত্র খুললেন) স্ক্রিপ্ট ক্র্যাশ করে।
  • আপনাকে একবারে একটি চর ইনপুট করতে হবে।

2
এটি কেবলমাত্র সরল কিছুতেই কাজ করে না (উইন্ডোজ)) আমি একটি গাধা হতে চাই না কিন্তু আপনি কি এটি পরীক্ষা করেছেন?
মেরিনাস

@ মারিনাস এটি ঠিক করা হয়েছে।
টিমটেক

1

উইন্ডোজ কমান্ড স্ক্রিপ্ট - 154

আবসিন সর্বাধিক অজানা বৈশিষ্ট্যগুলি।

@echo off
set i=1
set x=1
set d=-1
set/as=[*[-[
set/ak=[*[-[
set.=0
set/p.=^>^> 
set/a[=[+%.%
e%.:o=c%h%.:c=o% %[% 2>nul
set[=%[:-1=%
if;%[%==256 set[=
%0

1

> <> , 258 বাইট

আমি অন্য> << উত্তরটি সম্পন্ন করেছি যেহেতু আমি পর্বের পরীক্ষা করতে পারিনি এবং এটি যে কোনও উপায়ে শেল অনুকরণের চেয়ে প্রাক-স্ট্যাকড কমান্ড ব্যবহার করেছে।

0v
"<vooo">> 
!~>i:0)?v~ >
 ^?=a:  /  ^!?="c"v?="o":v?="s":v?="k":v?="d":v?="x":v?="i":
   voan:<        ~<  v*:~<      <  v-1~<  v+1~<      <
   <                 <             <      <vv?=-10:v?=*:+1f:
  v                                        <>      >~0

এটি অবশ্যই গলিয়ে যেতে পারে তবে আমি নিশ্চিত নই যে আমার প্রয়োজনীয় পাগলামি হবে সাহসিকতা !

আমি এটি অফিসিয়াল দোভাষী সাথে উইন্ডোজ 7 এর অধীনে সাইগউইনের অধীনে পাইথন 3.5 এর অধীনে চলমান পরীক্ষা করেছি এবং পরীক্ষাটি পুনরুত্পাদন করতে পারলাম:

$ python fish.py deadfish.fish
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>> (pressed ctrl-Z)Stopped

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

0v
 <vooo">> "<
  >i:0)?v~
      o:/  ^!?="c"v?="o":v?="s":v?="k":v?="d":v?="x":v?="i":
 ^oanoa:<        ~<  v*:~<      <  v-1~<  v+1~<      <
   <                 <             <      <vv?=-10:v?=*:+1f:
  v                                        <>      >~0

এটি স্পষ্টতই \ n এবং ইওএফকে অগ্রাহ্য করে যেহেতু আপনি এগুলি অনলাইন দোভাষীতে ইনপুট করতে পারবেন না, তবে প্রতিটি আউটপুট কমান্ডের পরে এন্টার চাপলে এমন আচরণ করবে।


1

সি (জিসিসি) , 139 বাইট

-Dk="_nZZiaeY"(বাইট গণনায় অন্তর্ভুক্ত) সহ সংকলন করুন । প্রম্পট >>\nঅনুমোদিত হলে -2 বাইট ।

x;f(c){for(printf(">>");c=getchar()-10;x+=c--?c--?c--?c||printf("%i\n",x),0:x*x-x:-1:1,x*=~x&&x^256)c=strchr(k,c)-k>>1;f();}

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

Degolf

/** Preprocessor **/
-Dk="_nZZiaeY" // This is a lookup string; it corresponds to "ixddskoc",
               // with 10 deducted from each character. Upon compilation, 
               // all occurences of the string literal are replaced with a 
               // pointer to its location in memory.

/** Source **/
x;f(c){ // x: 32-bit accumulator, c: local variable for read character
    for(printf(">>"); // Start for-loop and print prompt.
            c=getchar()-10; // Read a character from STDIN.
                            // Loop breaks if it is '\n'.

            // The below happens at the end of each iteration.
            x+=c--?c--?c--? 
               // Find the correct operation by testing c and post-
               // decrementing with multiple ternary-ifs. If c is 0, 
               // operation was found, add the else-value to the 
               // accumulator x.
               //     If the character is invalid, the value of c is
               // very large, and will not reach 0 with 3 decrements.

               c||printf("%i\n",x),0 
               // If c-3 is 0, print accumulator, else do nothing.
               // Returns 0 regardless of what happens. (No change to x)
               :x*x-x 
               // Square. Results in x=x+x*x-x, and is shorter than (x*=x)
               :-1:1, 
               // Decrement, Increment.
               x*=~x&&x^256 
               // Because -1==0xffffffff, ~x==0 when x==-1. Likewise,
               // x^256==0 only when x==256. The logical-AND coerces the result
               // to boolean 1 (no match) or 0 (match). Multiplication resets
               // the accumulator as appropriate.
           )
        // This is the actual body of the for-loop
        c=strchr(k,c)-k>>1; 
           // Finds the index of the read character in the lookup string,
           // then "divides" it by two.
           // Because strchr() returns NULL (0) when character is not found,
           // deducting k from it results in a very negative number.
           // The right-shift results in division by 2 for positive numbers, 
           // while the negative numbers become very large positive numbers
           // (c >= 0x70000000) because of the 2's complement representation.
    // Finally, recurse until forceful termination.
    f();
}


0

হাস্কেল, 230

import System.IO
i""n=[]
i(a:b)n 
 |a=='o'||a=='c'=[n]++i b n
 |True=i b$v a n
v a n=w(case a of 'i'->n+1;'x'->n+1;'d'->n-1;'s'->n^2;'k'->n^2)
w(-1)=0
w 256=0
w n=n
main=do;putStr ">> ";hFlush stdout;s <- getLine;print$i s 0;main

কেবল যদি আমি সেই কষ্টকর hFlush stdoutকল থেকে মুক্তি পেতে পারি ! এটি ছাড়া, কোনও oঅপারেশন সঞ্চালিত না হওয়া অবধি প্রম্পটটি প্রদর্শিত হয় না । কোন পরামর্শ?


আপনি সংকলনের পরিবর্তে ( আমার উত্তর দেখুন ) hFlushব্যবহার করে পরিত্রাণ পেতে পারেন , তবে এই সমাধানটি বৈধ নয় এবং ত্রুটিগুলিও আউট হয়েছে। runhaskell
24

0

পিএইচপি + এইচটিএমএল 345

<form><?php $i=0;$o='';if(isset($_GET[i])){$i=$_GET[a];foreach(@str_split($_GET[i]) as $j=>$v){$v==i||$v==x?$i++:($v==d?$i--:($v==k||$v==s?$i*=$i:($v==o||$v==c?$o.=$i."\n":'')));($i==256||$i==-1)&&$i=0;}$_GET[p].='>> '.$_GET[i]."\n".$o;echo"<textarea locked name=p>$_GET[p]</textarea><input type=hidden name=a value=$i><br>";}?>>> <input name=i>

আউটপুটটি কিছুটা স্কেচিযুক্ত (ইতিহাস / সেশনটি একটি টেক্সারিয়ায় দেখানো হয়, এবং ত্রুটি প্রতিবেদন করার সাথে অনেকগুলি সতর্কতা মুদ্রিত হয়) তবে সমস্ত কিছুই কার্যকর হয়


0

> <>, 239

v
\r0&
v                  <
\&::&01-=$f1+:*=+?v
v             &0~&<
\:"i"=?v
       >~&1+&      ^
\:"d"=?v
       >~&1-&      ^
\:"s"=?v
       >~&:*&      ^
\:"o"=?v
       >~&:o&      ^
\:"h"=?v
       >~;        (^)
>~                 ^

প্রাথমিক স্ট্যাকটি হ'ল ইনপুট। আপনি এটি এখানে অনলাইনে চেষ্টা করতে পারেন ।


0

গল্ফ-বেসিক 84, 88 টি অক্ষর

:0_A:0_O:1_I:2_D:3_S:O_C:I_X:S_Kl`1i`N@A=256:0_A@N=0d`A@N=1:A+1_A@N=2:A-1_A@N=3:A^2_Ag`1

কমপক্ষে 3 টি অন্যান্য সমাধানের মতো একই সময়ে একটি কমান্ড প্রম্পট করে। এখানে একটি পরীক্ষা চালানো হয় xiskisc:

?X
?I
?S
?K
?I
?S
?C
             289

এছাড়াও, xiskso0 আউটপুট, এটি করা উচিত।


অন্য কোন সমাধানগুলি একবারে একটি আদেশের অনুরোধ জানায়?
রাই-

1
আমি হাসেলকে একটি লিখেছিলাম, এবং না, তা হয় না। পার্লও নয়, তাই আপনি কী বলছেন তা আমি সত্যিই নিশ্চিত নই।
রাই-

1
এটি আই / ও বিধি অনুসরণ করে না।
মেরিনাস

1
এখনও নিয়মগুলি অনুসরণ করে না এবং ছোট হাতের চেয়ে বড় হাতের অক্ষর ব্যবহার করে।
লিটারোসিয়াসট

1
আপনি যদি টিআই-বেসিক সম্পর্কে জানেন তবে এটি কেবল বড় হাতের ইনপুটটিকে সমর্থন করে।
টিমটেক

0

জাভাস্ক্রিপ্ট (নোড.জেএস), 204 বাইট

process.openStdin(f=a=>process.stdout.write((i=0,""+a).split` `.map(x=>([...x.slice(0,-1)].map(d=>({i:x=e=>i++,d:e=>i--,s:k=e=>i*=i,o:c=e=>e,x,k,c})[d](i=-1||i==256?i=0:0)),i))+"\n>> "),f``).on("data",f)

এটি সম্ভবত গল্ফ করা যেতে পারে। নোড.জেএস আবার প্রমাণ করেছে যে এটি আবার অদ্ভুত ছদ্মবেশযুক্ত ভার্বোসিটি। কোড ব্যাখ্যা করেছেন:

process.openStdin( // This function has to be called to take input, but doesn't have arguments
  f=a=> // Define a function f. This is the deadfish interpreter. It takes an argument `a` which is a Buffer
  process.stdout.write( // Same as console.log, but doesn't output trailing newline
    (i = 0, "" + a) // Take advantage of comma operator to (A) define the accumulator i, and casts a (which is a Buffer) to a String
      .split` ` // Split the string a at spaces, making it an array
      .map(     // Map through each element of the array
        x=>     // Map function, takes argument x, the value in the array (string)
          ([...x.slice(0,-1)] // Remove the last character (newline) and than use the spread operator to divide the string into an array of it's chars
            .map(d=> // Map function, you know how this works
              ({ // Here I define the various deadfish commands
                i: x = e => i++,
                d: e => i--,
                s: k = e => i*=i,
                o: c = e => e,
                // Take advantage of ES6 object notation. Equivilent to {"x": x, "k": k, "c", c}
                x,
                k,
                c
              })
              [d] // Get the command to execute. If this is passed something which isn't valid, a giant error will appear
              (
                i==-1 || i==256 ? i = 0 : 0 // Take advantage of the fact that none of the command functions take arguments to handle the strange "overflow"
              )
            ),
          i)
      ) +
  "\n>> "), // Display the prompt again, as well as a newline
  f`` // Initalize the prompt by passing an empty script
)
.on("data",f) // Bind the f function to newline on STDIN

0

সি #, 311 বাইট

using System;class p{static void Main(){int a=0;int s(int b)=>b==-1||b==256?0:b;while(true){Console.Write(">>");var c=Console.ReadLine();for(int i=0;i<c.Length;i++){switch(c[i]){case'i':case'x':a=s(a+1);break;case'd':a=s(a-1);break;case's':case'k':a=s(a*a);break;case'o':case'c':Console.WriteLine(a);break;}}}}}

283 বাইট হবে যদি কেবলমাত্র একটি ফাংশন সংজ্ঞা প্রদানের মাধ্যমে usings এবং শ্রেণি ঘোষণা ইত্যাদি বাদ দেওয়া যায়

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