Skip to content

VovaGul/DecksOfCards

Repository files navigation

DecksOfCards

Тестовое задание: редактор колод.

ТЗ

Оформление:

  • Программа представляет собой консольное приложение на языке C#.
  • Программа должна корректно обрабатывать вероятные ошибки и исключения.
  • Использование сторонних библиотек допускается.

Задачи:

  1. Реализовать программу по созданию именованной колоды, состоящей из именованных карт (7 Трефы, 2 Черви, 0 Шут (например, для колоды Таро)).
  2. Реализовать вывод результатов работы приложения на консоль (например, название колоды, кол-во карт в ней, название карт и булева - переменная, сигнализирующая, отсортирована колода или нет).
  3. Задать следующие ограничения: кол-во карт в колоде не может превышать 100 штук, колода не должна содержать дубликатов. В случае нарушения условий необходимо обработать ошибки и вывести соответствующие предупреждения пользователю.
  4. В реализованную программу добавить функционал по перемешиванию колоды карт в псевдослучайном порядке.
  5. Добавить сортировку колоды карт по возрастанию, которая принимает экземпляр класса Колода и возвращает отсортированную колоду карт.
  6. Добавить сохранение состояния приложения в файл json. Под состоянием приложения понимаются сгенерированные колоды карт, состояние колоды (отсортированная колода или нет), созданные карты, их имена и прочие данные, если имеются. Не должно наблюдаться проблем при переносе сохранений от пользователя пользователю.

Примеры запуска программы:

Программа имеет загруженные колоды в качестве примера работы.

вывести справку по программе:

DecksOfCards.exe help

вывести все колоды:

DecksOfCards.exe getall

вывести конкретную колоду:

DecksOfCards.exe get 422335352

сортировать колоду:

DecksOfCards.exe sort 422335352

вывести ее снова:

DecksOfCards.exe get 422335352

Справка по шаблону файла, который принимает команда add:

файлы, считываемые командой add, должны иметь определенный шаблон и иметь расширение .json.

шаблон:

[
  {
    "name": "Имя колоды1",
    "Cards": [
      {
        "name": "Имя карты1",
        "SeniorityInSorting": <приоритет в сортировке карты1 (число)>
      },
      {
        "name": "Имя карты2",
        "SeniorityInSorting": <приоритет в сортировке карты1 (число)>
      }
    ]
  },
  {
    "name": "Имя колоды2"
    "Cards": [
      {
        "name": "Имя карты1",
        "SeniorityInSorting": <приоритет в сортировке карты1 (число)>
      },
      {
        "name": "Имя карты2",
        "SeniorityInSorting": <приоритет в сортировке карты1 (число)>
      }
    ]
  }
]

Releases

No releases published

Packages

 
 
 

Languages