На четвёртом уроке мы закончим создание редактора уровней. Напишем самую главную функцию для сохранения сделанных изменений в файл. Затем добавим кнопки перехода к следующему и предыдущему уровню. Останется только немного облагородить интерфейс программы.
Дата отправки отчёта:
7 декабря 2016 г.
Задание выполнено: за
4 час. 13 мин.
Чему научился:
Изменять и сохранять уровни
Что было сложным:
Самое трудное было понять (может быть в будущем это прояснится) зачем все уровни мы записываем в один файл? Хотя с точки зрения приобретения навыков программирования сложных алгоритмов это оправдано.
Комментарии:
Не проще ли каждому уровню выделить отдельный файл с именем LevelNNN.txt? где NNN = 001 для первого, 002 для -2го т.д. Тогда многое при кодировании упростится.
Упростится да, но суть в том, что проще можно и самим реализовать, поэтому более сложную систему показали, я даже больше скажу, они в файле не обязательно могут идти подрят, можно вручную в блокноте поменять номера в уровнях, не перемешивая их местами.
И ещё, хранить все уровни в 1 файле это экономнее в плане использования дискового пространства. Стандартный кластер 4кб, ранее сектора были по 512 байт для хранения информации пользователя, а теперь физический кластер 4кб тоже, поэтому каждый уровень в отдельном файле это не экономично, уровни будут весить меньше, а значит много места будет теряться. Можно пройти курс "Архиваторы" и реализовывать каждый уровень в отдельном файле но при этом в одном архиве, как обычно и делают все разработчики, чтобы ещё оптимальнее расходовать дисковое пространство.
Научился: Реализации сохранения ;) Good. ;) + Я доделал библиотеку RecourceLoader - теперь она работает, как нужно ;) / + Переделал адаптивность на разрешение - теперь лучше стали 'адаптироваться' размеры PicterBox'ов к разрешению ;) / + Тестил изменения размеров уровня - нашёл баг(У всевышнего он тоже есть), если изменить размер уровня на более большие то выдаст ислючение(IndexOF) - Исправил это добавив в тот самый цикл(переделки массива string на более большой) - написав в условие цикла - (Curr + Delta), вместо Curr ;) / При больших значениях(значит дельта больше) - выходило за рамки массива ;)