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