Loading...
Plotso avatar Plotso 24 Точки

Exam Preparation 2 , Problem 2. Ladybugs

ЗАДАЧА

КОД

Здравейте! От 4 часа мъча тази задача ,но не отлепям от 30 точки... Дава ми -"...System.IndexOutOfRangeException: Index was outside the bounds of the array..."...Пробвах да променя кода по десетки начини  и да избягам от този ексепшън,но безуспешно...Проблемът според конзолата е на 93ти ред. Моля някой да погледне кода и да ми помогне.Благодаря предварително!

 

Тагове:
0
Programming Fundamentals
StefkaVasileva avatar StefkaVasileva 250 Точки
Best Answer

Първото нещо което забелязах, като проблем е когато изчисляваш новата позиция newPositionIndex += 1; по условия калинката ако стъпи на индекс на който има друга калинка, лети със същата дължина, т.е новата позиция трябва да е += commandLBFlyLength , за ляво съответно -=. Тази задача има доста проверки за излизане от масива. За това и ти гърми, че индекса е извън обхвата на масива. Ако искаш можеш да разгледаш моето решение: https://github.com/stefkavasileva/Programming-Fundamentals/blob/master/OldExams/Exam-23October2016/02.Ladybugs/Ladybugs.cs

 Иначе аз съм подходила по следния начин: след като получа команда проверявам дали индекса е валиден, ако не е  продължавам със следващата команда. Ако е валиден взимам посоката  и дължината. Веднага правя стойността на индекса на текущата калинка да е 0, защото тя или ще стъпи на друга позиция или ще излети (т.е ще излезне от масива). След това изчислявам новата позиция на калинката и отново проверявам дали новата позиция е валидна в масива, ако не е валидна продължавам с другата команда, ако е валидна (да е в рейнджа на масива) , проверявам дали на новата позиция имам 1 т.е калинка ако имам калинка продължавам да изчислявам новата позиция, така докато не излезна от масива т.е калинката да излети или докато не стъпя на позиция на която има 0 и на която ще запиша 1. Щом запиша калинката продължавам със следващата команда. Дано да си разбрал логиката ми, но честно казано тази задача я мислих ужасно много време, защото има проверки след всяко действие и като забравиш някъде една и край.  

1
vkutov avatar vkutov 57 Точки

" Веднага правя стойността на индекса на текущата калинка да е 0, защото тя или ще стъпи на друга позиция или ще излети (т.е ще излезне от масива)"

". If you are given ladybug index that is outside the field, nothing happens. "  Това условие ми е странно. Ако имаме големина 3 и кажем на калинката от 2то цвете  да лети със стъпка  5 цветя. Тя явно ще напусне полето, независимо от положенита на другите калинки. Какво означава . че нищо няма да се случи:

1. Калинката си излита от полето

2.Калинката си остава в първоначалното ,тъй като и е зададена още в началото неесъществуващо цвете.

Понякога самите условие ме затрудняват, изглеждат ми доста неясни . Благодаря

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