Трудности: Придумать логику которая позволит рисовать нужные фигуры сразу в разных элементах не используя циклы. Офигительная задача. Поначалу воспринял ее как легкую, затем начав ее выполнять родилась одна идея (как сделать так чтобы все рисовалось в один промежуток времени сразу на всех элементах).
Для этого пришлось сделать свой контрол. В этот контрол в свойство таг автоматиччески писать нахождение элемента в двумерной матрице и выполнять логику обработки симметричности. В класс kaleidoscope ввел событие которая позволит запускать на всех элементах одновременно нужные функции рисования.
Хороший урок, все понравилось. С try catch не заморачивался, поставил фильтры. И через StreamWriter и Reader. Хотя полезность и необходимость try catch трудно отрицать. Не увидел директивы using или освобождения ресурса через Dispose(). Возможно тут и не надо это делать.