import sequtils, strutils import neurons type Level* = ref object of RootObj neurons*: seq[Neuron] ClassicLevel* = ref object of Level width*: Positive RectangularLevel* = ClassicLevel proc `[]`*(level: Level, index: Natural): Neuron = level.neurons[index] method `$`*(level: Level): string {.base.} = level.neurons.mapIt($it).join(" ") proc `[]`*(level: RectangularLevel, y: Natural, x: Natural): Neuron = level.neurons[y * level.width + x] proc height*(level: RectangularLevel): Natural = level.neurons.len div level.width method `$`*(level: ClassicLevel): string = for y in 0..