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 v
cho 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
N
và chiều caoN*1.5
- Sau đó gót chân bắt đầu. Bạn trừ một
v
hàng trên mỗi hàng từ bên phải cho đến khi bạn cóN/2
chiều rộng. Sau đó, bạn thêmN/2
các hàng có chiều rộngN/2
bê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 + 1
hà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ộngN
và thêm hai hàng nữa. Tiếp tục quá trình đó bao gồm hàng đầu tiên vớiN/2
chiều rộng - Điền vào các hàng bên dưới mức đó và thêm
N*1.5
thờ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
>'s
cho đế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 V
như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>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
v
hoặc V
thay thế cho nhau? Tôi sẽ giả sử vào lúc này v
là người duy nhất được phép, nhưng cho phép V
sẽ ảnh hưởng đến số byte