Connect the corners without 4 in a row [FINALIZED]
+0
−0
Now posted: Connect the corners without 4 in a row
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.
1 comment thread