Cảm ơn Martin cho 6 byte!
1="/}.!+/M8;
Mở rộng:
1 = "
/ } . !
+ / M 8 ;
. . . .
. . .
Dùng thử trực tuyến
Cũ, trả lời. Điều này đang được để lại vì hình ảnh và lời giải thích có thể hữu ích cho người dùng Hexagony mới.
!).={!/"*10;$.[+{]
Mở rộng:
! ) .
= { ! /
" * 1 0 ;
$ . [ +
{ ] .
Điều này in ra chuỗi Fibonacci được phân tách bằng các dòng mới.
Hãy thử trực tuyến! Hãy cẩn thận, trình thông dịch trực tuyến không thực sự thích đầu ra vô hạn.
Giải trình
Có hai "chương trình con" cho chương trình này, mỗi chương trình được điều hành bởi một trong hai IP được sử dụng. Thường trình đầu tiên in các dòng mới, và thứ hai thực hiện tính toán và đầu ra Fibonacci.
Chương trình con đầu tiên bắt đầu trên dòng đầu tiên và di chuyển từ trái sang phải toàn bộ thời gian. Đầu tiên, nó in giá trị tại con trỏ bộ nhớ (được khởi tạo thành 0), sau đó tăng giá trị tại con trỏ bộ nhớ theo 1
. Sau khi không hoạt động, IP nhảy sang dòng thứ ba, đầu tiên chuyển sang một ô nhớ khác, sau đó in một dòng mới. Vì một dòng mới có giá trị dương (giá trị của nó là 10), mã sẽ luôn nhảy đến dòng thứ năm, tiếp theo. Dòng thứ năm trả về con trỏ bộ nhớ cho số Fibonacci của chúng tôi và sau đó chuyển sang chương trình con khác. Khi chúng tôi quay trở lại từ chương trình con này, IP sẽ quay trở lại dòng thứ ba, sau khi thực hiện lệnh cấm.
Chương trình con thứ hai bắt đầu ở góc trên bên phải và bắt đầu di chuyển về phía Đông Nam. Sau khi không hoạt động, chúng tôi bị trả về để đi về phía Tây dọc theo tuyến thứ hai. Dòng này in số Fibonacci hiện tại, trước khi di chuyển con trỏ bộ nhớ đến vị trí tiếp theo. Sau đó, IP nhảy đến dòng thứ tư, trong đó nó tính toán số Fibonacci tiếp theo bằng cách sử dụng hai số trước đó. Sau đó, nó đưa điều khiển trở lại chương trình con đầu tiên, nhưng khi lấy lại quyền kiểm soát chương trình, nó tiếp tục cho đến khi nó gặp một bước nhảy, trong đó nó nảy qua gương ban đầu được sử dụng để chỉ về phía Tây, khi nó quay trở lại dòng thứ hai.
Hình ảnh đẹp sơ bộ!
Phía bên trái của hình ảnh là chương trình, phía bên phải đại diện cho bộ nhớ. Hộp màu xanh là IP đầu tiên và cả hai IP đều trỏ vào lệnh tiếp theo sẽ được thực thi.
Lưu ý: Hình ảnh chỉ có thể xuất hiện đẹp đối với những người có kỹ năng hạn chế tương tự với các chương trình chỉnh sửa hình ảnh: PI sẽ thêm ít nhất 2 lần lặp lại để việc sử dụng *
toán tử trở nên rõ ràng hơn.
Lưu ý 2: Tôi chỉ thấy câu trả lời của alephalpha sau khi viết hầu hết những điều này, tôi cho rằng nó vẫn còn giá trị vì sự tách biệt, nhưng các phần Fibonacci thực tế của các chương trình của chúng tôi rất giống nhau. Ngoài ra, đây là chương trình Hexagony nhỏ nhất mà tôi đã thấy sử dụng nhiều hơn một IP, vì vậy tôi nghĩ rằng dù sao cũng có thể giữ được: P
^2
thay thế cho0,1
. +1