Đây là một biến thể quine .
Giới thiệu
Tất cả chúng ta đều viết mã ngắn, vì một số lý do mơ hồ , nhưng bất cứ điều gì chúng ta làm, chúng sẽ chiếm ít nhất 144 pixel / byte (với phông chữ 12px). Nhưng điều gì sẽ xảy ra, nếu chúng ta mã hóa mã của mình bằng hình ảnh? Đây là nhiệm vụ của bạn ngày hôm nay.
Thử thách
Nhiệm vụ của bạn là đọc mã nguồn của riêng bạn (các phép tính không phù hợp được cho phép, ví dụ như đọc tệp nguồn theo nghĩa đen) và tạo một hình ảnh từ đó, bằng cách đặt các thành phần màu đỏ, xanh lục và xanh lam của pixel dựa trên ASCII giá trị của nhân vật.
Thí dụ:
Chúng tôi có chuỗi "Xin chào thế giới!"
Hello world!
Hãy chuyển đổi giá trị này thành giá trị ASCII:
72 101 108 108 111 32 119 111 114 108 100 33
Ánh xạ các giá trị RGB vào nó (Nếu độ dài của mã nguồn không chia hết cho 3, hãy sử dụng 0 làm các ký tự còn lại):
__________________________________________________
| R | G | B || R | G | B || R | G | B || R | G | B |
----------------------------------------------------
|72 |101|108||108|111|32 ||119|111|114||108|100|33 |
----------------------------------------------------
Sau đó chúng tôi tạo ra hình ảnh với diện tích nhỏ nhất trong số đó. Chúng tôi có 4 bộ giá trị RGB, vì vậy hình ảnh nhỏ nhất sẽ là hình ảnh 2 * 2, đi từ pixel trên cùng bên trái sang bên phải:
Và chúng ta có được hình ảnh có màu sắc khủng khiếp này (đã thay đổi kích thước, vì vậy ít nhất nó có thể nhìn thấy được, cũng chứng minh thực tế nó có thể nhỏ đến mức nào)
Quy tắc / Thông tin bổ sung
- Không có đầu vào
- Đầu ra phải là một tệp riêng biệt hoặc trong một cửa sổ riêng.
- Đối với các ký tự đa dòng, chia nhân vật thành 2 byte.
- Mã nguồn phải dài ít nhất 1 byte
- Hình ảnh phải là một trong các kích thước có thể, có tỷ lệ chiều rộng / chiều cao gần nhất với 1
- Số pixel trên hình ảnh chính xác phải là ceil (số byte / 3), không nên thêm pixel nào
Chấm điểm
Đây là một môn đánh gôn , vì vậy câu trả lời nhỏ nhất bằng byte sẽ thắng.
height = N
và width = 1
? Tôi nghĩ bạn có nghĩa là chiều rộng / chiều cao gần nhất với 1.