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

»  Оценка карты играющего при заданном сносе, Определение результата игры для мизера и игры на взятки Подписаться | Сообщить другу | Версия для печати
      » 10/12/2017, 17:19,  Невозмутимый 
Принципиальной разницы нет. Дерево решений будет гораздо больше, поэтому создать GTO approximation будет труднее но это вопрос исключительно ресурсов.
В играх с неполной информацией нет ничего волшебного, боты потихоньку доедают людей и там.
      » 11/03/2018, 05:24,  Фрэд 
Сам ни разу не программист, но накатал такой простенький графический интерфейс. Чтобы он не был совсем унылым, заодно сюда же прикрутил и решение преферансных раскладов на открытых картах (с подсказками оптимальных ходов), хотя, конечно, этот велосипед был изобретён много лет назад. Но программа Словеснова у меня на ХР не работает, да и было интересно самому сделать. Экзешник залил на дропбокс: вот сюда.

Проверил на винде ХР (обязателен фреймворк 4.0),7,8,10. На десятке графика как-то странно расползается (а может, что-то с настройками монитора было не то), на остальных системах работает норм, только размеры шрифта различаются. Минимальный размер рабочего поля 1200х700, его можно менять в сторону увеличения (т.е. окно программы делать больше/меньше).

Скорость просчёта раскладов меня честно говоря пока не очень удовлетворяет, некоторые сложные расклады считаются десятки секунд (один расклад), особенно мизера на совсем не мизерной карте. У меня есть идеи, как ускорить, но нужно будет перелопатить значительную часть алгоритма. Конечно, в случае просчёта спектра раскладов (при фиксированной одной руке) каждый расклад будет считаться гораздо быстрее, но если их будет сто тыщ, пока не знаю, как долго это будет. Это я ещё не реализовал (хотя хочу). Также как и оптимальную игру против играющего на открытых картах, но с плавающим сносом.

Мне интересно, как у вас это будет работать. Может я не все глюки-баги отловил. Может ругаться антивирус, но не верьте ему, нет здесь вирусов)

Выглядит это примерно так: ссылка на яндекс-фотки

Можно, кстати, это рассматривать как задачу для "песочницы"wink.gif
      » 11/03/2018, 11:46,  Pochemuk 
Что-то я мало чего в этой программе понял ...

Выглядит она не совсем так, как на скрине с яндекс-фоток:

1. Нет левого меню.
2. Области интерфейса разделены линиями, что как-то хуже смотрится.
3. Нет области для сноса.
4. Зачем-то окно программы работает в режиме "всегда сверху".

Вобщем не смог даже толком раскидать карты, не говоря о том, чтобы запустить.
      » 11/03/2018, 16:52,  american_boy 
Если отбросить несущественное (интерфейс, который всегда можно подкрутить), а перейти сразу к главному – к попытке реализовать плавающий снос, то задача очень своевременная.
И почему только обращают внимание на несущественное? И так понятно, что интерфейс надо полностью менять. Не об этом же должна голова болеть! Мне это напомнило картину – Шуре Остап дал 2 т.р., а он с ними в автобусе за 5 копейками полез и просрал эти 2 т.р. Чел же о другом толкует. Ну как же так? Показывают белое – видят чёрное. Также мне это напоминает другую картину: в бою мы выпускаем ракету по вражескому самолёту, а он зажигает спичку, прикуривает, бросает её в сторону от самолёта и наша ракета не обращая внимания на самолёт, летит поражать эту спичку. Ну как так? Ещё пример: мы ползём по минному полю, разминируем мину за миной. И тут пролетает красивая птичка, а мы говорим: "ой, какая красивая птичка! Дай ка я её получше рассмотрю". Не до птичек нам со спичками сейчас! Не разменивайтесь вы на 5 копеек!

В подтверждение своих слов (о том, что всё нужно делать грамотно, профессионально, на высшем уровне) привожу несколько своих работ.

вот, пожалуйста, полюбуйтесь


Как видно, по крайней мере, уж в чём в чём, а в интерфейсе я кое-что смыслю и знаю о чём говорю. Причём получил массу положительных отзывов с просьбой продолжить свои изыскания. (То, что обозначенная мной цена за продолжение и за индивидуальный заказ никого не устроила, это уже другой вопрос. Не будем сейчас об этом. )

Прогу запустил, всё работает. Давайте идти дальше.
Тут нужна идея. А потом и алгоритм. Идеи могу взять на себя. Важно, чтобы мои идеи исполнялись. На начальном этапе не плохо было бы разобрать прогу марьяж и проверить, как она работает против плавающего сноса. Или убедиться, что она всё-таки подгладывает. Надо сделать из марьяжа - решатель против плавающего сноса. Это очень круто продвинет преферансную мысль. Если окажется что, прога подглядывает – перейти к другой проге, называется Пуля. Правда она мне не нравится, т.к. косячит часто. Она то точно снос не знает, а начитать с чего то надо. Идеально - выйти напрямую на программистов этих прог. Если упрётся в бабки – сумму до 10 т.р. могу пожертвовать лично. А сколько таких как я, представляете? Так что, кое что будет. Программистов можно успокоить этим на первом этапе. Это я шучу. Естественно всё придётся делать нам самим.

Итак мы подошли к сути. Плавающий снос бывает следующих типов:
1. Возможен "безопасный розыгрыш". Чтоб это прога чётко фиксировала и сразу сообщала об этом.
2. Возможен "безопасный розыгрыш" до 2, 3, 4-ого и т.д. хода. Крайне важно уметь делать "тихие ходы", в течении которых, наш опп может открыть свои карты раньше времени. Тут прога должна сообщать, что "безопасный розыгрыш" возможен до 2, 3, 4-ого и т.д. хода.
3. "а дилемма ли это вообще?" часто дилеммой называют не то, что таковой не является. Например, у игрока на 3-й руке карта до сноса ТДхх-КД10-ТД10-КВ или ТДхх-КД10-ТД10-К7, как играть? Да понятно же как. Совсем другое дело если карта ТДхх КД10-ТД7-КВ – тут уже реальная дилемма.


4. "тяжёлый случай", когда в определённый момент всё-таки надо определяться на какой снос играть. Как тут играть? Ответ: если уметь делать 1-е , 2-е и 3-е, то уже пофиг.



Зададимся, друзья, сейчас более важным вопросом: как СНОСИТЬ игроку? ибо дилеммы вистующих действительно могут быть неразрешимы. Именно игроку важно знать какой снос оптимален. С игрока надо начинать, как ни крути. Перефразирую Морозку : важно не то как будут ловить (* на мизере), важно то каким ДОЛЖЕН быть снос при определённых вероятностях отлова каждой дырки на мизере.
      » 11/03/2018, 17:26,  Фрэд 
Pochemuk (11 марта 2018, 11:46)
Что-то я мало чего в этой программе понял ...

Выглядит она не совсем так, как на скрине с яндекс-фоток:

1. Нет левого меню.
2. Области интерфейса разделены линиями, что как-то хуже смотрится.
3. Нет области для сноса.
4. Зачем-то окно программы работает в режиме "всегда сверху".

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

Ну там надо сперва раскидать карты к Югу, Западу и Востоку, а 2 оставшиеся и будут прикупом. Появится окошко "готово?", по нему кликнуть, после чего произойдёт расчёт и интерфейс преобразуется к тому виду, как на скрине. Наверное было бы проще, если бы все карты изначально были, например, у Юга, от которого их раскидывать к Востоку, Западу и в прикуп (меньше действий мышкой), но это, если что, всё решаемо и непринципиально. То, что окно всегда сверху, косячок, согласен.
      » 11/03/2018, 17:38,  Фрэд 
american_boy, насчёт Марьяжа могу сказать следующее. Если в партнёрах нет Рентгенов, карт они не видят. Бывали случаи неоптимального их розыгрыша при моём неизвестном сносе. Когда снос очевиден, конечно, ошибок они не делают и считают быстро. Но на распасах Марьяж играет оч.слабо и предсказуемо. Если поставить конвы, максимально близкие к здешнему Питеру, я у них всё на распасах и выигрываю в основном, хотя сам далеко не мастер. 5-10 вистов на сдачу при длительной игре.

Насчёт реализации плавающего сноса, понятно, что на каком-то ходу надо делать выбор, на какой снос играть. И минимизировать потери/максимизировать бонусы при этом.
      » 11/03/2018, 19:03,  american_boy 
Я бы сказал что распас и пас/пика в марьяже отстой. А вот вист всветлую играет чётко. Отловить дилемный снос играясь в марьяж просто нереально ибо кучу времени займёт, гораздо удобнее вырезать из марьяжа вист всветлую, назвать это решателем против плавающих сносов и дальше улучшать этот компонент.

Кстати в проге Словеснова просто необходимо сделать такую фишку: программа играет против одного сноса, а на самом деле игрок снёс по другому. Интересна разница, когда игра идёт против одного сноса (расчет всех раскладов), а снос оказывается другим! Фишка должна быть простой для реализации на первый взгляд.

Кстати, на проге Словеснова пробовал начать научное исследование на тему : когда всё-таки оставлять смягчение в ситуациях Тхх-х и ТДх-х . Т.е. всего 4 варианта сноса: Тх(х)-(х) или Т(хх)-х, ТД(х)-(х) или Т(Дх)-х.
Без этой фишки решить эту задачу века не удаётся.
      » 12/03/2018, 13:06,  Pochemuk 
american_boy (11 марта 2018, 19:03)
Я бы сказал что распас и пас/пика в марьяже отстой.  А вот вист всветлую играет чётко.

Это Вы имеете в виду Марьяж для Винды?

Я в него уже несколько лет (около 5) не играю. Зла не хватает ибо. И генератор там конкретно косячный (а что еще от 24-битного LGA ожидать? ...). И розыгрыш втемную, мягко говоря, странный ...

Я давно перешел на Марьяж для Андроида. Насчет распасов и мизеров можно согласиться - по прежнему однозначно предсказуемы. Но вот выбор пас/раз у Бакалавров весьма недурственен. Лучше, даже, чем у Магистров и Аспирантов. Торгуются агрессивно, перебивают игры. Иногда подсаживаются без двух, но в среднем выигрывают за счет сыгранных игр и за счет того, что тебе сыграть не дали. С такими надо играть аккуратно. Стоит случайно перебить мизер девятериком (там легко мискликнуть в этом случае) и остаться без двух-трех взяток - и игра проиграна, никакие распасы не спасут.
Впрочем, играю я Сочинку. Там своя специфика выбора пас/раз.

Насчет "всветлую играет четко" я не соглашусь. Просто в большинстве случаев снос однозначен. В большей части оставшихся - угадайки не возникает даже при разных вариантах сноса. И только очень редко получается задурить его. Но получается.

Например, при третьей руке {К 9}{Т Д}{К 9}{Т К Д В 10 9} есть неплохой шанс обмануть программу. Надо только знать, что она сносит сама в таких случаях и снести по другому.

Что касается игры с неизвестным сносом, то мы с Николаем пытались понять, как это должно работать, но не преуспели. Ибо возможна такая ситуация, когда на открытых картах есть много вариантов атаки, но при неизвестном сносе только некоторые из них не приводят к угадайке в конце розыгрыша.

Пример (Юг на 3-й руке играет 8БК):
Запад
s J 8 7
c A 9 8
d Q 7
h J 9
Восток
s 10 9
c J 10
d J 9 8
h Q 8 7
Юг
s A K Q
c K Q 7
d A K 10
h A K 10

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

Т.е. мы пытались выяснить, какие ходы приводят к лучшему результату при всех возможных сносах (известных). Но этого оказалось мало. Причем последствия хода могут проявится не непосредственно в результате него, а существенно позже.
      » 12/03/2018, 15:42,  Фрэд 
Не совсем понял, в чём фишка последнего расклада. Если хотим зафиксировать 8, выходим с мелких треф, на пику несём вторую трефу от Востока. Или имеется в виду, что кто-то может блефануть и оставить в трефе синглет?

Короче, алгоритм игры на неизвестном сносе наверное должен быть примерно такой. Играющий играет как бы на 12-ти картах, в нужный момент снося нужную, а вистующие смотрят, есть ли при таком варианте игры фиксированный подсад. Если есть, играют на него. Если нет, играют на угадайку. Это так, очень грубо пока.
      » 12/03/2018, 23:32,  Pochemuk 
Фрэд (12 марта 2018, 15:42)
Если хотим зафиксировать 8, выходим с мелких треф, на пику несём вторую трефу от Востока.

Все верно ... и даже можно пойти по другому. Главное - на пику нести трефу, а первую трефу из марьяжа пропустить.

Но при игре на известном сносе можно трефу не пропускать, тому как на третью пику мы теперь будем знать, какую красную масть можно нести.

Т.е. тезис "Если ход является допустимым при любом известном сносе, то он является допустимым и при сносе неизвестном" в корне не верен. "Любой" и "неизвестный" в данном случае не синонимичны.

А жаль. Если бы было так, то трудоемкость вычисления допустимых ходов возросла бы незначительно. Даже чисто теоретически она не может возрасти более, чем на порядок.

Фрэд (12 марта 2018, 15:42)
Короче, алгоритм игры на неизвестном сносе наверное должен быть примерно такой. Играющий играет как бы на 12-ти картах, в нужный момент снося нужную, а вистующие смотрят, есть ли при таком варианте игры фиксированный подсад. Если есть, играют на него. Если нет, играют на угадайку. Это так, очень грубо пока.


И это проходили. К сожалению, как играть на 12 картах не ясно совершенно. Не говоря о том, что таблицы транспонирования и кэширование превратятся из изящных решений в громоздкую хрень. Вместе с увеличением числа вариантов при игре на 12 картах, это снизит производительность уже очень и очень сильно.

В общем, нужен какой-то оригинальный подход, позволяющий находить угадаечные концовки в процессе перебора, но без вот этих 12 карт. Возможно ли это в принципе - не понятно.
« Предыдущая тема | Перечень тем | Следующая тема »
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей: