Phần có liên quan cho một phục vụ cầu lông


10

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:
nhập mô tả hình ảnh ở đây

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 Ts.
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 ft(hoặc trường hợp hỗn hợp) thay vì FT.
  • 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à , 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.

À, cầu lông. Trò chơi mà tôi luôn muốn chơi nhưng không bao giờ chơi được vì quên / không thể tìm thấy người chơi để chơi
Quintec

@Quintec Hãy đến thăm câu lạc bộ của chúng tôi ở Hà Lan để có một buổi tối miễn phí; p
Kevin Cruijssen

1
Thỏa thuận, nếu bạn trả tiền vé máy bay và khách sạn của tôi? :)
Quintec

1
@Quintec Nếu bạn thắng, tôi sẽ trả lại vé máy bay, haha ​​xD
Kevin Cruijssen

1
@MagicOctopusUrn Vâng, có một số người chơi cầu lông chuyên nghiệp đến từ Hà Lan. Không chắc họ có thứ hạng nào trong danh sách thế giới, tôi không xem cầu lông thường xuyên (và thường chỉ có 5 phút trên tin tức thể thao nếu được đề cập ở tất cả mọi thứ .. tất cả thời gian khác đều lãng phí với bóng đá). Và không, với tư cách là người chơi hàng đầu bạn hầu như không thể kiếm được thu nhập. Chắc chắn không phải hàng triệu.
Kevin Cruijssen

Câu trả lời:


2

Than , 81 byte

NθF⮌Eθ⁺¹⁶׳ιF✂541⊖θURι±×³Iκ×=¹⁸O⟲O↙⁴J¹±³FF²F²«J×ι±⁺¹²×³θ⁺²×⁻¹⁵׳θκT»F№ABη‖↑F№ACη‖

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng của mã. Lấy đầu vào đầu tiên là 1hoặc 2cho đơn hoặc đôi, đầu vào thứ hai là một ABCDtrong những câu hỏi. Giải trình:

F⮌Eθ⁺¹⁶׳ιF✂541⊖θURι±×³Iκ

Vòng qua các chiều rộng có liên quan và chiều cao của Dtòa án và vẽ các hình chữ nhật.

×=¹⁸O⟲O↙⁴

Vẽ lưới và áp dụng đối xứng quay để thêm Atòa án.

J¹±³F

Thêm Fvào Dtòa án.

F²F²«J×ι±⁺¹²×³θ⁺²×⁻¹⁵׳θκT»

Thêm Ts vào những nơi có liên quan trong Atòa án.

F№ABη‖↑F№ACη‖

Phản ánh đầu ra khi cần thiết để phục vụ từ tòa án chính xác.


1
@KevinCruijssen Xin lỗi vì đã bỏ qua điều đó, nên sửa ngay bây giờ, cảm ơn.
Neil

3

Python 2 , 285 284 byte

R=str.replace
s,q=input()
A=' '*19
l='| '[s]+'  |'+A[4:]+'|'+A
r=['T--+','   T'][s]+'-'*15+'T'+A
h=[r]+[l,R(r,*'T+')]*s+[l]*8+[l[:18]+'F'+'|'+A,r,l,l,'O'+'='*37+'O']
h+=[R(l[::-1],*'T+')for l in h[-2::-1]]
h[9+2*s]=R(h[9+2*s],*'F ')
for l in[l[::q%2*2-1]for l in h[::q/2*2-1]]:print l

Hãy thử trực tuyến!

Lấy đầu vào là 0/1(hoặc False/True) cho loại trò chơi ( Double/Single),

0-3cho khối phục vụ ( 0,1,2,3= C,D,A,B)


Nhanh thật! Câu trả lời tốt đẹp.
Kevin Cruijssen

1
@Yeah, tôi đã thử nó từ hộp cát tuần trước: P
TFeld

1

JavaScript (ES7),  216 ... 205 201  199 byte

(block)(double)-2-112

b=>d=>(g=x=>y<31?`+-| =OTF
`[X=x-19,Y=y-15,p=X*Y*b<0,q=Y>0^b&1,X*=X,Y*=Y,i=x*24%35>2|~16>>Y%62%6&2,x<39?Y?p*X|(d?Y:X-87)>169?3:i?X-1|Y-16|q?i:7:q*(d?X-87:Y)%169&&6:x%38?4:5:++y&&8]+g(-~x%40):'')(y=0)

Hãy thử trực tuyến!

Phiên bản định dạng

Làm sao?

y= =0y= =30x= =0x= =39y .

X= =x-19Y= =y-15 .

p = X * Y * b < 0q = Y > 0 ^ b & 1b .

XY đều được bình phương để dễ dàng kiểm tra các vị trí tuyệt đối trong mỗi quý của trường.

Biểu thức x * 24 % 35 > 2mang lại saix{0,3,19,35,38} khác.

Hãy thử trực tuyến!

~16 >> Y % 62 % 6 & 20y{0,2,12,18,28,30}2 nếu không.

Hãy thử trực tuyến!

Tôi

  • 3: không gian
  • 2: |
  • 1: -
  • 0: +hoặcT

(d ? Y : X - 87) > 169d(d ? X - 87 : Y) % 169T


* Mở TIO và bắt đầu xác minh đầu ra * Có vẻ tốt; Tất cả tám đầu ra đều đúng, như mong đợi. * Xem mã thực tế * Huh .. wth đang diễn ra¿ ..: S Mong chờ lời giải thích đó sau, @Arnauld . Một số lượng bất ngờ của các phép tính số học, ternary và bitwise cho một thách thức nghệ thuật ASCII. xD
Kevin Cruijssen

1
@KevinCruijssen Thật ra, tôi ước các công thức của mình thậm chí còn kỳ dị hơn để tôi có thể có được điều này dưới 200 byte, đó là mục tiêu ban đầu của tôi. ;) Nhưng cách tiếp cận của tôi có lẽ được tối ưu hóa quá nhiều đối với việc vẽ trường đầy đủ và không đủ để đưa các tham số vào tài khoản với chi phí byte hợp lý.
Arnauld

Có lẽ là đúng, vì tôi đã cho phép bất kỳ giá trị đầu vào nào trong phạm vi [-999,999]cho bốn đầu vào riêng biệt, vì vậy có lẽ bằng cách nào đó bạn có thể sử dụng điều đó để làm lợi thế cho việc chơi gôn một số byte. Nó có nghĩa là để bắt đầu lại một phần, có lẽ không đáng để nỗ lực. Thật không may, tôi không thể cung cấp cho bạn bất kỳ mẹo chơi gôn nào để giúp bạn dưới 200 byte; Tôi chỉ có thể chúc bạn may mắn trong nỗ lực của bạn. ; p
Kevin Cruijssen

@KevinCruijssen Xong. :)
Arnauld

1

Thạch , 108 99 byte

“¢¥Þ‘Ṭ+þ³ḤN+“¢¤€‘¤ṬḤ;Ø0¤×3R¤¦€³+0x39¤µ‘03³?‘;20¤¦€1,-2¦;565DWx“¢%¢‘¤;UṚ$ị“|-+TO= ””F21¦€³Ḥ_⁵¤¦UṚƭ⁴¡

Hãy thử trực tuyến!

Tôi chắc chắn rằng điều này có thể được chơi golf tốt hơn.

Liên kết Dyadic với đối số trái 0 hoặc 1 cho đơn / đôi và đối số phải 0,1,2,3 cho các góc phần tư phục vụ khác nhau. Trả về danh sách các chuỗi

Cảm ơn @KevinCruijssen vì đã tiết kiệm một byte!


Tôi không biết Jelly, vì vậy tôi có thể nói điều gì đó ngu ngốc ở đây, nhưng với “|-+TO= ”“F”, không “F”thể đánh golf sang một loại chuỗi khác cho các ký tự đơn? Ví dụ, trong 05AB1E, có các chuỗi tích hợp cho các chuỗi có kích thước 1 ( '), 2 ( ) hoặc 3 ( ), vì vậy nó có thể 'F. Không biết Jelly có thứ gì tương tự không, hoặc nếu bạn có lý do khác cho nó “|-+TO= ”“F”?
Kevin Cruijssen

1
@KevinCruijssen Cảm ơn, và thử thách tốt đẹp. Tôi không nghĩ vậy. Có hai ký tự chữ (với⁾), nhưng không phải là một. Tôi có thể sử dụng số 7 và thêm F vào tra cứu, nhưng đó là cùng một số ký tự vì cần phải theo số 7 với số 21 do đó cần một khoảng trắng để tách hai.
Nick Kennedy

Vâng, như tôi đã nói, tôi không biết Jelly. Nghĩ rằng nó có thể có một số nội dung cho chuỗi 1 hoặc 2 ký tự, nhưng nếu bạn nói không tôi tin bạn. :)
Kevin Cruijssen

@KevinCruijssen Tôi rất vui khi có người khác nhảy vào - vẫn đang học!
Nick Kennedy

1
@KevinCruijssen Tôi hoàn toàn bỏ lỡ có thể được sử dụng cho một ký tự duy nhất theo nghĩa đen - rất tiếc! Cảm ơn vì đã tiết kiệm một byte.
Nick Kennedy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.