#!/usr/bin/ruby

func draw_grid(n, k) {

    if (n % k != 0) {
        warn "#{n} is not divisible by #{k}"
    }

    func sym(  {_},  {_} ) { '+' }
    func sym(  {_}, {!_} ) { '-' }
    func sym( {!_},  {_} ) { '|' }
    func sym( {!_}, {!_} ) { ' ' }

    0..n -> map {|a|
        0..n -> map {|b|
            sym(a %% n/k, b %% n/k)
        }.join
    }.join("\n").say
}

draw_grid(25, 5)
draw_grid(16, 2)
draw_grid(12, 3)