Loading...
zlobjul avatar zlobjul 4 Точки

JA2 Task 4 - The Matrix

Здравейте , направих The Matrix , но на 4 отговора ( 1 , 3, 4, 5 ) ми ги дава грешни . Какви ли комбинации не пробвах и при мен работи .

Вече не знам как да дебъгвам на сляпо и с какви комбинации да опитвам ( при матрица 20 на 20 и всевъзможни символи трябва да загубя месеци да изпробвам всичко възможно ) . Дайте няк'ви насоки как да разберем при какви случаи гърми , много ми е трудно да дебъгвам нещо, което не виждам ...

Благодаря ,

Поздрави

Любо

Тагове:
0
C++ Fundamentals
georgi.stef.georgiev avatar georgi.stef.georgiev 921 Точки
Best Answer

Здравей,

Доколкото виждам нулевите тестове не ти минават в Judge (отвори си детайли на решението и ще видиш - за тях можеш да сравняваш какво е изкарала твоята програма и какво се е очаквало - това са примерите от условието) - по конкретно твоята програма не изкарва изход, така че първият ти приоритет е да подкараш тях.

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

Друго нещо - не гледах много внимателно, но не забелязах кодът ти да се справя добре със "завои" в матрицата - ти пускаш в четирите посоки запълване, но какво става ако има завой? Какво става ако има оградена област, която нямаш право да запълниш, защото ти е казано да запълваш отвън? Поддържаш ли ги тези случаи? Идеята на тази задача е да направите нещо подобно на Fill with Color (кофата) на Paint - виж той как работи и дали твоята програма се държи по същия начин (дали ще е матрица от пиксели или матрица от символи, логиката е една и съща). Може и правилните неща да правиш, нямам време да огледам в детайли, но помисли за споменатите неща.

Ето ти един пример - X-ът е  началото на маркирането, тук всички нули трябва да се попълнят, с изключение на тези, които са обградени изцяло от единици (струва ми се, че твоя код ще пропусне поне тези, които са между 1-ците и 2-ките):

0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 1 1 1 2 2 0 0 0 0 
0 0 0 1 0 1 0 2 0 0 0 0 
0 0 0 1 0 1 0 2 0 0 0 0 
0 0 0 1 0 1 0 2 0 0 0 0 
0 0 0 1 0 1 0 2 0 0 0 0 
0 0 0 1 1 1 0 2 0 0 0 0 
0 X 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 



Една подсказка за решението на тази задача - правилният подход се върти около това за всеки пиксел/символ, да огледаш съседните и да видиш кои имаш право да оцветиш. След това да повториш същото за всеки един от тях и т.н. - тоест ще ти трябва всеки път да добавяш нови съседи, които на следващата итерация оцветяваш и след това добавяш техните съседи и т.н. (внимавай да не добавяш съседи, през които вече си минал, иначе става безкрайно).

Помисли върху тези неща, които споменах и питай пак ако нещо не ти е ясно.

Поздрави,

Жоро

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