#!/usr/bin/ruby

func draw_grid(n, k) {

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

    func sym(  (true),  (true) ) { '+' }
    func sym(  (true), (false) ) { '-' }
    func sym( (false),  (true) ) { '|' }
    func sym( (false), (false) ) { ' ' }

    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)