Coder Social home page Coder Social logo

poker_go's Introduction

Задача

Формат входных данных

В директории dataset находится 100 файлов с игральными картами. Код, который сгенерировал эти карты, представлен в этом же репозитории и доступен для изучения. Карты представлены как unicode изображение масти и номинала

Например, в dataset/dat0.csv находятся карты:

♣J,♦7,♣K,♦9,♥7,♥A,♥3,♥Q,♥7,♠6,♣9,♥3,♠Q,♦J

Формат выходных данных

Ваша программа должна создать новый файл results/data0.csv, в котором содержатся все возможные покерные комбинации, кроме старшей карты1, не учитывая дубликаты:

♣J,♦7,♦9,♠Q,♦J | Pair
♣J,♦7,♥7,♥3,♦J | Two Pairs
♣J,♦7,♥7,♥Q,♦J | Two Pairs
... (пропущено для краткости)

В вашем репозитории должны быть:

  • Код, генерирующий комбинации
  • Сами комбинации в виде csv файла в директории results

Ограничения и правила

Покерные комбинации

Покер --- игра из n количества карт, из которых нужно выстроить наиболее сильную комбинацию из 5 карт

В задании используются все покерные комбинации по старшинству от Пары

Полный список комбинаций (по возрастанию силы):

Название Описание Пример
Pair 2 карты одинакового номинала и 3 любые карты ♣J,♦7,♦9,♠Q,♦J
Two Pairs 2 карты одинакового номинала, 2 карты другого одинакового номинала, 1 любая карта ♣J,♦7,♥7,♥3,♦J
Three of a Kind 3 карты одинакового номинала и 2 любые карты ♣7,♦7,♥7,♥3,♦J
Straight 5 карт последовательного номинала ♣7,♦10,♥9,♥8,♦J
Flush 5 карт одинаковой масти ♣2,♣5,♣A,♣10,♣J
Full House 3 карты одинакового номинала и 2 карты другого одинакового номинала (Three of a Kind + Pair) ♣7,♦7,♥7,♥3,♦3
Four of a kind 4 карты одинакового номинала + любая карта ♣7,♦7,♥7,♥3,♠7
Straight Flush 5 карт последовательного номинала и одной масти ♣2,♣3,♣A,♣4,♣5
  • Туз может стоять до 2, так и после A
    • A,2,3,4,5 --- является Straight
    • A,K,Q,J,10 --- является Straight
  • Если комбинация "дает" несколько вариантов, всегда берется самый сильный

Технические требования

Обязательные:

  • Поиск комбинаций для каждого файла в dataset ведется в отдельной горутине (1 горутина на обработку 1 файла)
  • Дубликаты карт в исходных файлах не учитываются в поиске комбинаций
  • Комбинации в выходном файле не должны повторяться
    • Имеются ввиду точные дубликаты всех 5 карт

Опциональные:

  • Можно выделить еще горутины в процессе поиска всех возможных комбинаций
  • Выходной список может быть отсортирован по силе комбинации

Дополнительная информация

  • В каждом файле от 10 до 17 карт, с возможными дубликатами
    • Получается, что есть от 252 до 6188 комбинаций по 5 карт из исходных
  • Deadline: неделя

Полезные материалы

Не все материалы здесь обязательно нужны, чтобы выполнить задание, но я собрал здесь то, что считаю полезным для ознакомления на практике с горутинами и выполнением этого задания

Footnotes

  1. Старшая карта --- комбинация в отсутствие других комбинаций, когда у вас самая старшая карты выше, чем самая старшая у противника

poker_go's People

Contributors

manarakozhamuratova avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.