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

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

Игры со Спрайтами / Домино. Динамическая пирамида

  • На этом уроке мы нарисуем пирамидку из доминошек.
    Для отображения каждой плашки используется Label.
    Label'ы мы будем создавать динамически, как в сказке.
  • Дата отправки отчёта: 1 июля 2016 г.
  • Задание выполнено: за 1 час. 00 мин.
  • Чему научился: В C# оочень не хватает явных ссылочных типов данных
  • Что было сложным: Изменить значение элемента массива не обращаясь к массиву напрямую
  • Комментарии: • Мне из прошлого урока жутко не понравилась сортировка и двумерный массив, в которых мы всё пихали, так что я реализовал функцию GetPlateByNum, которая получает элемент массива с указанным номером (0-27 в нашем случае), кстати, интересная получилась задачка для 3-х часов ночи =) И нормально-таки перемешал доминошки (на скриншоте самая верхняя функция).
    И заменил массив на ступенчатый. Честно, не понимаю, чем его неудобно использовать (вы так говорили)?
    Почему вы так не делали? За одно и практика с таким типом массивов была бы и задачку по нахождению элемента массива в виде пирамидки по его порядковому номеру (для нормального перемешивания), да и алгоритм перемешивания массива пригодился бы (ну, может алгоритм - это сильно сказано, но менять рандомные доминошки местами 100 - точно не он)

    • Кстати, пока это всё дело реализовывал, столкнулся с проблемой, что в C# не видно, хранится ли в переменной сам объект или ссылка на него, и это очень затрудняет написание кода.. Например: в переменных string, ArrayList, да и вообще любого класса храниться ссылка, а в bool. int и остальных struct - сам объект. Нужно какую-то статью на эту тему почитать...

    • Зачем создавать две переменные plateWhdth и plateHeight, если есть такой тип данных, как Size, как раз для таких случаев и предназначенный??
    • И зачем всё-таки вы в прошлом уроке делали protected методы, а не privat?
  • Оценка видео-уроку:
Отчёт от 9567 за Игры со Спрайтами / Домино. Динамическая пирамида




Оцени работу

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

1. Евгений Волосатов
Евгений Волосатов
ответить
→  Максим  # Игры со Спрайтами / Домино. Динамическая пирамида / 2016-07-01 21:44

Всё это максим нужно для того, чтобы ты спрашивал, возмущался и начинал действовать, даже в 3 часа ночи.
Если бы тут всё вылизано было - такого ажиотажа не дождались бы.


  • Отчёт оценивали:
    7645Александр Львович+1   9237Mais+1   1Евгений Волосатов+1   7119Новопашин Владимир+1   8886Михаил Ермишин+1   4467Alcatraz+1   4992Николай+1   689Igorenzia+1   1803Саша+1   9263Андрей Н.+1   6452Кирилл Шмойлов+1   10233Виталий+1   10494Алексей В.+1   4699Сергей Витальевич+1   10743Анатолий0   9971Юрий+1   3747Сергей+1   2639Морозов Юрий Александрович+1   7980Сергей Лузум+1   10365Rita+1   4060Игорь+1  

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




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

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

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

Ты в любой момент сможешь отписаться от рассылки.
Научился: Позиционировать лейблы) Пытался делать это не подсматривая в урок, но признаюсь пару раз подсмотрел, время к сдаче урока поджимает, а еще половины толком не сделал.
Трудности: Разобраться с нужным позиционированием лейблов.
Спешу сделать вовремя
Научился: Повторил порйденное
Трудности: В какой то момент при выводе массива лейблов на панель случился затык в понимании, почему же i и j меняются местами при определении координат лейбла. Пока не нарисовал , не разобрался в чем там дело. А дело в том, как мы двойной цикл задаем.
Строго говоря, для соответствия массива доминошек нормальной системе координат нам нужно писать не for (int x = 0; x <= maxPoints; x++) for (int y = 0; y <= x; y++) map[x, y] = new Plate(x, y); А наоборот: for (int y = 0; y <= maxPoints; y++) for (int x = 0; x <= y; x++) map[x, y] = new Plate(x, y); Применять это как к логике , так и к графике.