Let's play tennis 2: east-west game

Python 2, 59 bytes

s="------x------\n|  |  x  |  |\n|  |--x"
print s+s[-2::-1]

Try it online!

Prints the first half of the string followed by its reverse. It's boring but efficient. I tried extracting repeating parts of out s, especially the -, but didn't find anything shorter.


Python 2, 59 bytes

for n in 6,0,2,0,6:x='-'*n+'  |  |'[n:];print x[::-1]+'x'+x

Try it online!

Using Jo King's construction.


Python 2, 62 bytes

b='|  '*2
for r in'-'*6,b,'|  |--',b,'-'*6:print r+'x'+r[::-1]

Try it online!

Prints the first half of each line, followed by 'x', followed by the first half reversed.


Charcoal, 15 bytes

↑²←⁶↓xx→x²↑²‖O¬

Try it online! Link is to verbose version of code. By way of explanation I will show the result after each of the drawing commands up to the final reflection:

↑²        |
          |

     ------
←⁶        |
          |

    x------
↓xx x     |
          |

    x------
→x² x     |
    x--   |

    x------
↑²  x  |  |
    x--|  |

Canvas, 13 12 bytes

«ω↕9:gW:tC‟┼

quad-palindromizes a compressed corner of the field.

Try it here!

11 bytes with uppercase Xes, using the fact that / compresses better than x and palindromizing would result in overlapping / and its mirror \, which results in X