Simple labyrinth manipulations.
Can generate labyrinths like this:
┏━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓
┃ ←┼→ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┃ ╻ ╹ ┏━━━━━┓ ┏━━━━━┛ ╺━━━━━┓ ┗━━━━━╸ ╻ ┗━━━━━━━━━━━╸ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ╹ ┃ ┏━━━━━┛ ╹ ┃ ╺━━━━━━━━━━━┫ ┏━━━━━╸ ┣━━━━━━━━━━━━━━━━━┓ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┏━━━━━┫ ┃ ╺━━━━━┳━━━━━┻━━━━━┳━━━━━╸ ┃ ┃ ╺━━━━━┫ ╺━━━━━┓ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┏━━━━━┛ ╻ ┃ ╺━━━━━┫ ┗━━━━━━━━━━━┫ ╺━━━━━┫ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┃ ┃ ┗━━━━━┫ ╺━━━━━┫ ┣━━━━━┓ ┗━━━━━━━━━━━┓ ┗━━━━━┓ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┃ ┗━━━━━┓ ╹ ┏━━━━━┛ ┃ ┗━━━━━━━━━━━╸ ┃ ╻ ┃ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┣━━━━━╸ ┗━━━━━┳━━━━━┫ ╺━━━━━┫ ╺━━━━━━━━━━━━━━━━━┫ ┣━━━━━┛ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ╹ ┏━━━━━╸ ┃ ┗━━━━━┓ ┗━━━━━━━━━━━┳━━━━━╸ ┃ ┃ ╺━━━━━┫ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━━━━━━━┫ ┏━━━━━┻━━━━━┓ ┃ ╺━━━━━┳━━━━━┛ ╺━━━━━┫ ┗━━━━━┓ ┃ ┃ ┃
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ╻ ╹ ┃ ╻ ╹ ┗━━━━━┓ ┃ ╺━━━━━━━━━━━┻━━━━━┓ ╹ ┃ ┗━━━━━┫
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┃ ┗━━━━━━━━━━━┛ ┣━━━━━━━━━━━╸ ┃ ┗━━━━━━━━━━━╸ ╻ ┗━━━━━━━━━━━┻━━━━━┓ ┃
┃ ┃ ┃ ┃ ┃ →┼← ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━┛
And solve them like so:
┏━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓
┃ ←┼→ ┃ ┌──→──┐ ┃ ┃ ┌──→─────→──┐ ┃ ┃ ┃
┃ ↓ ┃ ↑ ╻ ↓ ╹ ┏━━━━━┓ ┏━━━━━┛ ↑ ╺━━━━━┓ ↓ ┗━━━━━╸ ╻ ┗━━━━━━━━━━━╸ ┃
┃ │ ┃ │ ┃ │ ┃ ┃ ┃ ┌──→──┘ ┃ │ ┃ ┃
┃ ↓ ╹ ↑ ┃ ↓ ┏━━━━━┛ ╹ ┃ ↑ ╺━━━━━━━━━━━┫ ↓ ┏━━━━━╸ ┣━━━━━━━━━━━━━━━━━┓ ┃
┃ └──→──┘ ┃ │ ┃ ┃ └──←─────←──┐ ┃ │ ┃ ┃ ┌──→─────→──┐ ┃ ┃
┃ ┏━━━━━┫ ↓ ┃ ╺━━━━━┳━━━━━┻━━━━━┳━━━━━╸ ↑ ┃ ↓ ┃ ╺━━━━━┫ ↑ ╺━━━━━┓ ↓ ┃ ┃
┃ ┃ ┃ │ ┃ ┃ ┌──→──┐ ┃ ┌──→──┘ ┃ │ ┃ ┃ │ ┃ │ ┃ ┃
┃ ┃ ┃ ↓ ┃ ┏━━━━━┛ ↑ ╻ ↓ ┃ ↑ ╺━━━━━┫ ↓ ┗━━━━━━━━━━━┫ ↑ ╺━━━━━┫ ↓ ┃ ┃
┃ ┃ ┃ │ ┃ ┃ ┌──→──┘ ┃ │ ┃ └──←──┐ ┃ └──→─────→──┐ ┃ └──←──┐ ┃ │ ┃ ┃
┃ ┃ ┃ ↓ ┗━━━━━┫ ↑ ╺━━━━━┫ ↓ ┣━━━━━┓ ↑ ┗━━━━━━━━━━━┓ ↓ ┗━━━━━┓ ↑ ┃ ↓ ┃ ┃
┃ ┃ ┃ └──→──┐ ┃ │ ┃ │ ┃ ┃ └──←─────←──┐ ┃ │ ┃ │ ┃ │ ┃ ┃
┃ ┃ ┗━━━━━┓ ↓ ╹ ↑ ┏━━━━━┛ ↓ ┃ ┗━━━━━━━━━━━╸ ↑ ┃ ↓ ╻ ┃ ↑ ┃ ↓ ┃ ┃
┃ ┃ ┃ └──→──┘ ┃ ┌──←──┘ ┃ ┌──→─────→─────→──┘ ┃ │ ┃ ┃ │ ┃ │ ┃ ┃
┃ ┣━━━━━╸ ┗━━━━━┳━━━━━┫ ↓ ╺━━━━━┫ ↑ ╺━━━━━━━━━━━━━━━━━┫ ↓ ┣━━━━━┛ ↑ ┃ ↓ ┃ ┃
┃ ┃ ┃ ┃ └──→──┐ ┃ └──←─────←─────←──┐ ┃ │ ┃ ┌──→──┘ ┃ │ ┃ ┃
┃ ╹ ┏━━━━━╸ ┃ ┗━━━━━┓ ↓ ┗━━━━━━━━━━━┳━━━━━╸ ↑ ┃ ↓ ┃ ↑ ╺━━━━━┫ ↓ ┃ ┃
┃ ┃ ┃ ┃ │ ┃ ┌──→──┘ ┃ │ ┃ └──←──┐ ┃ │ ┃ ┃
┣━━━━━━━━━━━┫ ┏━━━━━┻━━━━━┓ ┃ ↓ ╺━━━━━┳━━━━━┛ ↑ ╺━━━━━┫ ↓ ┗━━━━━┓ ↑ ┃ ↓ ┃ ┃
┃ ┃ ┃ ┃ ┃ └──→──┐ ┃ ┌──→──┘ ┃ └──→──┐ ┃ │ ┃ │ ┃ ┃
┃ ╻ ╹ ┃ ╻ ╹ ┗━━━━━┓ ↓ ┃ ↑ ╺━━━━━━━━━━━┻━━━━━┓ ↓ ╹ ↑ ┃ ↓ ┗━━━━━┫
┃ ┃ ┃ ┃ ┃ │ ┃ └──←─────←──┐ ┃ └──→──┘ ┃ └──→──┐ ┃
┃ ┗━━━━━━━━━━━┛ ┣━━━━━━━━━━━╸ ┃ ↓ ┗━━━━━━━━━━━╸ ↑ ╻ ┗━━━━━━━━━━━┻━━━━━┓ ↓ ┃
┃ ┃ ┃ └──→─────→─────→──┘ ┃ ┃ →┼← ┃
┗━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━┛
To try it out using Poetry:
- Clone the repo:
git clone https://github.com/AndreiToroplean/laby.git; - And run:
poetry run generate_and_solve.