# Relevant Part for a Badminton Serve

## Python 2, 285 284 bytes

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


Try it online!

Takes input as 0/1 (or False/True) for game type (Double/Single),

and 0-3 for serving block (0,1,2,3 = C,D,A,B)

## Charcoal, 81 bytes

ＮθＦ⮌Ｅθ⁺¹⁶×³ιＦ✂541⊖θＵＲι±×³Ｉκ×=¹⁸O⟲Ｏ↙⁴Ｊ¹±³FＦ²Ｆ²«Ｊ×ι±⁺¹²×³θ⁺²×⁻¹⁵×³θκT»Ｆ№ABη‖↑Ｆ№ACη‖


Try it online! Link is to verbose version of code. Takes the first input as 1 or 2 for singles or doubles, second input as one of ABCD as in the question. Explanation:

Ｆ⮌Ｅθ⁺¹⁶×³ιＦ✂541⊖θＵＲι±×³Ｉκ


Loop over the relevant widths and the heights of the D court and draw the rectangles.

×=¹⁸O⟲Ｏ↙⁴


Draw the net and apply rotational symmetry to add the A court.

Ｊ¹±³F


Add the F to the D court.

Ｆ²Ｆ²«Ｊ×ι±⁺¹²×³θ⁺²×⁻¹⁵×³θκT»


Add the Ts to the relevant places in the A court.

Ｆ№ABη‖↑Ｆ№ACη‖


Reflect the output as necessary to serve from the correct court.