This algorithm follows one rule: every cell randomly connects with its **northerly** or **easterly** neighbour.

## Speed |

This algorithm runs the following rules:

- Let
**'C'**be an empty list of cells. Add any cell to**C**. - Pick
**any cell**in C and connect it with any of its**unvisited**neighbours.**Add**the neighbour to**C**. If**all**of cell's neighbours have been**visited**,**remove**the cell from C. **Repeat #2**until 'C' is empty.

## Speed |

This algorithm runs the following rules:

- Start at the top-left corner, working left-to-right on each row. Let
**'C'**be a list continuous horizontally-linked cells. -
Add the current cell to C and choose whether or not to make an easterly connection.
- If so, make the easterly cell the current cell and repeat step 2.
- If not, choose any cell in C and connect it with a northerly cell. Clear C and repeat step 2.

- Continue until all cells have been visited.

## Speed |

This algorithm runs the following rules:

- Pick any cell.
- Connect with any unvisited neighbour and set that neighbour as the current cell.
- If all neighbours have been visited, move back to the last cell with unvisited neighbours.
- Repeat steps 2-3 until the algorithm moves back at the starting point.

## Speed |

This algorithm runs the following rules:

- Put each cell in the first row in its own group.
- Randomly connect neighbouring cells of different groups, merging their groups as you go.
- For each group, create at least one vertical connection to the next row. Add the newly connected cell to the group.
- In the next row, give each unvisited cell its own set.
- Repeat steps 2-4 until the last row.

## Speed |

This algorithm runs the following rules:

- Pick any cell.
- Connect with any unvisited neighbour and set that neighbour as the current cell.
- If all neighbours have been visited, scan for unvisited cells with visited neighbours, starting at the top-right corner.
- Set the first match as the current cell and perform step 2 .

## Speed |

This algorithm runs the following rules:

- Pick any cell, mark it as visited and set it as an end point.
- Pick any cell and set it as a starting point. Move to any neighbour, storing the latest direction of motion.
- Repeat step 2 until you reach a visited cell.
- Return to the starting point, and follow the stored directions to the end point, marking them as visited and building connections as you go.
- Repeat steps 2-4 until every cell has been visited.

## Speed |