Здравствуйте, гость Правила · Помощь

»  мизер: вопрос знатокам, играю мизер, не знаю чем ходить Подписаться | Сообщить другу | Версия для печати
      » 7/07/2017, 17:18,  Кутруповезет 
Между прочим, коллеги. А ведь вполне исторические процессы происходят в мире преферанса. Программа для идеальной игры в преферанс становится реальностью. Как мне кажется, с таким темпом через несколько лет задача будет полностью решена, а там, глядишь, и возможности компьютеров подтянутся.

Преферанс как живая игра, видимо, выживет. Но у вас, Николай, есть реальный шанс стать могильщиком преферанса-оnline. Если, конечно, доведете дело до конца и если откроете доступ к окончательному варианту.
      » 7/07/2017, 17:31,  extasy 
Кутруповезет ( "7/".$m["июл"]."/2017," 17:18)
Между прочим, коллеги. А ведь вполне исторические процессы происходят в мире преферанса. Программа для идеальной игры в преферанс становится реальностью. Как мне кажется, с таким темпом через несколько лет задача будет полностью решена, а там, глядишь, и возможности компьютеров подтянутся.

Преферанс как живая игра, видимо, выживет. Но у вас, Николай, есть реальный шанс стать могильщиком преферанса-оnline. Если, конечно, доведете дело до конца и если откроете доступ к окончательному варианту.

На самом деле, до создания оптимального робота еще очень много работы. Я на себя такой хомут не возьму, хотя это и посильная задача.

Я вижу свою задачу в двух моментах:

1. Создание точного инструмента для развития научной составляющей преферанса.
2. Создание базовой программной платформы, которая в перспективе может быть расширена до интеллектуальной системы любой сложности.



--------------------
the elephant has you..
      » 7/07/2017, 17:46,  Байкер 
Кутруповезет ( "7/".$m["июл"]."/2017," 17:18)
А ведь вполне исторические процессы происходят в мире преферанса. Программа для идеальной игры в преферанс становится реальностью. Как мне кажется, с таким темпом через несколько лет задача будет полностью решена, а там, глядишь, и возможности компьютеров подтянутся.

По мне это очевидный тезис, ибо преферанс в своей основе счетная (и логическая) игра. Что означает: никакой человек не устоит против "правильного" алгоритма. По той простой причине, что возможности счета и запоминания у "машины" и человека просто несопоставимы.
Однако, сейчас в такое не поверите, 15...17 лет назад эта простая и очевидная мысль была недоступна для понимания подавляющему большинству тутошних форумчан, которое тогда было очень многочисленно. И это большинство буквально смеялось мне в лицо, когда я озвучивал соответствующий тезис. Сейчас такие вообще навряд ли найдутся, а если найдутся, будут выглядеть просто профанами в проблеме. )
      » 7/07/2017, 17:58,  Кутруповезет 
extasy ( "7/".$m["июл"]."/2017," 17:31)
Кутруповезет ( "7/".$m["июл"]."/2017," 17:18)
Между прочим, коллеги. А ведь вполне исторические процессы происходят в мире преферанса. Программа для идеальной игры в преферанс становится реальностью. Как мне кажется, с таким темпом через несколько лет задача будет полностью решена, а там, глядишь, и возможности компьютеров подтянутся.

Преферанс как живая игра, видимо, выживет. Но у вас, Николай, есть реальный шанс стать могильщиком преферанса-оnline. Если, конечно, доведете дело до конца и если откроете доступ к окончательному варианту.

На самом деле, до создания оптимального робота еще очень много работы. Я на себя такой хомут не возьму, хотя это и посильная задача.

Я вижу свою задачу в двух моментах:

1. Создание точного инструмента для развития научной составляющей преферанса.
2. Создание базовой программной платформы, которая в перспективе может быть расширена до интеллектуальной системы любой сложности.

Уже выполнена прекрасная работа, поздравляю. Я бы не останавливался, ведь это действительно увлекательно.

По объемам - розыгрыш мизера уже готов, игра на взятки в основном тоже. Вистование сделать вполне реально с помощью перебора всех вариантов или ММК. Сложнее всего, видимо, распасы, но и там не вижу принципиальных препятствий.
      » 7/07/2017, 17:58,  Pochemuk 
extasy ( "7/".$m["июл"]."/2017," 17:07)
Pochemuk ( "7/".$m["июл"]."/2017," 16:31)

Надо писать так:

{7 (10) В} ~ {7 10 (Т)}
{7 (10) Д} ~ {7 В (Т)}
{7 (10) К} ~ {7 Д (Т)}
{7 (10) Т} ~ {7 К (Т)}
{7 10 (В)} ~ {7 10 (Т)}


Да, абсолютно верно!

Ну а в чем тогда сложность?

Только надо не на векторе из восьми переменных операции проводить, а сразу на uint16. Тогда битовыми сдвигами совсем просто.

Грубо так (но в реальной программе, разумеется. можно сделать изящнее):

Накладываем двухбитовую скользящую маску.
Если в процессе "скольжения" маски встретилась встретился признак "карта в сносе", то исключаем ее с этого места со сдвигом оставшейся части uint16 на 2 бита. После чего в старшие 2 бита записываем признак "карта в носе".

На практике сделал бы совсем не так.

Взял бы uint32. В старшие 16 бит записал бы код расклада. В младшие 16 бит записал бы повторяющийся код "карта в сносе". Маской (НЕ скользящей) проверял бы младшие 2 бита из этих старших 16 бит. И делал бы либо линейный сдвиг на 2 бита всего uint32 (карта не в сносе), либо сдвиг на 2 бита только старшей половины (uint16).

После 8 таких операций нужно над младшим uint16 сделать циклический сдвиг на 2 бита столько раз, сколько раз встретились карты из сноса.

НО!!!

Если код "карта в прикупе" не 2, а 0, то алгоритм заметно упрощается:
* В начале младший uint16 достаточно просто обнулить, а не записывать в него хитрую последовательность двоек.
* В конце не надо делать циклический сдвиг. Достаточно сделать простой линейный - старшие биты автоматически заполнятся нулями.

Но есть и промежуточное хитрое решение ... smile.gif Позволит не менять коды карт, но не использовать циклический сдвиг wink.gif
      » 7/07/2017, 18:02,  Pochemuk 
Кстати, Николай ...

Есть такая идея:

Ранжировать дырки по опасности. И рассматривать только те сносы, которые не ухудшают ситуацию в масти.

например, не делают из недырявой масти дырявую. Не делают из дыры на 0-1 взятки дыру на 0-1-2 взятки.

И т.д.
      » 7/07/2017, 18:07,  Кутруповезет 
extasy ( "7/".$m["июл"]."/2017," 17:31)


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

Звучит угрожающе. На что это замах - не на искусственный интеллект?
      » 7/07/2017, 18:26,  extasy 
Андрей, оказывается все еще проще.

Пусть vector - закодированная в 0, 1, 2 восьмикарточная масть.

for (auto it = vector.begin(); it < vector.end(); ++it)
{
if (*it == 2)
std::rotate( it, it + 1, vector.end() );
}
Вот и все, мы склеили любую комбинацию масти в классы эквивалентности. Дальше просто упаковываем vector в int16.

Протестил на мизере. 8169 сносов склеилось в 3387. Правда, я ожидал более существенного эффекта..
Кстати, мизер {"sJ17 cJ97 dJ87 hQ", "", "", ""} плох в плане склейки, ибо не имеет длинных мастей с непрерывными последовательностями карт.
Предполагаю, что на других структурах эффект от склейки может быть в разы лучше.

Это сообщение отредактировал extasy - 7/07/2017, 18:35

--------------------
the elephant has you..
      » 7/07/2017, 18:33,  extasy 
Кутруповезет ( "7/".$m["июл"]."/2017," 18:07)
extasy ( "7/".$m["июл"]."/2017," 17:31)


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

Звучит угрожающе. На что это замах - не на искусственный интеллект?

Я имел ввиду преферансные интеллектуальные системы )

Зависит от энтузиазма. Можно создать систему, которая будет подстраиваться под оппонента и находить оптимальные решения в рамках несовершенства соперника.

--------------------
the elephant has you..
      » 7/07/2017, 18:44,  extasy 
Pochemuk ( "7/".$m["июл"]."/2017," 18:02)
Кстати, Николай ...

Есть такая идея:

Ранжировать дырки по опасности. И рассматривать только те сносы, которые не ухудшают ситуацию в масти.

например, не делают из недырявой масти дырявую. Не делают из дыры на 0-1 взятки дыру на 0-1-2 взятки.

И т.д.

Сомнительно )

Чтобы понять опасная дырка или нет ее надо сначала оценить.. Оценка происходит путем перебора. Ты предлагаешь создать альтернативный инструмент оценки сноса?

На мизере фильтруются все сносы, содержащие 7ку и это очень эффективная вещь.
15246 сносов фильтруются в 8169 и склеиваются в итоге в 3387.

--------------------
the elephant has you..
« Предыдущая тема | Перечень тем | Следующая тема »
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей: