Перемешайте и раздайте колоду карт с ограничениями

Сначала факты.

В игре в бридж всего 4 игроков с именами Север, Юг, Восток и Запад.

Все 52 карты раздаются по 13 карт. каждому игроку.

Существует система подсчета чести. Туз = 4 очка, Король = 3 очка, Дама = 2 очки и валет = 1 очко.

Я создаю «карточного дилера» с ограничениями, где, например, вы можете сказать, что в руке, сданной на север, должно быть ровно 5 пик и от 13 до 16 очков чести, остальные руки случайны.

Как мне добиться этого, не влияя на "случайность" наилучшим образом, а также имея эффективный код?

Я кодирую на C # и .Net, но некоторые идеи в псевдокоде будут хорошо!

7
задан StefanE 28 February 2011 в 12:54
поделиться