Мы продолжаем эксперименты с самым популярным и востребованным шаблоном проектирования: "Итератор". На этом уроке мы реализуем алгоритм перемешивания колоды. Для этого мы воспользуемся нестандартным способом, который напоминает игру: "Что? Где? Когда?".
Дата отправки отчёта:
17 апреля 2018 г.
Задание выполнено: за
18 мин.
Чему научился:
Запишем числа от 1 до N. Выберем случайное число k между единицей и числом оставшихся чисел. Вычеркиваем k-е оставшееся число, отсчитывая числа в порядке возрастания, и записываем его где-нибудь. Повторяем шаг 2, пока все числа не будут выбраны. Последовательность записанных на шаге 3 чисел является случайной перестановкой
Оценка видео-уроку:
Оцени работу
Сохранить страницу:
Отчёт оценивали: 16218. Дмитрий+11. Евгений Волосатов+13922. Александр+117575. drWatson+19156. Dimon+19980. Timoha+1459. Сергей Сергеевич+117443. WildOrc+14395. Денис+110558. Иван Воронин+1162. Андрей+116496. Pavlin+116066. Bodrik_torf+18275. Tekashnik+116396. Денис+110494. Алексей В.+117606. Виктор+16452. Кирилл Шмойлов+1791. Валерий Жданов+13747. Сергей+15394. Anton+117947. Dmitry Sinitsin+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Свой вариант перемешивания это классическая перестановка рандомных элементов между собой при проходе по массиву до выдачи карт. Первый скрин это предложенный метод волчка, второй скрин это классическое перемешивание методом перестановки.
Научился: Алгоритму выборку аля "Что? Где? Когда?" Вынес константы в класс Program() и сделал их статичными
Оптимизировал класс Cards(), теперь данные о размере колоды берутся на основе количества карт и мастей.
Так же и при формировании колоды вместо числа использована константа.
Названия карт и мастей теперь на русском языке =)
з.ы.
Можно было использовать список и выдёргивая оттуда рандомную карту в пределах размера текущего списка, после чего удалять выбранную карту и проверять, не равен ли список нулю, этот подход был бы более ООП =)
Но вариант с массивом работает быстрее!!!