Challenge
You just entered a room. Here's how it looks (you are the X):
|\ /| | \/ | | X | | | |----| You challenge yourself to see if you can reach where you started by following the walls. You go right until you find a wall. Then, you turn clockwise until you are facing parallel to the wall.
For example, if you hit a \ while going down, you will go up-left.
After that, you continue and repeat. In this visualisation, you will leave a trail. Here is how the example above would progress:
|\ /| | \/ | | Sxx| | X| |----| You continue following this pattern.
|\ /| |X\/ | |xSxx| |xxxx| |----| And yes, you reached the starting point.
|\ /| |x\/ | |xXxx| |xxxx| |----| However, if there was a hole, you could get lost:
|\ /| | \/ | | SxxX | | |----| Input
As input, in any reasonable format, your program must recieve the room you are in, which consists of walls (|/-), spaces and your starting point (the X) (the starting direction is always right).
Output
As output, your program needs to output a truthy or falsy value representing if you got to your starting point.
Test cases
The format here is input -> output (reason for being false).
/-\ |X| -> true \-/ X -> false (hits boundary) X | -> true \ X | - | -> false (trapped in endless loop) | - - Scoring
This is code-golf, so the program with the least bytes wins!
\and turning right. \$\endgroup\$/from each direction. Ie, N becomes ?, E becomes ?, etc? And same question for\. \$\endgroup\$