Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

Игра Сокобан / Сокобан - Игра - Управление

  • Теперь мы создадим класс логики игры Game,
    используя который, мы реализуем управление человечком
    курсорными клавишами клавиатуры.
    А также сделаем переход на следующий уровень.
  • Дата отправки отчёта: 1 июня 2015 г.
  • Задание выполнено: за 2 час. 00 мин.
  • Чему научился: Из С# ничего нового, только в организации кода
  • Что было сложным: Более менее понятно и удобно продумать архитектуру приложения
  • Комментарии: Замечаний нет, игра действительно заработала, класс!
  • Оценка видео-уроку:
Отчёт от 5577 за Игра Сокобан / Сокобан - Игра - Управление




Оцени работу

 
Сохранить страницу:

2146. Иван
Иван
ответить
→  Иван  # Игра Сокобан / 8. Сокобан - Игра - Управление / 2015-06-01 00:36

Классно получилось! И ведь это еще не последний урок.



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Программировать.
Трудности: Ничего.
Благодарю.
Научился: Идея использовать два массива: статичных и динамичных объектов.
Трудности: Насколько знаю, в C# операция присваивания для объектов означает просто копирование ссылки. Я привык (привет, C++ где бОльший контроль над объектами), что если адекватный автор неполиморфного класса разрешил и перегрузил конструктор копирования и оператор присваивания по lvalue reference, то при копировании выполняется deep copy содержимого. Напоролся на разницу в семантике двух языков, в своем написанном коде минут 15 думал, почему же данные затираются. Все работает, а данные кривые. Опять-таки, помог отладчик. Наверняка в C# есть встроенные возможности по копированию, deep или shallow, пока что не сталкивался и не изучал, двоечник)
Мне понравилась идея использовать два массива, один для неподвижных объектов, другой для подвижных. Написал все по уроку, понравился класс Game, все аккуратно. Уже в конце урока пошли дополнения, разные варианты, с чата предлагали решение проверки на доступность уровней. Код проверки, на мой взгляд, оказался не в том месте, этим должен заниматься класс Game, поэтому переделывал по себя. Попутно взялся за свой класс загрузчика уровня, наконец, довел его до состояния, с которым мне удобнее работать. Позже изменю метод save, он у меня не ахти - длинный, некрасивый и дублирует код. Все-таки здорово, когда уже есть функционал, которым можно крутить как угодно. Писать с нуля сложнее, надо много думать об интерфейсе клиента и прочее. Интерфейс игры пока что не менял, есть где вести доработки, например фон Белки, когда она стоит на плитке-кладовке. Данила предложил подумать над плитками. Ждем разбора полетов на следующем вебинаре) Игра понравилась, здорово, спасибо Евгений Витольдович, база отличная, теперь идем дальше, к улучшениям и триксам)