Hình ảnh trên được gọi là hexa-glyph. Hexa-glyphs là một số mẫu thú vị tôi đã tạo ra trong khi vẽ nguệch ngoạc trong lớp DiffEq của mình. Đây là cách bạn tạo một:
- Hãy xem xét tập hợp các điểm sau đây, có hình dạng như một hình lục giác thông thường. Hình lục giác bên trong là những gì sẽ chứa glyph cuối cùng, trong khi 6 điểm bên ngoài tạo thành một ngôi sao và là nơi chúng ta sẽ bắt đầu vẽ các đường của chúng ta.
- Từ sáu điểm bên ngoài, chọn ngẫu nhiên một cặp. Để đạt hiệu quả, cần có ít nhất một điểm khác giữa hai điểm được chọn (nếu không, nó sẽ không có hiệu lực trên hình cuối cùng). Sau đó, từ mỗi điểm trong hai điểm, chiếu một tia về phía kia. Tia này bị chặn bởi các dòng trước.
- Lặp lại quá trình này cho đến khi tất cả 9 cạnh đã được hình thành, như thể hiện trong một vài hình ảnh tiếp theo.
- Dưới đây là một ví dụ về các tia bị chặn. Các đầu của đoạn tia vẫn có thể nhìn thấy, nhưng phần giữa bị che khuất bởi hai đoạn đầu tiên chúng ta đã vẽ.
- Hai tia này cũng bị "chặn", nhưng điều này không gây ra bất kỳ sự khác biệt rõ ràng nào vì chúng bị chặn bởi cùng một dòng khác.
- Chuyển tiếp nhanh cho đến khi tất cả 9 dòng được rút ra. Nếu bạn muốn giải thích chi tiết hơn về các bước bị bỏ qua này, tôi có thể giải thích.
- Cuối cùng, loại bỏ các điểm của ngôi sao. Để làm cho nó trông đẹp hơn, các chấm dày cũng được loại bỏ.
Các thách thức
Bạn thách thức là đưa ra một biểu diễn trực quan của hexa-glyph ngẫu nhiên. Đây là mã golf, ít byte thắng nhất.
Tất cả các hexa-glyph có thể sẽ xuất hiện với một số xác suất dương. Các hexa-glyph khác nhau được tạo ra bằng cách thay đổi thứ tự trong đó 9 cạnh được vẽ.
Hơn nữa, tất cả các hình ảnh đầu ra bởi chương trình của bạn phải là hexa-glyph hợp lệ. Một số mẫu nhất định (như một phác thảo hoàn chỉnh của hình lục giác bên trong) có thể không xuất hiện dưới dạng hexa-glyph, và vì vậy chương trình của bạn không được xuất ra.
Đầu ra phải là một hình ảnh đồ họa (được in ra màn hình hoặc tập tin).
Hình lục giác phải đều đặn, nhưng có thể xuất hiện theo bất kỳ hướng nào.
Phản xạ / xoay không được coi là duy nhất. (Điều này có thể làm cho yêu cầu 1 dễ thực hiện hơn).
'01'
với không gian xen kẽ thay vì ' *'
.
I made up while doodling during my DiffEq class
. Cách tất cả những khám phá tuyệt vời xảy ra ...: P