Trong khi vẽ nguệch ngoạc trên tờ giấy cai trị vuông vào ngày khác, tôi đã đưa ra phông chữ không gian âm ở trên cho các chữ số. Trong trường hợp bạn chưa phát hiện ra nó, khoảng trắng giữa các hình trên mang lại tỷ lệ vàng 1.618033988749 . Trong thử thách này, nhiệm vụ của bạn là lấy một số làm đầu vào và hiển thị chính xác như ví dụ trên cho thấy.
Đây là cách chúng được tạo ra. Tất cả các dòng sẽ nằm trên một lưới thông thường, sao cho các chữ số riêng lẻ được tạo thành từ một số lượng nhỏ các ô lưới. Dưới đây là hình dạng của 10 chữ số (chúng tôi sẽ bỏ qua dấu thập phân cho thử thách này):
Có, 7 khác với ví dụ tỷ lệ vàng ở đầu. Tôi hơi rối tung lên. Chúng ta sẽ đi với cái này
Lưu ý rằng mỗi chữ số cao năm ô và rộng ba ô. Để hiển thị một số, bạn có thể tưởng tượng đặt tất cả các chữ số của nó cạnh nhau, sao cho có chính xác một cột trống giữa mỗi cặp chữ số. Ví dụ: lấy 319
làm đầu vào, chúng tôi sẽ viết:
Lưu ý rằng chúng ta thêm một cột trống hàng đầu và dấu. Bây giờ chúng tôi đảo ngược các ô:
Đầu ra sau đó phải là ranh giới của đa giác kết quả:
Tất nhiên bạn có thể tạo kết quả theo bất kỳ cách nào khác, miễn là đầu ra được hiển thị trông giống nhau.
Đầu vào
- Bạn có thể viết chương trình hoặc hàm, lấy đầu vào qua STDIN (hoặc thay thế gần nhất), đối số dòng lệnh hoặc đối số hàm, dưới dạng chuỗi hoặc danh sách các chữ số. (Bạn không thể lấy số vì điều đó sẽ không cho phép bạn hỗ trợ các số 0 hàng đầu.)
- Bạn có thể cho rằng sẽ không có thêm 16 chữ số trong đầu vào.
Đầu ra
- Đầu ra có thể được hiển thị trên màn hình hoặc được ghi vào một tệp ở định dạng hình ảnh phổ biến.
- Bạn có thể sử dụng cả đồ họa raster và vector.
- Trong cả hai trường hợp, tỷ lệ khung hình của các ô của lưới bên dưới cần phải là 1 (nghĩa là các ô phải là hình vuông).
- Trong trường hợp đồ họa raster, mỗi ô phải có ít nhất 20 x 20 pixel.
- Các dòng phải không rộng hơn 10% kích thước ô. Tôi sẵn sàng cho một hoặc hai pixel chậm trễ do răng cưa ở đây.
- Các đường và nền có thể là hai màu bất kỳ có thể phân biệt rõ ràng, nhưng các hình dạng được tạo bởi các đường không được điền vào (đó là bên trong cũng phải là màu nền).
- Không được có khoảng trống trong mỗi vòng khép kín.
- Tất nhiên, toàn bộ kết quả phải được nhìn thấy.
Các trường hợp thử nghiệm
Dưới đây là 10 đầu vào, cùng nhau bao gồm tất cả các cặp chữ số liền kề có thể, cũng như mọi chữ số hàng đầu và dấu có thể có:
07299361548
19887620534
21456837709
39284106657
49085527316
59178604432
69471338025
79581224630
89674235011
97518264003
Và đây là kết quả mong đợi cho những người:
Hãy chắc chắn rằng mã của bạn cũng hoạt động khi được cung cấp một chữ số (tôi không muốn bao gồm các kết quả mong đợi ở đây, vì chúng phải rõ ràng và phần trường hợp kiểm tra đã đủ lớn như vậy).