Loading...
Gesh4o avatar Gesh4o Trainer 305 Точки

Здравей,

Първо по условие трябва да знаеш, че първо се обновява кръвта и после се проверява дали е мъртъв -> след това се увеличават  ходовете. Един съвет от мен: при изчисляване на изрази винаги слагай скоби, за да може да се разбере ясно приорите на операциите. Ето ти линк към моето решение - надявам се да помогне(това е и решението, което предадох, така че не е толкова чисто).

Поздрави!

1
12/06/2016 20:12:19
KrasimirPetkov avatar KrasimirPetkov 328 Точки

1. Не обхождаш матрицата правилно: j го взимаш да ти е броя колони, а i - броя редове, но после пишеш matrix[ j ][ i ] - тоест при матрица, която не е квадратна (например [4,6]) получаваш IndexOutOfRangeException.

2. В програмата ти няма нито един break, в случай че героят умре, тоест - дори да стане с 0 health, на конзолата продължава да си изписва всеки път, че е умрял (докато не обходи цялата матрица).

3. Дори да умре героят, накрая пак ти изписва "Quest Completed!" и всичките там други неща, тъй като не си ги сложил в условна конструкция.

4. Програмата ти изписва номерата на реда и колоната при всяко изпълнение на цикъла (което нямам обяснение защо си го добавил, но в Judge би се приело за грешка). Говоря за Console.WriteLine(i+" "+j);

Това са нещата, които забелязах при един бърз оглед. Може да има и нещо друго, но като за начало според мен трябва да се оправят те. Успех!

1
12/06/2016 20:15:07
daredevil avatar daredevil 7 Точки

мерси , аз в този момент съм го омазал доста други решения гледах по скоро ме интересуваше как да обходя правилно матрицата без да се излиза извън "рейнджа" тъй като не успях да видя какво съм оплескал днес не съм в кондиция аз ще си оправя кода , но ме интересуваше друго мнение и за мен и за вас е полезно мисля. Мерси за съветите ...

п.с. а когато го напиша [i][j] ми го обхойда по ред, а аз искам да ми го обходи по колона от горе на долу и после от долу на горе и т.н.

0
12/06/2016 20:23:24
KrasimirPetkov avatar KrasimirPetkov 328 Точки

Просто разменяш местата на циклите за редове и колони.

for (int i = 0; i < matrix[0].Length; i++) // КОЛОНИ
{
    // УСЛОВИЕ
    for (int j = 0; j < matrix.Length; j++)  // РЕДОВЕ
    {
        // КОД С matrix[j][i]
    }
    // УСЛОВИЕ
    for (int j = matrix.Length - 1; j >= 0; j--)  // РЕДОВЕ В ОБРАТНА ПОСОКА
    {
        // КОД С matrix[j][i]
    }
}

Този тип обхождане изглежда по-неприятно в твоя случай с jagged array (тъй като неговата идея е на всеки ред да може да има различен брой колони). Щеше да се получи по-добре с нормална матрица, тъй като тук за  дължината на колоните, трябва да избереш произволен ред и да вземеш дължината на масива в него (броя колони е еднакъв за всички редове на матрицата в тази задача по условие). Аз използвам ред 0, тъй като какъвто и да е размера на матрицата, ще присъства в нея. Надявам се това да помогне.

1
12/06/2016 20:31:41
daredevil avatar daredevil 7 Точки

Целия проблем е тук в обхождане на матрицата - колега благодаря ти много. Точно тук съм ги "насосал" и сега всичко запали от ряс ... аз останалите съм ги оправил

 

п.с. аз нали щото съм инат другата матрица я пренебрегнах, а исках да си я направя с тази и на изпита ми гръмна :(

1
12/06/2016 20:40:32
TomaTomov_91 avatar TomaTomov_91 9 Точки

Здравейте! За да не отварям нова тема, искам да попитам, какво пропускам, че получавам 70/100? Ако някой има възможност да даде насока :)

код : http://pastebin.com/vVJY1yYe

Много благодаря :)

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