Вчера вечером я сделал очередной набег на ебучую программку.
Теперь она пишет возможные ходы в массив и пытается строить дерево ходов.
Я предвидел, шо
читать дальшеона попытается перекладывать карту туда-сюда. Например 2 семёрки и по ним одну шестёрку можно гонять бесконечно. Эт я заблокировал путём запоминания предыдущей перемещённой карты.
Также я предвидел, что если будут две таких чередующихся карты. Например, 3 семёрки и 2 шестёрки или 2 семёрки и там 2 десятки, то он сначала одну перекладывает с места на место, потом другую, и как бы по предыдущей карте уже не отследишь. Так же работает алгоритм подсказки ходов в Линуксовом Aisleriott, да и в Винде тоже.
А если две придумаешь, как отследить - 2 предыдущих карты отслеживать, то может быть три чередующихся. Ну. 100 чередующихся быть не может - они просто не влезут, но три-четыре могут влезть хотя бы теоретически.
Вот, бля, думаю, как бы это малой кровью решить.Updateчитать дальшеРазобрался с этой хернёй. Всё не так сложно оказалось.
Вот раньше программер пейсал свою прогу на бумаге, потом набивал, конпелировал, отлаживал, и потом мож немножко допиливал.
А щас - пишет прямо в компе, по мелким кусочкам, чо-то добавляет, добавляет, в итоге какое-то лоскутное одеяло, сука, получается. Поэтому все дрочат на рефакторинг.
Разобрацца-то я разобрался, теперь ходы закончились (( Надо пейсать часть, которая откатывает обратно и пробует другие ходы, ещё неопробованные.
Ваще я подумал - не такая уж это и простая хуйня, поэтому я её постоянно откладывал - не хотелось этим гемором занимацца. Не квантовая физика канешна, но прогу для анализа бильярда я гораздо быстрее напейсал.
Во, кстати - впервые применил функцию в Питоне, до этого обходился без них в нескольких программах.
А тут чо-то какой-то пиздец уже получается. Нужно упростить код.
Получил ли я удовольствие? НЕТ! Честно гря меня раздражает вся эта хуета - что приходится так напрягацца, чтоб какую-то хуйню сделать. Немного радует тот факт, что если сделать для одного пасьянса, большой шанс, что это же можно применить для всех с незначительными модификациями. Но чтобы применить, и чтобы он (факт) порадовал - нужно сначала хотя бы один раз прогу дописать.