Loading...

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

MartinBG avatar MartinBG 4803 Точки

Имате много повтарящ се код (почти всичко в 4-те метода за придвижване), което комбинирано с използването навсякъде в програмата на статични глобални променливи с близки (rowCheck, checkRowT и colCheck, checkColT) или твърде общи като смисъл имена (isTrue), прави допускането на грешки твърде лесно и затруднява ненужно намирането им.

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

Позволявам си да направя този по-критичен коментар, тъй като задачата е към изпит след C# Advanced и се очаква кодът, който пишете след това ниво, да бъде с по-високо качество.

0
27/05/2020 14:21:42
Milko123 avatar Milko123 14 Точки

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

1
Milko123 avatar Milko123 14 Точки

Направих някои промени по кода си, но продължавам да не си виждам грешката и пак получавам 90/100 https://pastebin.com/nN0Ji9xd.

1
MartinBG avatar MartinBG 4803 Точки

@Milko123

Тест №6 не минава заради Runime error, а при работа с масиви, най-честата причина за такива exception-и е невалиден индекс.

В кода забелязвам, че след превъртане и попадане на 'T', променяте индекса в грешната посока.

Например в MoveUp, ако сме на ред 0 и получим тази команда, тя ще ни изпрати на последния ред. Aко там има 'Т' вместо да ни върне на ред 0, ще увеличи реда с 1, което вече е извън размера на matrix и като сигне до if (matrix[rowCheck, colCheck] == 'F') ще хвърли IndexOutOfRangeException

Ето примерен тест, който демонстрира бъга:

2
2
fT
-F
left


Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.

 

0
27/05/2020 23:22:55
Milko123 avatar Milko123 14 Точки

MartinBG 

Много благодаря за подхода Ви към моя проблем. Последвах Вашите препоръки и открих начин, примерния вход, който сте дали да не връща грешка, но в случая на задачата това не е нужно. Това е ценен съвет за мен, тъй като в друга подобна задача би ме подвело. Та с малко помощ от код на друг колега преправих моя и постигнах 100/100 в Judge https://pastebin.com/v0DhPPJA. Голяма част от проблема ми се дължеше на грешни оператори в if проверките за движение.

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