Skip to content

[C#] source - geekbrains | Станислав Байраковский

Notifications You must be signed in to change notification settings

dolgosheev/-geekbrains-CsharpCourse2

Repository files navigation

Lesson 1

Task 1

Добавить свои объекты в иерархию объектов, чтобы получился красивый задний фон, похожий на полёт в звёздном пространстве.

Task 2

*Заменить кружочки картинками, используя метод DrawImage.

Task 3

*Разработать собственный класс заставка SplashScreen, аналогичный классу Game в котором создайте собственную иерархию объектов и задайте их движение.

Предусмотреть кнопки - Начало игры, Рекорды, Выход. Добавить на заставку имя автора.

Lesson 2

Task 1

Построить три класса (базовый и 2 потомка), описывающих некоторых работников с почасовой оплатой (один из потомков) и фиксированной оплатой (второй потомок).

  • Описать в базовом классе абстрактный метод для расчёта среднемесячной заработной платы. Для «повременщиков» формула для расчета такова: «среднемесячная заработная плата = 20.8 * 8 * почасовая ставка», для работников с фиксированной оплатой «среднемесячная заработная плата = фиксированная месячная оплата».
  • Создать на базе абстрактного класса массив сотрудников и заполнить его.
  • *Реализовать интерфейсы для возможности сортировки массива, используя Array.Sort().
  • *Создать класс, содержащий массив сотрудников, и реализовать возможность вывода данных с использованием foreach.

Task 2

Переделать виртуальный метод Update в BaseObject в абстрактный и реализовать его в наследниках.

Task 3

Сделать так, чтобы при столкновениях пули с астероидом они регенерировались в разных концах экрана.

Task 4

Сделать проверку на задание размера экрана в классе Game. Если высота или ширина (Width, Height) больше 1000 или принимает отрицательное значение, выбросить исключение ArgumentOutOfRangeException().

Task 5

*Создать собственное исключение GameObjectException, которое появляется при попытке создать объект с неправильными характеристиками (например, отрицательные размеры, слишком большая скорость или позиция).

Lesson 3

Task 1

Добавить космический корабль, как описано в уроке.

Task 2

Добработать игру «Астероиды»

  • Добавить ведение журнала в консоль с помощью делегатов;
  • *Добавить это и в файл.

Task 3

Разработать аптечки, которые добавляют энергию.

Task 4

Добавить подсчет очков за сбитые астероиды.

Task 5

*Добавить в пример Lesson3 обобщенный делегат.

Lesson 4

Task 1

Добавить в программу коллекцию астероидов. Как только она заканчивается (все астероиды сбиты), формируется новая коллекция, в которой на 1 астероид больше.

Task 2

Дана коллекция List, требуется подсчитать, сколько раз каждый элемент встречается в данной коллекции:

  • для целых чисел;
  • *для необобщенных коллекции;
  • *используя Linq.

Task 3

*Дан фрагмент программы:

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-приложение для ведения списка сотрудников компании.

Task 1

Создать сущности Employee и Department и заполните списки сущностей начальными данными.

Task 2

Для списка сотрудников и списка департаментов предусмотреть визуализацию (отображение). Это можно сделать, например, с использованием ComboBox или ListView.

Task 3

Предусмотреть возможность редактирования сотрудников и департаментов. Должна быть возможность изменить департамент у сотрудника. Список департаментов для выбора, можно выводить в ComboBox, это все можно выводить на дополнительной форме.

Task 4

Предусмотреть возможность создания новых сотрудников и департаментов. Реализовать данную возможность либо на форме редактирования, либо сделать новую форму.

Lesson 6

Изменить WPF-приложение для ведения списка сотрудников компании (из урока №5), используя связывание данных, ListView, ObservableCollection и INotifyPropertyChanged.

Task 1

Создать сущности Employee и Department и заполнить списки сущностей начальными данными.

Task 2

Для списка сотрудников и списка департаментов предусмотреть визуализацию (отображение). Это можно сделать, например, с использованием ComboBox или ListView.

Task 3

Предусмотреть возможность редактирования сотрудников и департаментов. Должна быть возможность изменить департамент у сотрудника. Список департаментов для выбора, можно выводить в ComboBox, это все можно выводить на дополнительной форме.

Task 4

Предусмотреть возможность создания новых сотрудников и департаментов. Реализовать данную возможность либо на форме редактирования, либо сделать новую форму.

About

[C#] source - geekbrains | Станислав Байраковский

Resources

Stars

Watchers

Forks

Languages