pb (KHÔNG GIỚI HẠN), 125 byte
^w[B!0]{>}w[B!45]{<w[B=10]{t[T+1]b[0]}}v[X]vw[T!0]{vb[124]<[X]b[124]>w[B=0]{>}t[T-1]}w[X!1]{<b[95]}<w[B!0]{^}w[Y!-1]{b[47]>^}
Phiên bản pbi mà bạn cần để chạy câu trả lời này mới hơn câu hỏi. Nó sẽ hoạt động trong các phiên bản cũ hơn ngoại trừ việc tôi không bao giờ có thể cho phép các dòng mới trong đầu vào. Ồ tốt
Đầu tiên, điều này xác định chiều cao của hộp bằng cách đếm dòng mới trong đầu vào. Một khi nó biết điều đó, nó đi đến vị trí Y của bên phải của hộp, đi xuống nơi cần đến và vẽ các bức tường và sàn nhà, hoàn thiện bằng nắp.
Kiểm tra hoạt hình vui nhộn này!
Tạm dừng dài là bàn chải đi qua đầu vào.
Ung dung:
^w[B!0]{>} # Go to the end of the input
w[B!45]{< # Head left until hitting a hyphen
w[B=10]{ # For each newline on the way:
t[T+1] # Count it
b[0] # Delete it
}
}
v[X] # Move down as far as it is right + the number of \n
v # ...plus one
w[T!0]{ # While the counting variable is nonzero:
vb[124] # Go down and draw a pipe
<[X]b[124] # Draw a pipe on the left as well
>w[B=0]{>} # Go back to the right side
t[T-1] # Decrement variable
}
w[X!1]{<b[95]} # Draw the bottom of the box
<w[B!0]{^} # Go up the left wall
w[Y!-1]{b[47]>^} # Go up and right, drawing the lid