Lesson 1
Добавить свои объекты в иерархию объектов, чтобы получился красивый задний фон, похожий на полёт в звёздном пространстве.
*Заменить кружочки картинками, используя метод DrawImage.
*Разработать собственный класс заставка SplashScreen, аналогичный классу Game в котором создайте собственную иерархию объектов и задайте их движение.
Предусмотреть кнопки - Начало игры, Рекорды, Выход. Добавить на заставку имя автора.
Lesson 2
Построить три класса (базовый и 2 потомка), описывающих некоторых работников с почасовой оплатой (один из потомков) и фиксированной оплатой (второй потомок).
- Описать в базовом классе абстрактный метод для расчёта среднемесячной заработной платы. Для «повременщиков» формула для расчета такова: «среднемесячная заработная плата = 20.8 * 8 * почасовая ставка», для работников с фиксированной оплатой «среднемесячная заработная плата = фиксированная месячная оплата».
- Создать на базе абстрактного класса массив сотрудников и заполнить его.
- *Реализовать интерфейсы для возможности сортировки массива, используя Array.Sort().
- *Создать класс, содержащий массив сотрудников, и реализовать возможность вывода данных с использованием foreach.
Переделать виртуальный метод Update в BaseObject в абстрактный и реализовать его в наследниках.
Сделать так, чтобы при столкновениях пули с астероидом они регенерировались в разных концах экрана.
Сделать проверку на задание размера экрана в классе Game. Если высота или ширина (Width, Height) больше 1000 или принимает отрицательное значение, выбросить исключение ArgumentOutOfRangeException().
*Создать собственное исключение GameObjectException, которое появляется при попытке создать объект с неправильными характеристиками (например, отрицательные размеры, слишком большая скорость или позиция).
Lesson 3
Добавить космический корабль, как описано в уроке.
Добработать игру «Астероиды»
- Добавить ведение журнала в консоль с помощью делегатов;
- *Добавить это и в файл.
Разработать аптечки, которые добавляют энергию.
Добавить подсчет очков за сбитые астероиды.
*Добавить в пример Lesson3 обобщенный делегат.
Lesson 4
Добавить в программу коллекцию астероидов. Как только она заканчивается (все астероиды сбиты), формируется новая коллекция, в которой на 1 астероид больше.
Дана коллекция List, требуется подсчитать, сколько раз каждый элемент встречается в данной коллекции:
- для целых чисел;
- *для необобщенных коллекции;
- *используя Linq.
*Дан фрагмент программы:
Dictionary<string, int> dict = new Dictionary<string, int>()
{
{"four",4 },
{"two",2 },
{ "one",1 },
{"three",3 },
};
var d = dict.OrderBy(delegate(KeyValuePair<string,int> pair) { return pair.Value; });
foreach (var pair in d)
{
Console.WriteLine("{0} - {1}", pair.Key, pair.Value);
}
- Свернуть обращение к OrderBy с использованием лямбда-выражения $.
Lesson 5
Создать WPF-приложение для ведения списка сотрудников компании.
Создать сущности Employee и Department и заполните списки сущностей начальными данными.
Для списка сотрудников и списка департаментов предусмотреть визуализацию (отображение). Это можно сделать, например, с использованием ComboBox или ListView.
Предусмотреть возможность редактирования сотрудников и департаментов. Должна быть возможность изменить департамент у сотрудника. Список департаментов для выбора, можно выводить в ComboBox, это все можно выводить на дополнительной форме.
Предусмотреть возможность создания новых сотрудников и департаментов. Реализовать данную возможность либо на форме редактирования, либо сделать новую форму.
Lesson 6
Изменить WPF-приложение для ведения списка сотрудников компании (из урока №5), используя связывание данных, ListView, ObservableCollection и INotifyPropertyChanged.
Создать сущности Employee и Department и заполнить списки сущностей начальными данными.
Для списка сотрудников и списка департаментов предусмотреть визуализацию (отображение). Это можно сделать, например, с использованием ComboBox или ListView.
Предусмотреть возможность редактирования сотрудников и департаментов. Должна быть возможность изменить департамент у сотрудника. Список департаментов для выбора, можно выводить в ComboBox, это все можно выводить на дополнительной форме.
Предусмотреть возможность создания новых сотрудников и департаментов. Реализовать данную возможность либо на форме редактирования, либо сделать новую форму.