А я уж и забыл, как это бывает в этом недоёбанном программировании - ебёшься, ебёшься весь день, а результата - НОЛЬ! Поэтому я наверное и не стал программистом. Ну нахуй такое щастье.
В общем, нескоко часов я сегодня дрочил программку для пасьянса, уж думал бросить нахуй, но всё новые и новые идеи... "может, это? А может, то?"
В общем, в итоге результат есть. Токо не тот, который я хотел.
читать дальшеСначала героическими усилиями я нашёл ашыбку в моменте, когда ход откатывается обратно в дереве решений. Он откатывался не совсем до конца, из-за чего всё потом катилось под откос. Исправил, и дерево стало строицца! Я там разрешал класть, например, пятёрку на любые шестёрки и перекладывать тоже.
Есть кстати способы ускорения, которые я придумал, но пока не реализовал:
- в списке возможных ходов продвигать наверх ходы для старших карт. Типа, ты сначала передвинул старшую карту, а потом уже на неё наваливаешь всякого говна. А не наоборот.
- в списке вариантов "куда положить" одну и ту же карту - сначала выбирать колонки, в которых упорядочено от большего к меньшему. Вот, например есть колонка 8-7-6 и колонка К-4-10-6 и ты кладёшь пятёрку. Лучше положить сначала на 8-7-6, потому что во второй колонке надо будет вытаскивать четвёрку. А уж если ни хрена не выйдет, откатить ход и положить на вторую колонку.
Не реализовал пока, потому что оно будет быстрее, но мы ж не знаем, мож прога и так за 10 сек всё разложит, стоит ли напрягацца?
Ну вот, глюк починил, и давай дерево строить - 100 ходов - нихуя. 1000 ходов - нихуя, 5000 ходов - нихуя, 20000 ходов - нихуя, 100 000 ходов - нихуя! Она в самом начале сложит наверх нескоко карт, и ВСЁ! Дальше хоть блядь сто тыщ ходов - тасует карты по колонкам и ничо не происходит. Хер знает, почему.
Я ограничил - можно токо вот на любую карту один раз переложил и всё! Наверное, это тоже неправильно. Ну я хз, как сделать. Например, карта, куда ты мог положить была закрыта, ты положил на другую шестёрку условно, потом новая шестёрка открылась, а ты не можешь переложить, потому что ход такой оно не рассматривает. Херня, в общем. Но количество вариантов сократилось, дерево сократилось, дело зашло чуть даьше (по-моему) ну и всё. А то и не зашло, мож - не помню уже.
Сделал дегенеративный тестовый пасьянс - где совсем немножко перекладок - прога и его не смогла разложить за дохуя тыщ ходов (( видимо чо-то та то ли циклится то ли хз, наверное она дальше не идёт, потому что я ещё не знаю, как объяснить. Я прям невооружённым глазом видел, какие карты куда надо положить, но до этого так и не дошло ((
Сделал ваще пасьянс для дегенератов - прям почти никаких перекладок - но они всё же были, и прога смогла его сложить, на этом я заебался.
Ещё один глюк нашёл, ну, я про него знал - шо если в колонке не остаётся карт, прога вылетает. Заодно исправил. Я думаю, надо брать не полный пасьянс, а урезанный - 3-4 колонки и смотреть, почему она не может до конца переложить, мож там глюкалово какое очередное. Когда разберёмся с этим, постепенно увеличивать, и, думаю, всё получится.
Ну так-то до хера времени на эту хню уходит. Греет токо то, шо я надеюсь распространить на разные пасьянсы, типа, пишешь один раз на много комбинаторных задач.
Продолжаем пейсать раскладчик пасьянса
А я уж и забыл, как это бывает в этом недоёбанном программировании - ебёшься, ебёшься весь день, а результата - НОЛЬ! Поэтому я наверное и не стал программистом. Ну нахуй такое щастье.
В общем, нескоко часов я сегодня дрочил программку для пасьянса, уж думал бросить нахуй, но всё новые и новые идеи... "может, это? А может, то?"
В общем, в итоге результат есть. Токо не тот, который я хотел.
читать дальше
В общем, нескоко часов я сегодня дрочил программку для пасьянса, уж думал бросить нахуй, но всё новые и новые идеи... "может, это? А может, то?"
В общем, в итоге результат есть. Токо не тот, который я хотел.
читать дальше