Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Stoianilliev avatar Stoianilliev 1 Точки

Проблем със задача 9. Miner

Здравейте, имам проблем с горепосочената задача, условието на която се намира тук:

https://softuni.bg/trainings/resources/officedocument/49688/exercise-csharp-advanced-may-2020/2834

Проблемът е следният:

Инпута представлява размер на матрицата, команди и самата char матрица. Обаче тя е изписана с разстояния между отделните символи, които моята програма чете, и не взима цялата матрица. На първия пример взима това:

5
up right right up right
* * * c *
* * * e *
* * c * *
s * * c *
* * c * *

И ако проверя как се е запаметила матрицата, се оказва че се е запаметило това:

* * *
* * *
* * c
s * *
* * c

Тоест е взело само първите 5 символа(включително спейсовете).

Въпросът ми е как мога да си преправя кода така че да не брой празните места в char array-a?

Кодът ми в които съм оградил с коментари къде е проблема: https://pastebin.com/jQNJ74xr

Благодаря предварително!

Тагове:
1
C# Advanced
MartinBG avatar MartinBG 4803 Точки
Best Answer

Използването на Multidimensional Array (char[,]) в тази задача само усложнява ненужно парсването и извеждането ѝ в конзолата.

Тези две операции са много по-лесни, ако се използва Jagged Array (char[][]):

            // Parse from Console
            var matrix = new char[n][];
            for (var row = 0; row < n; row++)
            {
                matrix[row] = Console.ReadLine()
                    .Split(' ', StringSplitOptions.RemoveEmptyEntries)
                    .Select(c => c[0])
                    .ToArray();
            }

            // Print back to Console
            foreach (var row in matrix)
            {
                Console.WriteLine(string.Join(' ', row));
            }

Работа Jagged Array: matrix[row][col] вместо matrix[row, col]

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.