Цитата (БиллиУбили @ 13.2.2020)
2 ALL
Пока c00l0ne перезагружается... Напишите, как сделали бы вы
Вот алгоримт разложения стартера #1215
Вот проблемы, с которыми я столкнулся:
1. Если конкретные 17(5+12) карт дали одно и тоже кол-во очков (например, 8 = фулхас и стрейт и 8 = 2 флаша) для одного(!) стартера, какое разложение записывать??
2. Что делать, если конкретные 17(5+12) карт всплыл флаш, но к нему есть ещё одномастная. Что же получается, записывать этому разложения стартера в 5 раз больше очков? (5 = мы можем в найденном флаше заменить одну карту на одномастную)?
1. тут уж зависит от того, какая задача стоит алгоритму, если просто найти фанту с максимумом количеством кушей, то достаточно одного, любого. Если у нас какое то практичное применение в игре, то надо записывать все возможные решения. Потому что фанту сейчас раскладывают видя карты соперника и сравнить все возможные решения с картами соперника будет оптимально( по кушам найдем оптимальный выигрыш)
2. вообще не понятно о чем ты
Сложно читать что пишет кулон. особенно про рекурсию. В его логике "рекурсия" используется лишь как красивое слово, без понятия как и где ее оптимально применять.
Расскажу как мой алгоритм работает. Примерно теми же идеями что и билли. Ищутся все возможные комбинации нижней линии, тут видимо ее называют стартер. Ищутся все абсолютно от рояля до двух пар(одной парой алгоритм пренебрегает). записываются все тройки и пары и из них складываются все возможные фулы трипсы и две пары. С флешами тоже самое. Допустим у нас какой то масти карт больше 4х. если их 5, то один возможный флеш. Если их 6 то 6 возможных флешей, если 7 то уже 21 вариант. со стритами тоже самое, выбираем все возможные стриты. И вот у нас, есть все возможные комбинации. Каждую из них мы считаем отдельно, запускаем полный перебор всех карт по линиям (подставляем вниз наши готовые пятерки а в остальные линии оставшиеся карты полным перебором) и лучшие результаты записываем. Вот и все. Время работы алгоритма я писал выше. Когда писал алгоритм о прогрессиве и слыхом никто не слыхивал, поэтому сейчас был приятно удивлен, что он оказался универсальным для любого количества карт. В теории то что я сделал для нижнего бокса можно было бы сделать и для среднего(заменяя полный перебор в той части кода что писал выше), но ограничиться двумя парами как минимальной комбинацией никак не предсталяется возможным. Поэтому вот как то так.
Похоже, это касается только флашей и стрейтов. Любая другая карта меняет разложение(даёт к паре - трипс и т.д.)
Ну, буду умножать на кол-во карт-дублёров(карт-заменителей), которые остались в сбросе. Пока ничего другого в голову не приходит.
Это уже всё устарело. Нейронные сети научились обходится без людишек
Красиво. Очень красиво. Но сначала надо довести этот проект.