Lục giác, 37 35 34 31
10"+}(=${";<$<1}42/.0@_=<>\;>(_
Mở rộng:
1 0 " +
} ( = $ {
" ; < $ < 1
} 4 2 / . 0 @
_ = < > \ ;
> ( _ . .
. . . .
Dùng thử trực tuyến
Về cơ bản chỉ có hai vòng lặp đếm ngược từ mười đến không, in ra một dấu sao ở vòng lặp bên trong và một dòng mới ở vòng ngoài.
Giải trình:
Chương trình này bao gồm ba phần chính: khởi tạo bộ nhớ, một vòng lặp in mười dấu sao và một vòng lặp in một dòng mới. Vòng lặp in một dòng mới cũng chứa vòng lặp in các dấu sao.
Đầu tiên, mã chạy khởi tạo bộ nhớ tuyến tính hoàn toàn. Các mã làm việc là : 10"+}42
. Điều này đặt bộ nhớ của các cạnh gần giống như:
10 \ / 10
|
42
42 là mã ASCII cho ký tự dấu hoa thị và hai hàng chục sẽ được sử dụng làm bộ đếm vòng lặp của chúng tôi. Đáng chú ý là con trỏ bộ nhớ hiện đang chỉ ra từ hai hàng chục, vì vậy việc di chuyển ngược sẽ đưa chúng ta vào một trong hàng chục.
Tiếp theo, chúng tôi bắt đầu vòng in astersisk. Tuyến tính, mã trông như : ;".._(
. Điều này in ra một dấu sao, di chuyển con trỏ bộ nhớ về phía sau và sang trái và cuối cùng làm giảm giá trị ở đó. Sau một lần lặp, bộ nhớ sẽ như sau:
10 \ / 9
|
42
Sau đó, chúng tôi nhấn điều kiện vòng lặp: dưới cùng bên trái >
. Nếu cạnh mà chúng ta vừa giảm vẫn còn dương, chúng ta sẽ nhảy xung quanh và thực hiện một {
để di chuyển chúng ta trở lại 42. Sau đó, chúng ta nhấn a $
và quay lại điểm bắt đầu của vòng in ;
, bằng cách bỏ qua <
. Nếu giá trị bằng 0, chúng ta sẽ đi vào vòng lặp khác.
Vòng lặp bên ngoài bắt đầu bằng cách đặt lại cạnh bộ nhớ zero gần đây thành mười (đây là 10
mã trong hướng tây nam). Sau đó, chúng tôi in ra mười ký tự này dưới dạng ký tự ASCII, đây là một dòng mới. Tiếp theo, chúng tôi di chuyển lên cạnh bộ nhớ khác và giải phóng nó với {(
và sau đó thực hiện số tiền cho một loạt các tiếng ồn : =${_=
. Bây giờ, sau một lần lặp của vòng lặp này, bộ nhớ sẽ trông như sau:
9 \ / 10
|
42
Lần này, bộ nhớ hướng ra ngoài từ cạnh lưu trữ một số chín trong sơ đồ trên. Tiếp theo chúng ta thực hiện <
cái đóng vai trò là điều kiện vòng lặp cho vòng lặp bên ngoài. Nếu giá trị khác không, chúng ta sẽ bật ra khỏi một số gương, sau đó bắt đầu thực hiện lại các hướng dẫn có ý nghĩa sau khi vào đỉnh của hình lục giác ở "
phía tây nam di chuyển. Điều này khiến chúng ta di chuyển lùi và sang trái, vào số 42 một lần nữa, nhưng hướng vào trong. Sau đó, =
lật hướng của chúng tôi, đặt lại trạng thái đúng cách để bắt đầu lại vòng lặp bên trong. Nếu cạnh được đặt thành 0, con trỏ lệnh sẽ tiếp tục một cuộc phiêu lưu nhỏ mà không làm gì cho đến khi nó thoát khỏi chương trình.
Cuộc phiêu lưu bắt đầu bằng con trỏ chỉ dẫn mạo hiểm về phía đông bắc, coi thường sự an toàn của các hướng hồng y. Nó dũng cảm bỏ qua một chiếc gương được căn chỉnh với diretion ( /
) và anh hùng nhảy ra khỏi tấm bạt lò xo ($
) hoàn toàn trốn tránh cái bẫy chết người của một tấm bạt lò xo hoàn toàn giống hệt nhau. Nhìn chằm chằm vào sự trống rỗng của các cạnh lục giác chưa được khởi tạo, con trỏ, không chùn bước một lúc, thêm hai cạnh trống mà nó phải đối mặt với nhau, đặt cạnh hiện tại thành tổng của chúng: 0 (cạnh thực sự bằng 0, nhưng con trỏ thích tin rằng điều này là khá quan trọng). Vì cạnh bằng 0, con trỏ rẽ trái ở ngã ba đường, đi vào một khu rừng bí ẩn (hình lục giác). Ở đó, nó thấy mình mất phương hướng, di chuyển tiến lên và lùi lại, cho đến khi nó cuộn lên tại cùng một vị trí trong bộ nhớ khi nó bắt đầu. Nghĩ rằng vấn đề phải là cạnh hiện tại đã được đặt thành 0 lần trước, con trỏ mạnh dạn trồng cây1
vào cạnh hiện tại. Sau đó, con trỏ cao quý điều tra một con đường khác, một con được đặt bằng ... một cái bẫy! Các cạnh hiện tại được giảm và đặt trở về không! Con trỏ, bị choáng váng bởi sự kiện gây sốc, quay trở lại cái bẫy đặt cạnh hiện tại thành âm. Bực mình, con trỏ cố gắng trở về khu rừng tương đối dễ chịu, chỉ để ý rằng vì cạnh hiện tại không tích cực, các con đường đã một lần nữa dịch chuyển và con trỏ thấy mình đang đi vào một hang động. Và bởi một cái hang, ý tôi là miệng của một con sâu lục giác khổng lồ. Bất lực, con trỏ nguyền rủa sự gợi cảm bằng hơi thở hấp hối của nó. Ngoài ra, chương trình kết thúc.