Thời gian dài lurker lần đầu tiên poster ở đây.
Viết chương trình có 3 đầu vào: X, Y và Z.
- X = ngang (cột)
- Y = xuống (hàng)
- Z = Điểm đánh dấu vị trí
Chương trình sau đó sẽ in một lưới hình ảnh X ngang qua và Y xuống. Lưới này có thể được tạo từ bất kỳ ký tự nào ngoại trừ "+". Mỗi 'vị trí' được cung cấp một số chỉ mục, đếm từ 1 tại tọa độ 1, 1 và sau đó xuống cho đến khi kết thúc.
X và Y sẽ luôn có ít nhất 3 và Z sẽ không bao giờ lớn hơn X * Y
.
Z sẽ đại diện cho vị trí được in dưới dạng "+", trên vị trí cũng như 1 ký tự trái, phải, lên và xuống. Ví dụ:
+
+++
+
Cuối cùng, nếu các ký tự + sẽ chặn các cạnh (trên cùng, hầu hết bên trái, hầu hết bên phải và / hoặc hầu hết các cạnh), thì dấu + sẽ bị trả lại dọc theo cùng một trục và tràn qua phía bên kia.
Ví dụ: Đầu vào = 5, 5, 13
-----
--+--
-+++-
--+--
-----
Đầu vào = 10, 10, 10
-------+++
---------+
---------+
----------
----------
----------
----------
----------
----------
----------
Đầu vào = 10, 10, 21
----------
+---------
+++-------
+---------
----------
----------
----------
----------
----------
----------
Chỉnh sửa: ví dụ không vuông 16,3,32
---------------+
-------------+++
---------------+
Tôi nghĩ rằng tôi đã bao gồm tất cả mọi thứ. Không nên có giới hạn cho đầu vào, nhưng nếu chương trình của bạn yêu cầu, hãy tắt nó ở 64 * 64.
Điểm thưởng (tôi có thể làm điều đó không?): Đầu vào Z không được> X * Y, nhưng nếu nó lớn hơn Y * Z, thì hãy xuất tâm + vào giữa lưới.
EDIT: Z đầu vào không thể lớn hơn X * Y
Chỉnh sửa 2 :. Thực hiện một số thay đổi cho X và Y để hy vọng rõ ràng hơn
Đây là mã golf, mã ngắn nhất thắng.