Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА: Уточнение некоторых правил для новой программы

Re: Уточнение некоторых правил для новой программы 24 Окт 2012 18:10 #9174

  • Jimmy
  • Jimmy's Avatar
  • Вне сайта
  • Мад...
  • Сообщений: 49
KenichiQ, если не сложно, что Вы думаете о моем алгоритме? Он верен? Ведь он вроде универсален, не сводится к конкретным случаям.
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 02:46 #9175

  • sanmaj
  • sanmaj's Avatar
  • Вне сайта
  • Мад...
  • Сообщений: 68
Я использую такой алгоритм.
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 05:41 #9176

  • Combo
  • Combo's Avatar
  • Вне сайта
  • Administrator
  • Сообщений: 3177
sanmaj wrote:
Я использую такой алгоритм.
sanmaj, я внимательно прочитал описание Вашего алгоритма, с первого раза, конечно же, не все нюансы открылмсь. Однако меня смутила строка из п.3:
"
не проверяем совместимость фанов самих с собой
"
Будьте аккуратны! В моей таблице совместимости фанов есть понятие "автосовместимости", т.е. вхождение одного и того же НОМЕРА фана в руку несколько раз. Так, например, фан "Четыре врозь" может входить 3 раза -- на РАЗНЫХ тайлах, конечно же.

P.S. А вообще-то я уже год как хочу нарисовать "Дерево фанов", т.е. соотнесение фанов на различные НЕПЕРЕСЕКАЮЩИЕСЯ группы,(таких групп, по оценкам, около 20). Смысл такого дерева -- помощь для применения в алгоритмах.
Последнее редактирование: 25 Окт 2012 05:45 от Combo.
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 06:28 #9177

  • sanmaj
  • sanmaj's Avatar
  • Вне сайта
  • Мад...
  • Сообщений: 68
Combo wrote:
sanmaj, я внимательно прочитал описание Вашего алгоритма, с первого раза, конечно же, не все нюансы открылмсь. Однако меня смутила строка из п.3:
"
не проверяем совместимость фанов самих с собой
"
Будьте аккуратны! В моей таблице совместимости фанов есть понятие "автосовместимости", т.е. вхождение одного и того же НОМЕРА фана в руку несколько раз. Так, например, фан "Четыре врозь" может входить 3 раза -- на РАЗНЫХ тайлах, конечно же.
Да, это учитывается фактом, что процедуры проверки на конкретные фаны возвращаю не просто логическое значение true/false, а именно количество фанов в руке (в большинстве случаев ответ будет 0/1). Для фанов, допускающих множественное наличие в руке - № 64 (Четыре врозь), № 65 (Двойной панг) и № 73 (Панг терминальных или благородных) - фунукция может вернуть и значение 2/3/4.
Про чоу-2 фаны, которые также могут появляться в руке во множественном количестве - отдельная история с собственной процедурой проверки сразу по совокупности фанов.
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 11:41 #9179

  • KenichiQ
  • KenichiQ's Avatar
Jimmy wrote:
KenichiQ, если не сложно, что Вы думаете о моем алгоритме? Он верен? Ведь он вроде универсален, не сводится к конкретным случаям.
вы имеете ввиду именно алгоритм определения принципа "одноразового подсчета"?
в целом я с вами согласен. у меня что-то похожее :)
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 13:54 #9180

  • Jimmy
  • Jimmy's Avatar
  • Вне сайта
  • Мад...
  • Сообщений: 49
Да, я говорил о принципе одноразового подсчета, спасибо!
Администратор запретил публиковать записи.

Re: Уточнение некоторых правил для новой программы 25 Окт 2012 14:20 #9181

  • KenichiQ
  • KenichiQ's Avatar
Единственное что, я бы исключил некоторые фаны которые вы написали. Большинство из них перекрываются таблицей которую предоставил нам Combo

Я для себя выбрал трёхсетовые фаны - 23, 28, 30, 39, 41, 51.
и двухсетовые - 69, 70, 71, 72.

если в руке появляется трёхсетовый фан, то переменная отвечающая за этот принцип принимает значение 2, а значит единственный фан который мы сюда сможем добавить, это один из двухсэтовых. комбинации которые мы запихнули в трехсетовый фан - маркируем.
двухсэтовый может состоять из одной маркированой комбинации и оставшейся немаркированой. всё.

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

вот и весь алгоритм подсчета этого принципа. это если сжато. надеюсь что понятно описал :)
Последнее редактирование: 25 Окт 2012 14:20 от KenichiQ.
Администратор запретил публиковать записи.
  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.105 секунд
You are here Forum Форум сайта mahjong.ru Общий форум Маджонг и компьютер Уточнение некоторых правил для новой программы