Определение выигрышной руки маджонг - PullRequest
1 голос
/ 24 июня 2011

Я пытаюсь определить выигрышную комбинацию в маджонге, у кого-нибудь есть советы или рабочая формула?

Игра в маджонг похожа на джин-рамми с 13 картами, сетами по 4,3 или флешами по 3. Выигрышная рука включает украденную или данную карту, которая насчитывает 14 карт. Выигрышная комбинация состоит из:

  • 3 комплекта из 4 плюс 1 пара
  • 4 комплекта по 3 плюс 1 пара.
  • 2 комплекта по 4 плюс 2 комплекта по 3, без пары.
  • Флеши в наборах по 3, но все один комплект - бонус.
  • Все пары также опция.

Есть также точки, связанные с этим.

Любое руководство или помощь будет принята с благодарностью. Чтобы следить и добавлять информацию, это может помочь другим, и может помочь нам ответить на наш собственный вопрос,

Я стремлюсь к правилам гонконгского маджонга. Когда я работаю с алгоритмом, я изучаю удаление улиц, а в случае неудачи - удаление набора.

works when I have a b3333 b4 b5 b666
check b345 - remove
check b345 fail, b333 is a set, remove
check b678, fail, b666 is a set.
none left, Win</p>

<p>but when I have a b222 b33 b44 b5. I need to skip and restart.
check b234 ok, remove
check b234 ok, remove
check b234 fail, single b2 (Failed hand)
restart, skip 1.
check b345 ok, remove
end, return to start
check b234 ok remove
check b234 fail, b22 is pair.
none left win.</p>

<p>but this method is troublesome, because there could be a double state to retry.
b222 b33 b44 b555 b66 b77
check b234 ok, remove
check b234 ok, remove
check b234 fail, resart, skip 1.
check b345 ok, remove
check b345 ok, remove
check b567 ok, remove
check b678 fail, no 7, skip one rety
есть идеи?

1 Ответ

0 голосов
/ 10 января 2014

Я реализовал успешную игру в маджонг в Android. Алгоритм, который я использовал, был следующим:

1) Подсчитайте вхождение каждой плитки в массив из 34 2) Удалить все возможные пары 3) Рекурсивно проверить оставшиеся плитки на тройки

Надеюсь, что поможет

...