Chuỗi tuần hoàn, chương trình ẩn


13

Viết 3 chương trình thực hiện nhiệm vụ sau:

Đặt mã nguồn A, B, C của ba chương trình đó;

  • nếu A chạy BC được sản xuất như đầu ra,
  • nếu B chạy CA được sản xuất,
  • nếu C chạy AB được sản xuất;

vì vậy mỗi chương trình viết một chuỗi (chu kỳ cho mỗi chương trình) và ẩn nó khỏi nó.

Bổ sung, nhưng các ràng buộc thiết yếu:

  • sơ hở tiêu chuẩn bị cấm;
  • mỗi chương trình phải dài ít nhất 1 byte;
  • mỗi chương trình phải được viết bằng một ngôn ngữ khác nhau;

Sẽ thật tuyệt nếu bài dự thi của bạn có định dạng này:

Ngôn ngữ A (kích thước của A) - Ngôn ngữ B (kích thước của B) - Ngôn ngữ C (kích thước của C) - Điểm

A B C
<extra stuff>

Người chiến thắng là người có được số điểm tối thiểu, là tổng kích cỡ của ba chương trình.


Sẽ tốt hơn nếu có điểm số cuối cùng (để phù hợp với kịch bản bảng xếp hạng)
Leaky Nun


7
Tôi sẽ không đề nghị thời hạn.
Erik the Outgolfer

Bất kỳ yêu cầu về A, BClà chuỗi khác nhau? Ví dụ, ba chuỗi có thể giống nhau không? Nếu chương trình in một dòng mới sau đầu ra, chúng ta có thể không tính điều đó không?
Luis Mendo

Nó không phải là cần thiết A, B, Csự khác biệt. Dòng mới được tính là một phần của đầu ra nên dòng mới trong chuỗi là một phần của chương trình.
Blex

Câu trả lời:


3

Befunge-98 , Gol> <>Wumpus 47 * 3 = 141 byte

"r75*1-47*0.@o&r84#o&]=74#]=\`/KHj '!_@#,k.'g00

Hãy thử nó trong Befunge! Hãy thử trong> <>! Hãy thử nó trong Wumpus!

Đúng vậy, đó là chương trình tương tự ba lần! Khi chạy bằng bất kỳ ngôn ngữ nào ở trên, nó sẽ in mã nguồn hai lần, đó là hai chương trình khác được nối.

Làm thế nào nó hoạt động:

Befunge code:
  "r                               j '!_@#,k.'g00

  "   Wrapping string literal over code
   r  Reflect the pointer
  "   Wrapping string literal
                                              g00   Fetch " from cell 0,0 
                                          ,k.'      Print 47 characters
                                       _@#          If the next character is 0, exit
                                      !             Otherwise, set it to 0
                                   j '              And jump back to the beginning


Gol><> code:
  "r75*1-47*0.                \`/KH

  "             Wrapping string literal
   r            Reverse stack
    75*1-       Push "
         47*0.  Jump to cell 28,0
                              \  Continue right
                               `/K   Duplicate the top 47 characters on the stack
                                  H  Halt and output stack contents

Wumpus code:
  "r75*1-47*0.@o&r84#o&]=74#]=\

  "r75*1-47*0.  Exact same function as the ><> code, but with a bouncing string literal
                              \  Reflect left
                            ]=   Push a copy of the " to the bottom of the stack
                         74#     Push 47
                       ]=        Push a copy of the 47 to the bottom of the stack
                     o&          Print the top 47 characters
                  84#            Push a '0' to make up for the missing 0 at the end
               o&r               Reverse the stack and print the top 47 characters
              @                  And terminate

0

JScript, VBScript, Windows Batch, 345 byte

a=new ActiveXObject("scripting.filesystemobject");b=a.opentextfile(".js");c=b.readline();d=b.readline();a.createtextfile(".bat").write("@echo "+d.substr(2)+">.vbs\n@echo '"+c+">>.vbs")
//set a=createobject("scripting.filesystemobject"):set b=a.opentextfile(".vbs"):c=b.readline:d=b.readline:a.createtextfile(".js").write(mid(d,2)+chr(10)+"//"+c)

Đặt tên cho tệp .js, sau đó .vbs và sau đó .bat sẽ được tạo.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.