Skip to content

Instantly share code, notes, and snippets.

@baweaver
Created February 26, 2021 08:57
Show Gist options
  • Save baweaver/017e84a2371a2a79b16d5c4d54ac42ad to your computer and use it in GitHub Desktop.
Save baweaver/017e84a2371a2a79b16d5c4d54ac42ad to your computer and use it in GitHub Desktop.
grouped_join = -> join:, group_join:, group_count: 3 {
-> list {
list.each_slice(group_count).map { _1.join(join) }.join(group_join)
}
}
# 9x9 Game Board Grid
grid = [[*0..8]] * 9
cell_seperator = ' '
col_seperator = ' | '
segment = '-----'
segment_seperator = '-+-'
row_group_seperator = "\n"
row_seperator = "\n#{([segment] * 3).join(segment_seperator)}\n"
grid
.map(&grouped_join[join: cell_seperator, group_join: col_seperator])
.then(&grouped_join[join: row_group_seperator, group_join: row_seperator])
# STDOUT:
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
# ------+-------+------
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
# ------+-------+------
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
# 0 1 2 | 3 4 5 | 6 7 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment