Post History
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 ...
Question
code-golf
#2: Post edited
- 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
- ```text
- ##..
- .##.
- ..##
- .###
- .#..
- ##..
- #...
- ##..
- .###
- ##.#
- .###
- ##.#
- ```
- ### Invalid examples for input 4, 3
- ```text
- 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
- ```text
- ###....
- ..#....
- ..###..
- ....#..
- ....###
- ##.....
- .##....
- ..##...
- ...##..
- ....###
- #......
- #......
- ##.###.
- .#.#.##
- .###..#
- ###....
- ..###..
- ###.###
- #...#.#
- ###...#
- ```
- ### Invalid examples for input 7, 5
- ```text
- 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](https://trichoplax.github.io/connect-the-corners-validator/), which will give a reason for any failed validations.
- > Explanations are optional, but I'm more likely to upvote answers that have one.
- 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
- ```text
- ##..
- .##.
- ..##
- .###
- .#..
- ##..
- #...
- ##..
- .###
- ##.#
- .###
- ##.#
- ```
- ### Invalid examples for input 4, 3
- ```text
- 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
- ```text
- ###....
- ..#....
- ..###..
- ....#..
- ....###
- ##.....
- .##....
- ..##...
- ...##..
- ....###
- #......
- #......
- ##.###.
- .#.#.##
- .###..#
- ###....
- ..###..
- ###.###
- #...#.#
- ###...#
- ```
- ### Invalid examples for input 7, 5
- ```text
- 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](https://trichoplax.github.io/connect-the-corners-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: Initial revision
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 ```text ##.. .##. ..## .### .#.. ##.. #... ##.. .### ##.# .### ##.# ``` ### Invalid examples for input 4, 3 ```text 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 ```text ###.... ..#.... ..###.. ....#.. ....### ##..... .##.... ..##... ...##.. ....### #...... #...... ##.###. .#.#.## .###..# ###.... ..###.. ###.### #...#.# ###...# ``` ### Invalid examples for input 7, 5 ```text 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](https://trichoplax.github.io/connect-the-corners-validator/), which will give a reason for any failed validations. > Explanations are optional, but I'm more likely to upvote answers that have one.