50x50 это плохо. Так делать нельзя.
Во-первых, потому что на 51 все сломается.
Во-вторых, это не оптимально по памяти (в случае если поле 10x10).
Игровое поле конечного размера. Поэтому, прочитать все в память, а потом разбирать - это вовсе не плохо. Решение должно быть каким то таким: прочитать весь файл, посчитать количество строк, посчитать количество символов в первой строке (на этом этапе полностью известен размер массива), проверить что длина всех остальных строк такая же, заполнить двумерный массив.