Giới thiệu
Câu chuyện dài ngắn: vài ngày trước, tôi vô tình bắt đầu đan một chiếc tất và cấu trúc logic khá đơn giản của các mũi khâu đơn giản dẫn tôi đến ý tưởng: Tại sao chúng ta không chỉ đan ASCII?
Đầu vào
Đầu vào là một số nguyên N chẵn trong phạm vi [2,30].
Đầu ra
Đầu ra là một chiếc tất, rõ ràng.
Kết cấu
Bởi vì chúng tôi sẽ chỉ sử dụng các mũi khâu đơn giản, bạn sẽ chỉ sử dụng vcho một mũi khâu xuống và >cho một mũi khâu bên phải. Hãy để tôi giải thích cấu trúc đầy đủ với một ví dụ cho N=8:
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvv>>>
vvvvvv>>>>>>
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
- Khối đầu tiên là phần trên. Nó có chiều rộng
Nvà chiều caoN*1.5 - Sau đó gót chân bắt đầu. Bạn trừ một
vhàng trên mỗi hàng từ bên phải cho đến khi bạn cóN/2chiều rộng. Sau đó, bạn thêmN/2các hàng có chiều rộngN/2bên dưới để hoàn thành các nút thắt xuống. Lưu ý rằng nó cung cấp tổng sốN/2 + 1hàng với chiều rộngN/2
phần đầu tiên:
vvvvvvvv //begin with width N
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv
vvvvvvvv // N*1.5 times
vvvvvvv // reduce
vvvvvv
vvvvv
vvvv // till here
vvvv // repeat N/2 times
vvvv
vvvv
vvvv
- Bây giờ các phường bên bắt đầu. Bạn bắt đầu với hàng giảm đầu tiên, điền
>cho đến khi bạn có chiều rộngNvà thêm hai hàng nữa. Tiếp tục quá trình đó bao gồm hàng đầu tiên vớiN/2chiều rộng - Điền vào các hàng bên dưới mức đó và thêm
N*1.5thời gian>vào đó - Để các phần bên ngoài như chúng là và thêm vào hàng bên dưới đầu tiên và trên lase hai lần nữa
>'scho đến khi nó được hoàn thành
phần thứ hai:
vvvvvvvv
vvvvvvv>>> //fill to N and add two >
vvvvvv>>>>>> //repeat
vvvvv>>>>>>>>>
vvvv>>>>>>>>>>>> //till here
vvvv>>>>>>>>>>>>>>>>>>>>>>>> //fill to the row above and add N*1.5 times >
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row above
vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> //add two more '>' than the row beneath
vvvv>>>>>>>>>>>>>>>>>>>>>>>>
Quy tắc
Trailing dòng mới là ok.
Bạn có thể chọn giữa chữ hoa hoặc chữ thường Vnhưng nó phải nhất quán.
Đây là mã golf, vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
Các trường hợp thử nghiệm
N=2
vv
vv
vv
v>>>
v>>>>>>
N=4
vvvv
vvvv
vvvv
vvvv
vvvv
vvvv
vvv>>>
vv>>>>>>
vv>>>>>>>>>>>>
vv>>>>>>>>>>>>
N=6
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvvv
vvvvv>>>
vvvv>>>>>>
vvv>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>>>
vvv>>>>>>>>>>>>>>>>>>
N=12
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvvv
vvvvvvvvvvv>>>
vvvvvvvvvv>>>>>>
vvvvvvvvv>>>>>>>>>
vvvvvvvv>>>>>>>>>>>>
vvvvvvv>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vvvvvv>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
vhoặc Vthay thế cho nhau? Tôi sẽ giả sử vào lúc này vlà người duy nhất được phép, nhưng cho phép Vsẽ ảnh hưởng đến số byte