Tóm lược
Mục tiêu của thử thách này là tạo ra một phiên bản hình ảnh chưa hoàn tác của câu đố 15 câu đố / trượt còn được gọi là taquin trong tiếng Pháp.
Chi tiết:
Đưa ra một đầu vào bao gồm:
- một tấm ảnh,
- một số nguyên
n
, - một số nguyên khác
r
,
chương trình của bạn, hoặc chức năng, hoặc bất cứ điều gì khác phù hợp, phải xuất ra cùng một hình ảnh ( nghĩa là cùng kích thước và định dạng) làm đầu vào, nhưng trải qua quá trình sau:
- chia hình ảnh thành
n²
hình chữ nhật, - xóa một trong những hình chữ nhật đó, ngẫu nhiên,
- di chuyển một số hình chữ nhật liền kề ngẫu nhiên từ dòng / cột bị ảnh hưởng bởi điểm (2.) để lỗ được tạo được lấp đầy và một cái khác được tạo trong dòng / cột này. Con số này có thể là
0
nếu khoảng trống nằm ở một góc hoặc cạnh.
Lặp lại (3.) r
lần.
Làm rõ:
- Nếu bạn di chuyển hình chữ nhật từ dòng trong bước (3.), bạn phải di chuyển hình chữ nhật từ cột trong lần lặp lại tiếp theo,
- nếu bạn di chuyển các hình chữ nhật từ trái sang phải trong một bước dòng, chúng phải được di chuyển từ phải sang trái trong bước tiếp theo, tương tự cho các cột liên quan từ trên xuống dưới và từ dưới lên trên,
- bạn có thể cho rằng nó
n
sẽ được chọn để nó chia chiều dài của các cạnh của bức tranh.
Điểm cuối cùng:
Một phim hoạt hình .gif
cho thấy toàn bộ quá trình rất được hoan nghênh.
Tôi đề nghị sử dụng hình ảnh sau đây (nghĩa là 1024x768
), với n=16
và r=100
như một mô hình, bạn có thể sử dụng bất kỳ hình ảnh nào khác (miễn là nó phù hợp và tất nhiên tuân thủ các quy tắc của SE).
Lưu ý rằng các chính sách sơ hở tiêu chuẩn áp dụng.
Đây là môn đánh gôn , vì vậy bài nộp ngắn hơn sẽ thắng!
Vì một ví dụ đã được yêu cầu, đây là một ví dụ, được thực hiện "bằng tay", với n=4
vàr=1
Bước 1 và 2
Bước 3 : đường thẳng, 2 hình chữ nhật ở bên trái
move a random number of contiguous rectangles
nó có thể là 0 hình chữ nhật không? (sẽ là một nỗi đau khi làm cho chương trình thay đổi hành vi khi khoảng trống nằm ở rìa / góc)