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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Iterator / Iterator - BlackJack - Random

  • Мы продолжаем эксперименты с самым популярным
    и востребованным шаблоном проектирования: "Итератор".
    На этом уроке мы реализуем алгоритм перемешивания колоды.
    Для этого мы воспользуемся нестандартным способом,
    который напоминает игру: "Что? Где? Когда?".
  • Дата отправки отчёта: 7 сентября 2018 г.
  • Задание выполнено: за 3 час. 17 мин.
  • Чему научился: Этот  урок дался не очень сложно. С классом Random() мы знакомы уже давно, поэтому все сложилось
  • Что было сложным: Проблемы остались из одного из прошлых уроков, точнее появились они теперь, но это лишь результат. Метод GetAmount() для enum пришлось создавать как метод расширения в отдельном статическом классе(ExtentionEnum), (поскольку C# не позволяет в enum создавать методы) теперь же не могу его вывести через foreach() из-за невозможности приведения типов, ну экземпляр, собственно его создать не могу, чтобы обойти это. Посмотрим может удастся найти решение или придется переписать этот метод
  • Оценка видео-уроку:
Отчёт от 17606 за Iterator / Iterator - BlackJack - Random




Оцени работу

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

1. --
Евгений Волосатов
Евгений Волосатов
ответить
→  Виктор  # Iterator / Iterator - BlackJack - Random / 2018-09-09 09:48

может быть для енума в шарпе можно методы расширения создавать?


  • Отчёт оценивали:
    19869Артем+1   9913vip+1   3922Александр+1   17947Dmitry Sinitsin+1   791Валерий Жданов+1   1Евгений Волосатов+1   6452Кирилл Шмойлов+1   Посетитель+1   16218Дмитрий+1   16548Hofflin+1   Посетитель+1   17606Виктор+1   19525Александр Балбашов+1   Посетитель+1  

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

Ты в любой момент сможешь отписаться от рассылки.


Свой вариант перемешивания это классическая перестановка рандомных элементов между собой при проходе по массиву до выдачи карт. Первый скрин это предложенный метод волчка, второй скрин это классическое перемешивание методом перестановки.


Научился: Алгоритму выборку аля "Что? Где? Когда?"
Вынес константы в класс Program() и сделал их статичными Оптимизировал класс Cards(), теперь данные о размере колоды берутся на основе количества карт и мастей. Так же и при формировании колоды вместо числа использована константа. Названия карт и мастей теперь на русском языке =) з.ы. Можно было использовать список и выдёргивая оттуда рандомную карту в пределах размера текущего списка, после чего удалять выбранную карту и проверять, не равен ли список нулю, этот подход был бы более ООП =) Но вариант с массивом работает быстрее!!!