Giới thiệu:
Tôi thấy chỉ có một thử thách liên quan đến cầu lông khác ngay bây giờ . Vì tôi tự chơi cầu lông (trong 13 năm qua), tôi đã hình dung mình sẽ thêm một số thử thách liên quan đến cầu lông. Ở đây cái thứ hai (cái đầu tiên có thể được tìm thấy ở đây ):
Thử thách:
Một số quy tắc về cầu lông phục vụ:
- Một cú giao bóng sẽ luôn được thực hiện theo đường chéo trên mạng.
- Bạn phải luôn phục vụ sau khi đường song song và gần mạng nhất.
- Khu vực mà bạn được phép phục vụ khác nhau tùy thuộc vào việc đó là một (1 so với 1) hay gấp đôi / trộn (2 so với 2).
- Đối với người độc thân (1 vs 1), khu vực màu xanh trong hình dưới đây là nơi bạn được phép phục vụ. Vì vậy, điều này bao gồm phần ở phía sau, nhưng không bao gồm các phần ở bên cạnh.
- Để nhân đôi / trộn (2 so với 2), vùng màu xanh lục trong hình bên dưới là nơi bạn được phép đến máy chủ. Vì vậy, điều này không bao gồm phần ở phía sau, nhưng bao gồm các phần ở bên cạnh.
- Bạn có thể không đứng trên hàng khi phục vụ. Nhưng tàu con thoi vẫn sẽ ở bên trong nếu họ hạ cánh trên một hàng.
Dưới đây là cách bố trí của một sân cầu lông:
Quy tắc thử thách:
Đầu vào:
Bạn sẽ được cung cấp hai đầu vào:
- Một cái gì đó để cho biết chúng tôi đang chơi một hoặc hai lần / hỗn hợp (tức là một boolean)
- Một cái gì đó để chỉ ra khối nào bạn đang phục vụ (nghĩa là
[1,2,3,4]
hoặc['A','B','C','D']
được sử dụng trong hình trên).
Đầu ra:
Chỉ các dòng có liên quan cho phân phối hiện tại (bao gồm cả mạng), bao gồm một F
để chỉ ra nơi bạn phục vụ và nhiều T
để chỉ ra nơi bạn sẽ phục vụ.
Mặc dù trong thực tế, bạn được phép phục vụ từ và đến bất cứ nơi nào trong các khu vực được chỉ định, chúng tôi cho rằng một người sẽ phục vụ sẽ luôn đứng ở góc của khu vực phục vụ gần giữa mạng, nơi bạn sẽ đặt cái F
. Và họ sẽ phục vụ cho bất kỳ trong bốn góc của khu vực mà họ phải phục vụ, đó là nơi bạn sẽ đặt T
s.
Theo nghệ thuật ASCII, toàn bộ sân cầu lông sẽ như sau (các số được thêm vào để bạn không phải tự đếm chúng):
2 15 15 2
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 2
| | | | |
O=====================================O 37 times '='
| | | | |
| | | | | 2
+--+---------------+---------------+--+
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | 9
| | | | |
| | | | |
| | | | |
| | | | |
+--+---------------+---------------+--+
| | | | | 1
+--+---------------+---------------+--+
Ví dụ:
Ở đây có hai ví dụ để chỉ xuất ra các phần có liên quan của phục vụ:
Đầu vào: Khối đơn và khối phục vụ A
Đầu ra:
T---------------T
| |
+---------------+
| |
| |
| |
| |
| |
| |
| |
| |
| |
T---------------T
| |
| |
O=====================================O
| |
| |
+---------------+
| F|
| |
| |
| |
| |
| |
| |
| |
| |
+---------------+
| |
+---------------+
Như bạn có thể thấy, cái F
được thêm vào trong góc trong khối, nhưng cái T
được thay thế +
trong đầu ra nghệ thuật ASCI.
Đầu vào: Nhân đôi và phục vụ Khối C
đầu ra:
+--+---------------+
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | F|
+--+---------------+
| | |
| | |
O=====================================O
| | |
| | |
T---------------+--T
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
T---------------+--T
Quy tắc thử thách:
- Các dòng mới hàng đầu và cuối là tùy chọn (bao gồm hai dòng trống hàng đầu và cuối khi đầu vào là duy nhất). Không gian lưu trữ là tùy chọn là tốt. Không gian hàng đầu là bắt buộc tuy nhiên.
- Bất kỳ bốn đầu vào riêng biệt hợp lý nào để cho biết khối nào chúng tôi phục vụ được cho phép (đối với số nguyên, nằm trong phạm vi [-999.999]); cũng như bất kỳ hai đầu vào riêng biệt hợp lý nào để cho biết đó là một hoặc hai lần trộn ( mặc dù vậy, xin lưu ý lỗ hổng bị cấm có liên quan này ). Vui lòng cho biết I / O bạn đã sử dụng trong câu trả lời của mình!
- Bạn được phép sử dụng chữ thường
f
vàt
(hoặc trường hợp hỗn hợp) thay vìF
vàT
. - Bạn được phép trả về một danh sách các dòng hoặc ma trận ký tự thay vì trả lại hoặc in một chuỗi đầu ra duy nhất.
Quy tắc chung:
- Đây là môn đánh gôn , vì vậy câu trả lời ngắn nhất bằng byte thắng.
Đừng để ngôn ngữ mã-golf ngăn cản bạn đăng câu trả lời với các ngôn ngữ không mã hóa. Cố gắng đưa ra một câu trả lời càng ngắn càng tốt cho ngôn ngữ lập trình 'bất kỳ'. - Quy tắc chuẩn áp dụng cho câu trả lời của bạn với quy tắc I / O mặc định , vì vậy bạn được phép sử dụng STDIN / STDOUT, các hàm / phương thức với các tham số thích hợp và kiểu trả về, chương trình đầy đủ. Cuộc gọi của bạn.
- Lỗ hổng mặc định bị cấm.
- Nếu có thể, vui lòng thêm một liên kết với một bài kiểm tra cho mã của bạn (ví dụ TIO ).
- Ngoài ra, thêm một lời giải thích cho câu trả lời của bạn rất được khuyến khích.