Проблем не должно быть, где-то ошибся, ищи.
Как я отмечал в последнем отчете, сохранение уровня не всегда работает правильно. Так если,скажем, уровень был 5х5 и мы меняем его на 5х7 или 5х8 (чтобы новое число строк было больше 1) то
возникает исключение.
И в самом деле ниже приведен фрагмент кода из функции
public void SaveLevel(int level_nr, Cell [,] cell)
======
................
if (new_length > old_length)
{
Array.Resize(ref lines, new_length);
//for (int z = new_length -1 ; z > curr ;z-- )
for (int z = new_length - 1; z > curr - delta+1; z--)
{
try{
lines[z] = lines[z - delta];
}
catch{
int xx=1;
}
}
}
======
В закомментированом коде, в приведенном в видео,
//for (int z = new_length -1 ; z > curr ;z-- )
видно, что внутри этого цикла (особенно, когда работаем с 1-ым уровнем)
может возникнуть отрицательный индекс, что и приводит к проблеме.
В моем варианте
for (int z = new_length - 1; z > curr - delta+1; z--)
вроде бы все работает нормально.
Вопрос: Интересно, у других при таком же сценарии тоже возникает проблема?
Или я недостаточно внимательно смотрел видео урок?