# Connect the corners without 4 in a row

+0

−0

Connect opposite corners of a rectangle of characters without putting 4 characters in a row.

## Input

- Two numbers, W and H, representing the width and height of the rectangle
- Each number will be in the range 2 to 70

## Output

- A rectangular grid of characters, of width W and height H
- You may choose any 2 distinct characters to represent path and background
- The output must contain 2 connected path characters in diagonally opposite corners of the grid
- Connected means there is a path from one to the other moving only between adjacent path characters
- Adjacent means 1 character away horizontally or vertically (but not both - diagonal adjacency does not count as connection for this challenge)

- The output must not contain 4 adjacent path characters in a line horizontally or vertically
- There is no limit to how many of the characters may be path characters, provided there are never 4 in a row.
- There may be redundant sections connected to the path
- There may be disconnected sections of path provided the main path meets the requirements

## Examples

These examples use `#`

for a path character and `.`

for the background.

### Valid examples for input 4, 3

```
##..
.##.
..##
.###
.#..
##..
#...
##..
.###
##.#
.###
##.#
```

### Invalid examples for input 4, 3

```
4 in a line horizontally:
#...
####
...#
Depends on diagonal adjacency, which does not count as connection:
#...
.#..
..##
Does not connect diagonally opposite corners:
###.
..##
###.
```

### Valid examples for input 7, 5

```
###....
..#....
..###..
....#..
....###
##.....
.##....
..##...
...##..
....###
#......
#......
##.###.
.#.#.##
.###..#
###....
..###..
###.###
#...#.#
###...#
```

### Invalid examples for input 7, 5

```
Does not connect two diagonally opposite corners:
###....
..###..
....###
...##..
...#...
Has 4 in a row horizontally:
####...
...#...
...###.
.....#.
.....##
Has 4 in a row vertically:
###....
..#....
..#.###
..###.#
......#
Depends on diagonal adjacency, which does not count as connection:
##.....
..##...
....##.
......#
......#
```

## Validator

You can check a specific output using this path validator, which will give a reason for any failed validations.

Explanations are optional, but I'm more likely to upvote answers that have one.

## 0 comment threads