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

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

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

Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование

  • На этом уроке мы проверим корректность ваших алгоритмов.
    Для этого мы прогоним супер-тест по генерации всех вариантов.

    * Выполнять этот урок необязательно.

    Ссылка:
    Сайт с результатами тестирования
  • Дата отправки отчёта: 22 мая 2018 г.
  • Задание выполнено: за 3 час. 41 мин.
  • Чему научился: Сделал Parallels.Foreach для ускорения
  • Оценка видео-уроку:
Отчёт от 10895 за Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование




Оцени работу

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

10080. --
FireWolf
FireWolf
ответить
→  Danil42Russia  # Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование / 2018-05-23 00:33

Скажи пожалуйста, ошибки были в выдаваемых результатах? Если параллельный метод рекурсивно вызывает сам себя, то у меня начинают вылезать ошибки на всех глубинах просчёта, если параллельный метод вызывает не параллельный, то только на глубине 1. Параллельный метод у меня такой:

        static int NextMovesParallel(int step, Chess chess)
        {
            if (step == 0) return 1;
            int count = 0;
            Parallel.ForEach(chess.YieldValidMoves(),
                            moves => { Interlocked.Add(ref count, NextMovesParallel(step - 1, chess.Move(moves))); });
            return count;
        }

Если же пробовать экспериментировать (делать статическую переменную, сначала подсчитывать что насчитает Parallels.Foreach а потом суммировать в Interlocked и т.д.), то результаты из "слегка недостоверных" превращаются в "абсолютно невероятные".


10895. --
Danil42Russia
Danil42Russia
ответить
→  FireWolf  # Шахматы по сети / Алгоритмы. VIP. Шахматное супертестирование / 2018-05-26 16:56

Да, тоже столкнулся с данной проблемой, решил провести тесты на разных системах и вот что получилось
За основу брал (rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1) с глубиной 4
Ноутбук (Intel core i3) ->197268, 197288, 197295
Компьютер (Intel core i5) -> 197282 197285 197286
Сервер (2х Intel Xeon X5430) -> 197281 197282 197314


  • Отчёт оценивали:
    6452Кирилл Шмойлов+1   17947Dmitry Sinitsin+1   791Валерий Жданов+1   16066Bodrik_torf+1   Посетитель+1   17443WildOrc+1   3850Григорий+1   3922Александр+1   17606Виктор+1   10494Алексей В.+1   8932Алекс+1   8707Володимир+1   14008Сергей +1   18493Evgenii Kudriavtcev+1   10080FireWolf+1   9980Timoha+1   16218Дмитрий+1   1Евгений Волосатов+1   4395Денис+1   6644valerys Nikola+1   5394Anton+1   3747Сергей+1   459Сергей Сергеевич+1   Посетитель+1  

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





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

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

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

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


Научился: Проходить супер тест.
Трудности: Найти места в коде откуда можно считать правильные параметры шага, взятия, рокировки. Мы вызываем методы много раз за ход при различных проверках, поэтому значения считанные из метода где происходит проверка например на шаг не верны.



Научился: Научился выполнять тестирование шахматных алгоритмов. Нашел и исправил ошибки в коде.