Мы начинаем создавать редактор уровней для известной логической игры Sokoban.
Редактор будет создан за четыре урока. На первом уроке мы создадим класс для загрузки уровня с текстового файла и протестируем его работу.
Дата отправки отчёта:
13 августа 2015 г.
Задание выполнено: за
2 час. 00 мин.
Чему научился:
null
Что было сложным:
Ничего.
Комментарии:
Программа плохо не верно распознавала уровни. Предполагаю, что дело было в путанице с индексами. Пример:
for (int y=0; y< height; y++) { for (int x=0; x< width; x++) {
cell[x,y] = CharToCell(lines[curr + y + 1][x]); Здесь не видно прямой ошибки, однако можно запутаться, всё задом наперёд получилось. По определению, в матрице всегда первый индекс - строка, второй - столбец, при этом привычно, что x -строка, y-столбец. Когда не привычно, с кодом нельзя работать спокойно, напрягаешься постоянно, можно ошибку не заметить. Я переписал так:
cell=new Cell[width, height]; for (int x=0; x< width; x++) { for (int y=0; y< height; y++) {
cell[x,y] = CharToCell(lines[curr + x + 1][y]);
Заработало как надо. Может я какими-то своими правками что-то испортил, главное, что теперь всё нормально, я пишу затем, что может действительно Евгений Витольдович немного запутался и проблема не выдумана.
Архив проекта:Ссылка доступна после самостоятельного выполнения этого урока
Проблема существует, так как привычки конфликтуют. удобнее писать cell [x, y], однако в этом случае получается, что х - строка, у - столбец. А на самом деле в координатах должно быть наоборот. Поэтому я предпочитаю записывать cell [y, x], чтобы в х был столбец, а в у строка, так логичнее.
Моя ошибка была в том, что я указал в файле не верный размер второй карты (на уроке тоже не верно указали: 5x5, но это было не критично, а вот я указал 4x5, а надо было 5x4 - сначала ширина, потом высота, отсюда всё и поехало).
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.