আমি! এন! গুলি! ই! দ! টন! ! এন! খ! ই! টন! W! ই! ই! এন!


24

এখান থেকে পোস্ট ।

এই চ্যালেঞ্জটি এই প্রশ্নটি থেকে অত্যন্ত "নিঃশেষিত" । @ আকবাবার জন্য বিশেষ ধন্যবাদ!

এই কার্যক্রমে, আপনার স্ট্রিংয়ের শুরুতে এবং প্রতিটি চরিত্রের পরে একটি বিস্ময় চিহ্নটি sertোকানো উচিত।

বিধি

  • সর্বদা একটি খালি-খালি স্ট্রিং ইনপুট থাকবে। ইনপুটটিতে ট্যাবও থাকবে না। আপনি ধরে নিতে পারেন ইনপুটটিতে কেবল অ-প্রসারিত ASCII মুদ্রণযোগ্য অক্ষর এবং নতুনলাইন রয়েছে।
  • ইনপুটটিতে ততক্ষণ ট্রেলিং করা নিউলাইন থাকবে না যতক্ষণ না আপনার ভাষা একটি নতুন লাইন সনাক্ত করতে পারে।
  • এটি একটি প্রতিযোগিতা; সংক্ষিপ্ত উত্তরটি জিততে হবে।

উদাহরণ

  • 4 টি নিউলাইন ফলাফল 5 টি নতুনলাইন-বিস্মৃত বিস্মৃত চিহ্ন চিহ্ন। এটিকে মার্কডাউন পাঠ্য হিসাবে রাখা খুব কঠিন, সুতরাং পরিবর্তে এটি বর্ণিত হয়েছে।
1 2 3 4 5 6
129591 129012 129127 129582

0

আউটপুট

1! ! 2! 3! ! 4! ! 5! 6!
1! 2! 9! 5! 9 1! 1! 2! 9 0 1! 2! 1! 2! 9 1! 2! 7! 1! 2! 9! 5! 8! 2!
!
0!
আসাদ আফজোক আক: ই
kPrLd
    fOJOE;
    KFO
কেএফকেপজগপ এসপপাওজ ফাজ

আউটপুট

! একটি! গুলি! ঘ! ! একটি! চ! ঞ! হে! কে! ! একটি K:! ই!
! ট! পি! দ! এল! ঘ!
! ! ! ! ! চ হে জে হে ই!!!;
! ! ! ! ! কে! এফ! হে!
! কে! এফ! ট! ই! P! ঞ! ছ! হে! P! ! গুলি! ছ! P! একটি! হে! ঞ! ! ! ! চ! একটি! ঞ!

একটি মাত্র অক্ষর সহ একটি বেস পরীক্ষার কেস:

একটি

আউটপুট

! একটি!

(স্বতঃসমাপ্তি

!!
!!
!!
!!
!!

আউটপুট:

!!!!!
!!!!!
!!!!!
!!!!!
!!!!!


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

1
যদি কোনও ভাষা a\nএবং এর মধ্যে পার্থক্য বলতে না aপারে, তবে আমাদের কী প্রয়োজন যে কোনও নতুন লেলাইন নেই?
জিউসেপ

13
ডাউনগোটগুলি প্রতিটি আপভোটের মধ্যে সন্নিবেশ করা হয়, ঠিক যেমন চ্যালেঞ্জ বর্ণনা করে।
একজন

2
এই মারা গেছে।
ভি। কুর্তোয়া

উত্তর:



12

পাইথন 3 , 27 বাইট

lambda s:f"!{'!'.join(s)}!"

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

সত্যিই, আমি আশা করি ছোট বাইট গণনা সহ কেউ আমাকে এটি করার জন্য দুর্দান্ত উপায় প্রদর্শন করতে পারেন।


এটি খালি লাইন কেসটি সঠিকভাবে পরিচালনা করতে পারে না
ফ্লাক্স

@ ফ্লাক্স আপনার অর্থ কি? যদি আপনার অর্থ একটি খালি স্ট্রিং থাকে: আমাদের খালি স্ট্রিং হ্যান্ডেল করার দরকার নেই (এবং এই !!ক্ষেত্রে এই ফলাফলগুলি নির্বিশেষে আমার কাছে বোধগম্য হয়)। আপনি যদি স্ট্রিংটি বোঝাতে চান \n: এটি সঠিকভাবে আউটপুট হওয়ায় এটি করে !\n!
জনাথন অ্যালান

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

1
আহ আমি ভুল ছিল। প্রথম উদাহরণটির ইনপুটটির মাঝখানে ফাঁকা রেখা রয়েছে। তবে এই উত্তরটি এর মাঝখানে বিস্ময়বোধক স্থানটি পরিচালনা করবে !\n!\n!,। চমৎকার কাজ.
ফ্লাক্স



10

রেটিনা 0.8.2 , 2 বাইট


!

এটি অনলাইন চেষ্টা করুন! শেষ অবধি, চ্যালেঞ্জ যেখানে রেটিনা একটি অন্তর্নির্মিত আছে!


1
আসলে, আমি এই রেটিনা অন্তর্নির্মিত এর ভিত্তিতে এই চ্যালেঞ্জটি তৈরি করেছি।


কোয়াডআর -1 বাইট।
একজন

2
@ এএই ঠিক আছে, আমি সেই বৈশিষ্ট্যটি ভুলে গিয়েছি ( যদি কেবলমাত্র একটি অ-ফাংশন লাইন থাকে ... ) আপনি নিজের চেক-চিহ্নটি পুনরায় বিবেচনা করতে চাইতে পারেন ।
অ্যাডাম



8

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

অক্ষরের অ্যারে হিসাবে ইনপুট নেয়।

s=>`!${s.join`!`}!`

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


জাভাস্ক্রিপ্ট (ES6),  23  20 বাইট

@ শিরুআসাকোটোর ধন্যবাদ 3 বাইট সংরক্ষণ করা হয়েছে

স্ট্রিং হিসাবে ইনপুট নেয়।

s=>[,...s,,].join`!`

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


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

@Tjjfvi দ্বারা প্রস্তাবিত

স্ট্রিং হিসাবে ইনপুট নেয়।

s=>s.replace(/|/g,"!")

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



@tjjfvi নিফটি এক!
আর্নাউল্ড

5
আমি আপনার 23 এর জন্য 20 পেয়েছি:s=>[,...s,,].join`!`
শিয়েরু আসাকোটো

7

আর , 25 বাইট

function(x)gsub("","!",x)

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

একটি চরিত্র ভেক্টর গ্রহণ এবং ফিরিয়ে ফাংশন।


ফাংশন ফর্ম সুইচিং দ্বারা 3 বাইট শেভ করতে পারি scan(,''), তাই মত tio.run/##K/r/P724NElDSUlHSVFJpzg5MU9DR11dU/O/...
Sumner18

@ Sumner18 ধন্যবাদ। আমি এটি দিয়ে শুরু করেছিলাম তবে এটি ফাঁকা জায়গায় ইনপুট বিভক্ত হয়।
নিক কেনেডি

1
@ Sumner18 চ্যালেঞ্জটি নতুন লাইনের সাথে ইনপুট হ্যান্ডেল করতে বলেছে, যা সম্পন্ন করা যায় না scan(তবে নিকের সমাধানটি যদি হ্যান্ডল করে তবে কমপক্ষে আপনি যদি আউটপুটটি প্রদর্শন করেন cat))
রবিন রাইডার

7

8086 মেশিন কোড, .COM ফর্ম্যাট (এমএস-ডস 2+), 32 বাইট

(-1 এমুলেটারের উপর নির্ভর করে: নীচে দেখুন)

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

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

BB 01 00 53 59 BA 0B 01 B4 40 CD 21 4A 4B B4 3F CD 21 85 C0 74 09 B4 40 43 41 CD 21 49 EB EE C3

কিছু আকর্ষণীয় বিট:

  • আমি (মেমরি যা আগেই মৃত্যুদন্ড কার্যকর করা হয়েছে পুনঃব্যবহার দ্বারা কিছু ডেটা স্থান সংরক্ষিত 21Hমধ্যে INT 21Hহতে হবে !)

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

সংসদীয় কোড (টিএএসএম আদর্শ মোড):

IDEAL
MODEL   TINY

CODESEG
ORG 100H

;; DOSBox (tested with 0.74-2) didn't seem to handle Ctrl-Z as EOF
;; so uncomment the ";;" lines to run it there.
MAIN:
    MOV     BX,1
    PUSH    BX
    POP     CX
    MOV     DX,OFFSET MAIN_1+1  ; The 21H in INT 21H
    MOV     AH,40H
MAIN_1:
    INT     21H
    DEC     DX
    ;;PUSH  DX
    ;;POP   SI
IO_LOOP:
    DEC     BX
    MOV     AH,3FH
    INT     21H
    ;;; This should work on an non-emulated PC. 
    ;;;AAA      ; AL=0?
    TEST    AX,AX
    JZ      DONE
    ;;CMP   [BYTE PTR SI],1AH
    ;;JZ    DONE
    MOV     AH,40H
    INC     BX
    INC     CX
    INT     21H
    DEC     CX
    JMP     IO_LOOP
DONE:
    RET
ENDS
END MAIN

7

brainfuck , 24 22 বাইট

-২ বাইটস জোকিংকে ধন্যবাদ।

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

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


@ জোকিং ধন্যবাদ, আমি আমার উত্তর আপডেট করেছি
ক্রজিৎসটোফ সেজউইজিক

অভিশাপ, এটা খারাপ
ক্রুঙ্কার

6

পেপে , 47 বাইট

REREEeRErEErREeeEeeeeEREEeeREEeereeREEEEeeEReee

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

ব্যাখ্যা:

REREEeRE # Push 0,then input (str),then 0 -> (R)
         # The zeroes are pushed to correct the inserting
rEE # Begin loop labelled 0 -> (r)
  rREeeEeeeeE # Push "!" -> (R)
              # r flag inserts it instead of pushing
  REEeeREEee # Move pointer pos 2 steps forward -> (R)
ree # Loop while (R) != 0
REEEEeeE # Remove characters of (R) that are in stack of (r)
         # Removes the 0 in (R)
Reee # Output (R)

আপনি এই কোডটি কীভাবে লিখবেন? আপনি ব্যবহার করেন এমন কিছু কোড রূপান্তরকারী আছে? এটি চেষ্টা এবং লেখার জন্য পাগল বলে মনে হচ্ছে
ক্রুঙ্কার

1
@Cruncher 1) আমি ব্যবহার এই আমার গাইড হিসাবে। 2) না, আমি একটি কোড রূপান্তরকারী ব্যবহার করি না, আমি কেবল কোডটি লেখার জন্য গাইড ব্যবহার করি।
u_nd সংজ্ঞায়িত

6

ল্যাবরেথ ,  19 11 10  9 বাইট

33
..
",@

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

কিভাবে?

আমরা জিরো অসীম স্ট্যাক সহ ডানদিকের বাম দিকে ডানদিকে ভুলে যাচ্ছি ...

                         I / O    stack
                                  0,0,0,...
3 - pop * 10 + 3                  3,0,0,0,...
  - 2 neighbours, forward
3 - pop * 10 + 3                  33,0,0,0,...
  - 2 neighbours, forward
. - pop & print chr          !    0,0,0,...
  - T junction from the side
  -   TOS==0, forward
, - read chr or -1       L        76,0,0,0,...   or   -1,0,0,0
  - T junction from the base
  -   if TOS > 0 right:
" -     no-op                     76,0,0,0,...
  -     2 neighbours, forward
. -     pop & print chr      L    0,0,0,...
  -     T junction from the side
  -       TOS==0, forward
3 -       ...back to the start
  -   elif TOS == -1 left:
@ -     exit                                          we're out!


  * right, but on the first occasion (from above) we hit the wall and turn
    around, so that's like a left

ভাগ্যক্রমে আমাদের আন-প্রিন্টেবলগুলি হ্যান্ডেল করার দরকার নেই, অন্যথায় প্রথম শূন্য-বাইট আমাদের ঘুরিয়ে দেবে ,এবং ধ্বংসের খেলা করবে।


5

সেড , 12 বাইট

s/\b\|\B/!/g

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

-৩ বাইট গরু কোয়াকে ধন্যবাদ


প্রকৃতপক্ষে সেড কোডটি কেবল 15 অক্ষর রয়েছে: এটি অনলাইনে চেষ্টা করুন!
manatwork

দুর্দান্ত, আপনাকে ধন্যবাদ। কীভাবে এটি কাজ করল তা আমি অস্পষ্ট ছিলাম ...
যোনা

1
s/\b\|\B/!/g12 বাইটের জন্যও কাজ করে
ক্রিটিক্সী লিথোস

@ Cowquack আপনাকে ধন্যবাদ। আপডেট করা হয়েছে।
জোনাহ


4

পার্ল 5 -p0, 17 6 বাইট

s,,!,g

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

আমার আসল উত্তর ছিল -pএবং $_='!'.s,.,$&!,gr। 11 বাইট কেটে নেওয়ার জন্য @ নাহুয়েল ফুইলুল এবং টিপটির জন্য গ্রিমিকে ধন্যবাদ জানাই -p0



1
@ নাহুয়েলফুয়েলুল পরীক্ষার ক্ষেত্রে -lpভুল আউটপুট দেয় \n\n\n\n( !নির্দিষ্ট 5 এর পরিবর্তে 4 টি নতুন লাইন-পৃথক করে) -p0সঠিকভাবে কাজ করে।
গ্রিমি

4

6502, 12 বাইট (অ্যাপল দ্বিতীয় যদি 13 বাইট)

6502

মেশিন কোড ধরে নিয়েছে যে শূন্য পৃষ্ঠার অবস্থানগুলির একটি জুড়ি অক্ষর ইনপুট ($ FE) এবং আউটপুট (এফএফ) হার্ডওয়্যারের সাথে সংযুক্ত। অনেকগুলি 502০২-ভিত্তিক সিস্টেমগুলি এই ফ্যাশনে I / O কে সহজতর করে, যদিও I / O ঠিকানা সাধারণত শূন্য পৃষ্ঠায় থাকে না।

সরলতার জন্য, আমি পাইথনটিতে লিখিত একটি 6502 মাইক্রোকম্পিউটার সিস্টেম সিমুলেটর পাই 65 ব্যবহার করেছি

এখানে পাই 65 এর একটি মেমরি ডাম্প। আপনি নীচের কোডটি যে কোনও জায়গায় শূন্য পৃষ্ঠায় লোড করতে পারেন যাতে এটি $ FE এবং $ FF এর ওভারল্যাপ হয় না।

       PC  AC XR YR SP NV-BDIZC
6502: 0000 00 00 00 ff 00110010
.mem 0:b
0000:  a9  21  85  ff  a5  fe  f0  fc  85  ff  d0  f4

উইন্ডোজ কমান্ড উইন্ডোতে চলমান, আপনি যে কোনও পাঠ্য পছন্দ করতে পারেন (Ctrl + V) পেস্ট করতে পারেন বা আপনি কেবল টাইপ করতে পারেন। যদি টাইপ করা হয় তবে একটি নতুন লাইনের (একই ASCII চর) জন্য Ctrl + J টিপুন। প্রসেসরের বাধা এবং পাই 65 কমান্ড প্রম্পটে ফিরে আসতে Ctrl + C টিপুন।

স্বাভাবিকভাবেই, সমাবেশ কোডটি পড়া সহজ।

       PC  AC XR YR SP NV-BDIZC
6502: 0000 00 00 00 ff 00110010
.d 00:0b
$0000  a9 21     LDA #$21
$0002  85 ff     STA $ff
$0004  a5 fe     LDA $fe
$0006  f0 fc     BEQ $0004
$0008  85 ff     STA $ff
$000a  d0 f4     BNE $0000

স্পষ্টতার জন্য, এখানে সিবিএ 65 ফর্ম্যাটে এসেম্বলি কোড রয়েছে ।

; ASSEMBLE:
; cba65 bangit
;
; LOAD/RUN
; python3 py65/monitor.py -i 00fe -o 00ff -l bangit.bin
; goto 0000

        .FILES  BIN=256

; I/O LOCATIONS
GETC    .EQU    $FE             ; (1) MOVING PY65'S GETC TO ZP SHAVES 1 BYTE
PUTC    .EQU    $FF             ; (1) MOVING PY65'S PUTC TO ZP SHAVES 2 BYTES

        .ORG    $0000

VROOM   LDA     #'!'
        STA     PUTC
VROOM2  LDA     GETC
        BEQ     VROOM2
        STA     PUTC
        BNE     VROOM

        .END

অ্যাপল দ্বিতীয়

উপরের কোডটি নালকে ধরে নিচ্ছে যে কোনও ইনপুট নেই, সুতরাং একটি নন-মান ফিরে না আসা পর্যন্ত ভোটগ্রহণ চালিয়ে যেতে হবে।

তুলনার জন্য, অ্যাপল আই এবং অ্যাপল II কীবোর্ড I / O ঠিকানার বিট 7 সেট করে একটি নতুন চরিত্রের প্রাপ্যতার ইঙ্গিত দেয়, যা অক্ষরটি আনার পরে সাফ করা দরকার। এই সিস্টেমে I / O অক্ষরটি সাধারণত হার্ডওয়্যার অ্যাক্সেস না করে সিস্টেম মনিটরের রুটিনগুলিতে কল করে সম্পাদিত হয়।

RDKEY ($ FD0C) এবং COUT ($ FDED) কল করে, উপরের অ্যাপল II সমতুল্য 13 বাইটে কোড করা যেতে পারে এবং র‌্যামের যে কোনও জায়গায় চালানো যায়। আমি এখানে একটি অ্যাপল // ই এমুলেটর, a2ix এ দৌড়েছি কোডটি অ্যান্ড্রয়েড 9 এ এ ।

রিটার্ন টিপে নতুন লাইনের মতোই প্রভাব ফেলে has

*300L

0300-   A9 A1       LDA   #$A1
0302-   20 ED FD    JSR   $FDED
0305-   20 0C FD    JSR   $FD0C
0308-   20 ED FD    JSR   $FDED
030B-   F0 F3       BEQ   $0300

আপনি কি লক্ষ্য করেছেন যে বিস্মৃত বিবরণের জন্য স্বাভাবিক ASCII মান # $ 21 এর পরিবর্তে # $ A1 এর পরিবর্তে ব্যবহৃত হয়েছে? এর কারণ হল সিএইউটিতে স্ট্যান্ডার্ড এএসসিআইআই মানগুলি প্রেরণের ফলে তাদেরকে "বিপরীত মোডে" সাদা রঙের উপর প্রদর্শিত হয়। কালো উপর সাধারণ সাদা মধ্যে ASCII প্রদর্শন করা COUT কল করার আগে সঞ্চয়ের মধ্যে অক্ষর মান # value 80 যোগ করা প্রয়োজন। যেহেতু আরডিকিওয়াই হাই-বিট সেট সহ অক্ষরগুলি ফিরিয়ে দেয়, সমাবেশ প্রোগ্রামগুলি সাধারণত এটির আগে ASCII মান অর্জনের জন্য চরিত্রের বিটটি সাফ করে দেয়।


1
সাইটে স্বাগতম! :)
রাহুল ভরদ্বাজ

আপনাকে ধন্যবাদ, রাহুল!
লি

4

বাশ , 36 বাইট

while read -n1 c;do printf \!$c;done

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

শেষের জন্য ইনপুটটি শেষ করে নতুন লাইনে এটি গণনা করে! চিহ্নিত করুন।


স্বাগত! দয়া করে ব্যাখ্যা বা কোনও দোভাষী বা কোনও কিছুর সাথে লিঙ্কটি বিবেচনা করুন, কারণ কোড-কেবল উত্তরগুলি স্বয়ংক্রিয়ভাবে নিম্ন-মানের হিসাবে পতাকাঙ্কিত হয়।
mbomb007

@ mbomb007, পয়েন্টারের জন্য ধন্যবাদ।
spuck

1
দুর্ভাগ্যক্রমে এটি ইনপুটটির !শেষে যুক্ত করে না ।
ক্রিটসি লিথোস

@ কৌসকোয়াক: আমার টার্মিনালে, নতুন লাইনটি ইনপুটটি শেষ করে তা পেয়ে যায়! এখনো যোগ করেনি। Tio.run এ, ইনপুটটি একটি ক্যারেজ রিটার্ন দিয়ে শেষ করতে হবে। এটি প্রতিফলিত করার জন্য আমি চেষ্টা করে দেখুন অনলাইনে লিঙ্কটি আপডেট করেছি।
16

4

মারিওল্যাং , 95 94 90 89 69 বাইট

++++++
======< >)
>+++++++",+[
=======<.==<
>+++++++!(.-
========#===

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

প্রথমবার মারিওল্যাং চেষ্টা করে দেখলাম, বেশ মজা পেয়েছিল!

জো কিং -২০ বাইটের জন্য ধন্যবাদ

ব্যাখ্যা:

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

মারিও (নির্দেশ নির্দেশক) সর্বদা প্রোগ্রামের উপরের বাম কক্ষে শুরু হয়, তার গতির দিকনির্দেশিত দিকটি ডানদিকে সেট করে। যদি মারিওর (=, ", বা #) এর নীচে মেঝের মতো কোনও অবজেক্ট না থাকে তবে ততক্ষণ পর্যন্ত সে পড়ে যাবে যতক্ষণ না সে মেঝে-জাতীয় বস্তুতে পৌঁছায় Mario মারিও যদি প্রোগ্রামের স্থানটি ছেড়ে দেয়, গেম ওভারের কারণে প্রোগ্রামটি শেষ হবে :(

এই নির্দিষ্ট প্রোগ্রামটি মূলত দুটি ভাগে বিভক্ত হতে পারে: সেটআপ এবং লুপ।

   Setup                          Loop
-----------------------------------------------
                       |
++++++                 |          
======<                |          >)
>+++++++               |          ",+[
=======<               |          .==<
>+++++++               |          !(.-
========               |          #===

সেটআপ বিভাগে, আমরা 33 এ পৌঁছানো অবধি কেবল প্রথম মেমরি সেলটি বাড়িয়ে দিচ্ছি - "!" এর ASCII মান। যথেষ্ট সহজ; যদি এটি গল্ফ করা যায় তবে এটি খাঁটি আকারের বিষয়। মারিও উপরের বাম দিক থেকে শুরু করে, 10 টি মুদ্রা তুলে নিয়ে যায়, 11 তমকে তুলে নেওয়ার পরে পড়তে শুরু করে, দিকনির্দেশগুলি স্যুইচ করে, পুনরাবৃত্তি করে। তিনি দিকনির্দেশ পরিবর্তন না করে শেষ ১১ টি মুদ্রা তুলেছেন; তিনি নীচে-ডানদিকে "+" এর সেটআপ বিভাগটি শেষ করেন।

লুপ বিভাগে, মারিও একটি লিফটে পৌঁছে শুরু হয়। দ্য "!" অপারেটর তাকে থামিয়ে দেয়, যাতে সে লিফটে থাকে। যাওয়ার পথে, এটি বর্তমান মেমোরি সেলটির মান (এটি সর্বদা 33, "!") এর সাথে সম্পর্কিত ASCII অক্ষরটি মুদ্রণ করে, তারপরে স্মৃতিতে পরবর্তী কক্ষে চলে যায়। মারিও শীর্ষে পৌঁছে তার দিকটি ডানদিকে সেট করে। তিনি পড়ে যান এবং ইনপুট থেকে একটি অক্ষর পড়েন এর ASCII মান হিসাবে (বা -1 কোনও অক্ষর না হলে)। আমরা বৃদ্ধি পেয়েছি কারণ মারিওল্যাং-এ নিয়ন্ত্রণের একমাত্র পরিমাপ হ'ল বর্তমান মেমোরি সেলটির মান 0 থাকলে একটি নির্দেশনা এড়ানো হয় যদি এটি হয়, তবে আমরা মারিওর দিক পরিবর্তন করতে এড়াতে পারি, সুতরাং তিনি পরবর্তী তল থেকে ডানদিকে ডুমে যেতে পারবেন will যদি এটি না হয়, তবে আমরা বাম দিকে দিক নির্ধারণ করি; নীচে মেঝে থেকে বামে হাঁটা তার বর্তমান কক্ষটি আগের মানটিতে ফিরে আসে,


পূর্ববর্তী সংস্করণ (89 বাইট):

+++++++++++>,
==========@"+
+++++++++++)[
@==========.==<
+++++++++++!(.-
===========#===

62 বাইট মাত্র একটি কাউন্টার পরিবর্তে একটি গুণ লুপ ব্যবহার করে
জো কিং

ঠিক আছে এখন দুর্দান্ত। আমি ব্যাখ্যাটি আবার করতে সময় পাবার সাথে সাথে আপডেট করব, ধন্যবাদ একটি গুচ্ছ!
21:41

1
আহা! 60 * বাইট 8 * 4 + 1 এর পরিবর্তে 5 * 6 + 3 গুন করে
জো কিং

মানুষ, আমি জানি এটি আপনার প্রথম রোডিও নয়, তবে এটি সত্যিই চিত্তাকর্ষক। xD
মনিকা পুনরায়

আসলে, এটি আমার প্রথমবারের মতো মারিওল্যাংকে গল্ফ করছে। আমার কাছে ব্রেইনফাকের পাশাপাশি অন্যান্য 2 ডি ভাষার সাথে কিছু অভিজ্ঞতা আছে
জো কিং

4

পার্ল 6 , 16 11 বাইট

{S:g/<(/!/}

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

সমস্ত শূন্য প্রস্থের ম্যাচগুলি বিস্মৃত চিহ্নের সাথে প্রতিস্থাপন করে। নাল রেগেক্সেসের অনুমতি নেই, তাই আমরা এর পরিবর্তে কিছুই ক্যাপচারের জন্য ক্যাপচার মার্কার ব্যবহার করি





3

ত্রিভুজাকার , 15 13 বাইট

B\3;#*~.,</@<

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

-২ বাইটগুলি স্মরণ করার পরে যে ত্রিভুজুলার একটি শর্তসাপেক্ষ স্থবির অপারেটর রয়েছে।

আমি বিশ্বাস করি এটি এটির মতোই সংক্ষিপ্ত রয়েছে। ত্রিভুজাকার করে শর্তসাপেক্ষ দিক-পরিবর্তন অপারেটার আছে, কিন্তু তারা দুর্ভাগ্যবশত অন্যান্য কন্ডিশন চেয়ে ভিন্নভাবে কাজ করে। অন্য সমস্ত লোকেরা যদি ToS <= 0 টি পরীক্ষা করে দেখেন তবে দিক পরিবর্তনকারী কন্ডিশনালগুলি ToS! = 0 পরীক্ষা করে দেখুন যদি এটি না হয় তবে আমাদের আকারে 10 বাইট থাকত Bq3~#*/@<<

Ungolfed:

    B
   \ 3
  ; # *
 ~ . , <
/ @ <
----------------------------------------------------
B3*              - Push 11 and 3, then pop both and push their product.
    <,<          - Change directions 3 times (to save 2 bytes on last line)
        @/       - Print Top of Stack value as a character, do not pop
          ~;\    - Push a character from input to ToS. Halt if ToS <= 0. Change Direction.
              #  - Print ToS as a character and pop

পূর্ববর্তী সংস্করণ (15 বাইট):

B.3\.*#).(/?~@<

3

SimpleTemplate , 23 বাইট

এটি আমার লেখা একটি ভাষা এবং এটি টেমপ্লেটগুলির জন্য হওয়া উচিত ছিল তবে ভাল।

!{@eachargv.0}{@echo_}!

একবার আপনি অলগল্ড কোডটি দেখতে পেয়ে প্রায় স্ব-বর্ণনামূলক হওয়া উচিত:

!{@each argv.0 as char} {@echo char}!{@/}

এবং একটি ব্যাখ্যা:

  • !- আক্ষরিক !চরিত্র মুদ্রণ
  • {@each argv.0 as char}- প্রতিটি চরিত্রের মধ্য দিয়ে লুপগুলি ভেরিয়েবলের সাথে মান সেট করে char( alচ্ছিক , ডিফল্ট ভেরিয়েবলটি হয় _)। সংকলক পদ্ধতিতে
    argv.0প্রথম প্যারামিটার হয় render()
  • {@echo char}!- charপরিবর্তনশীল এবং একটি আক্ষরিক !চরিত্র আউটপুট ।
    গল্ফযুক্ত সংস্করণের জন্য, _পরিবর্তে ডিফল্ট পরিবর্তনশীল ব্যবহৃত হয় is
  • {@/}- লুপ বন্ধ (( চ্ছিক )

খাঁটি সিম্পল টেম্পলেট সমাধান:

{@fn x}!{@eachargv.0}{@echo_}!{@/}{@/}

একটি কার্য তৈরি করে xযা একই ফলাফলকে ছাড়িয়ে যায়।

আপনি এটি এর মতো ব্যবহার করতে পারেন:

{@call x "this is an example"}

আপনি এগুলির সবগুলি চেষ্টা করে দেখতে পারেন: http://sandbox.onlinephpfunitions.com/code/f6baff8d411fc8227ece81eccf05b6e7d3586bfa

লাইন 908, আপনি ভেরিয়েবল ব্যবহার করতে পারেন $golfed, $ungolfedএবং $fnসমস্ত সংস্করণের পরীক্ষা করা হবে।



তবে, যদি এটির জন্য একটি অক্ষর অ্যারে ব্যবহারের অনুমতি দেওয়া হয় তবে কোডটি সরল করা হয়েছে (20 বাইট):

!{@echoj"!" argv.0}!

এবং অবরুদ্ধ:

!{@echo separator "!" argv.0}!

মূলত, অ্যারেতে সমস্ত আইটেম আউটপুট দেয়, এর সাথে যোগ হয় "!", আক্ষরিক দ্বারা ঘিরে !
সংকলক শ্রেণিতে সীমাবদ্ধতার কারণে স্থানটি বাধ্যতামূলক (গল্ফযুক্ত সংস্করণে)।

খাঁটি সিম্পল টেম্পলেটটিতে (উদাহরণ হিসাবে ফাংশনটি ব্যবহার করে) এই কোডটি চূড়ান্তভাবে আরও শক্ত :

{@fn x}!{@echoj"!" argv.0}!{@/}

{@// alternative: @call str_split into a "a char array"}
{@set a "a", " ", "c", "h", "a", "r", " ", "a", "r", "r", "a", "y"}

{@call x a}

@callএকটি ফাংশন যে পিএইচপি বিদ্যমান, যার মানে এটা একটি বিশুদ্ধ নয় কল করতে পারেন SimpleTemplate সমাধান।



2

গেমা , 11 টি অক্ষর

\A=\!
?=?\!

দুর্ভাগ্যবশত ! জেমায় একটি মন্তব্য শুরু হয়, তাই অবশ্যই তাকে পালাতে হবে।

নমুনা রান:

bash-5.0$ echo -ne '1 2 3 4 5 6\n129591 129012 129127 129582\n\n0' | gema '\A=\!;?=?\!'
!1! !2! !3! !4! !5! !6!
!1!2!9!5!9!1! !1!2!9!0!1!2! !1!2!9!1!2!7! !1!2!9!5!8!2!
!
!0!

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


2

জেলি , 5 বাইট

Ż”!ṁż

একটি সম্পূর্ণ প্রোগ্রাম স্ট্রিং গ্রহণ করে, যা ফলাফলটি মুদ্রণ করে।

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

কিভাবে?

Ż”!ṁż - Main Link: list of characters, s   e.g. "abc"
 ”!   - character '!'                           '!'
   ṁ  - mould like:
Ż     -   s with a zero prepended              "!!!!"
    ż - zip together with s                    ["!a","!b","!c",'!']
      - implicit (smashing) print              !a!b!c!


2

জাপট , 4 বাইট

rP'!

চেষ্টা করে দেখুন

জাপট -P , 7 বাইট

দুর্ভাগ্যক্রমে !উদ্ধৃত চিহ্নগুলির প্রয়োজনীয়তার জন্য একটি সংরক্ষিত চরিত্র।

ï'! i'!

চেষ্টা করে দেখুন

বোঝানোর মতো বেশি নয়: ïএটি কার্টেসিয়ান পণ্য এবং iপ্রিপেন্ডস।


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