Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

Можно ли программно раскладывать пасьнс паук?   Найти похожие ветки 

 
ekto ©   (2008-05-08 13:32) [0]

Добрый день всем.
Очень надо разложить на четырех мастях.


 
Palladin ©   (2008-05-08 13:34) [1]

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


 
ekto ©   (2008-05-08 13:37) [2]


> Palladin ©   (08.05.08 13:34) [1]


> эээ... ну ты знаешь, как бы само приложение "Пасьянс Паук"
> предназначено для ручной раскладки,

так и думал :(


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

мне нужно виндовский разложить.


 
Palladin ©   (2008-05-08 13:38) [3]

вопрос жизни и смерти? :)


 
ekto ©   (2008-05-08 13:39) [4]


> Palladin ©   (08.05.08 13:38) [3]

близко к тому.


 
Palladin ©   (2008-05-08 13:45) [5]

тогда твоя смерть близка...


 
ekto ©   (2008-05-08 13:49) [6]


> Palladin ©   (08.05.08 13:45) [5]

 Ну, прям? Что надо сделать? Найти объекты-карты. Тока и всего. Вот тока "Тока и всего" - это много или мало? И что еще надо?


 
Игорь Шевченко ©   (2008-05-08 13:51) [7]

Я обзавидовался. Когда у народа столько лишнего времени - это ж столько всего полезного для общества можно сделать, что оторопь берет.


 
Palladin ©   (2008-05-08 13:52) [8]


> Найти объекты-карты.

а ты знаешь что такое объект?


 
Mystic ©   (2008-05-08 13:53) [9]

Не любой пасьянс сходится, так что это не всегда возможно. Если активно использовать Undo, то можно разложить как минимум около половины раскладов. Если не пользоваться, то около 15-20%. У меня было так.


 
ekto ©   (2008-05-08 13:56) [10]


> Palladin ©   (08.05.08 13:52) [8]

что конкретно тя интересует? Знаю ли я, что такое объект в ООП? Да хз, вроде как нет. По крайней мере, когда везде пишут "понимать ООП", я не понимаю, чего там понимать.


 
Palladin ©   (2008-05-08 13:57) [11]


> ekto ©   (08.05.08 13:56) [10]

меня? меня ничего не интересует, что тебя интересует? что ты имеешь в виду под своими словами "Найти объекты-карты" ? что ты вкладываешь в понятие "найти", в понятие "объект-карты" ?


 
ekto ©   (2008-05-08 14:03) [12]


> Palladin ©   (08.05.08 13:57) [11]

"Объект-карта" - думаю, они(карты) сделаны объектами? "Найти" - получить указатель, на него, потом, нар-но, можно им манипулировать. Это я так предполагаю, не удивлюсь, что далеко от истины.

Или можно сканировать экран, эмулировать события мыши?


 
ekto ©   (2008-05-08 14:04) [13]


> Mystic ©   (08.05.08 13:53) [9]

дык, не знаю, кажись надо быть очумелым, чтоб разложить паука на 4-х мастях


 
Рамиль ©   (2008-05-08 14:07) [14]

если даже в программе существует объект карта, то для внешней программы его нет (если, конечно, у пасьянса нет COM интерфеса:))


 
Palladin ©   (2008-05-08 14:10) [15]


> "Объект-карта" - думаю, они(карты) сделаны объектами?

ты глупоко ошибаешься...


> "Найти" - получить указатель

на что указатель? на карту, да если карта и является объектом, то это скорей всего агрегация, а не ассоциация, соответственно никакого указателя ты не получишь, он, объект, будет в составе другого объекта, это в оптимальном случае... если повезет... кто может знать что реализованно в пасьянсе... али ты думаешь, что его писали на делфи?


 
SergeyIT   (2008-05-08 14:11) [16]

Взять робота, запрограммировать, посадить за монитор и пусть раскладывает. Или взять линуксовский вариант - там есть раскладывание в автомате (но по-тупому, может когда и разложется)


 
ekto ©   (2008-05-08 14:12) [17]


> Рамиль ©   (08.05.08 14:07) [14]


> Palladin ©   (08.05.08 14:10) [15]

т.е., если прога изначально не рассчитана на внешнее управление, то повлиять на ее работу извне нельзя?


 
Palladin ©   (2008-05-08 14:13) [18]


> ekto ©   (08.05.08 14:12) [17]

:) а как ты как думал? что все так в мире мягко и пушисто?...


 
ekto ©   (2008-05-08 14:13) [19]


> SergeyIT   (08.05.08 14:11) [16]

я и хочу робота, тока программного.


 
Mystic ©   (2008-05-08 14:14) [20]

> дык, не знаю, кажись надо быть очумелым, чтоб разложить
> паука на 4-х мастях


Достигается упражнениями. Плюс многое зависит от удачи. Например, если разрешаешь себе пользоваться Undo, те раслад состоит из двух частей: вначале ты открываешь все карты, которые только можешь открыть. Потом думаешь о том, какие карты лучше открыть перед новой порцией карт. Ну и в целом приоритеты таковы: (1) максимальное улучшение текущей раскладки без необратимых ходов (2) максимальный разбор одного ряда с целью освобождения ячейки (3) Оставлять как можно больше карт, которые могут стать доступны в ближайшем будущем.

Хотя мне больше нравится freecell. Там у меня рекорд был чуть более 60 раскладов подряд.


 
ekto ©   (2008-05-08 14:15) [21]


> Palladin ©   (08.05.08 14:13) [18]

да, розовые очки прибил себе наглухо ко лбу и избавляться не собираюсь. Да быть такого не может! Ну как эт так?
А, если
> Или можно сканировать экран, эмулировать события мыши?


 
ekto ©   (2008-05-08 14:16) [22]


> Mystic ©   (08.05.08 14:14) [20]

Freecell да, клево, но 60 раз подряд.... еще сапер - 86 сек. Кто меньше?


 
Рамиль ©   (2008-05-08 14:20) [23]


> Или можно сканировать экран, эмулировать события мыши?

Можно, только еще карты распознавать придется.


 
EgorovAlex ©   (2008-05-08 14:20) [24]

Ну так сканируй, распознавай, отправляй в это окно событие клика и перемещения мыши и снова сканируй...


 
Mystic ©   (2008-05-08 14:21) [25]

> ekto ©   (08.05.08 14:15) [21]

Ну можно. Находишь окно, получаешь его координаты. Потом копируешь текущий desktop, вырезаешь из него окно. Распознаешь карты. Посылаешь в окно всякие сообщение типа WM_LBUTTONDOWN. Основная проблема распознать карты и написать AI. А в чем ты видишь проблему?


 
ekto ©   (2008-05-08 14:22) [26]


> EgorovAlex ©   (08.05.08 14:20) [24]


> Рамиль ©   (08.05.08 14:20) [23]

так, нарно, долго получится? В смысле "играть" до победного.


 
Mystic ©   (2008-05-08 14:23) [27]

> еще сапер - 86 сек. Кто меньше?

Нет, больше. Рекорд был девяносто с чем-то... Сейчас и этого повторить не могу, вместо угадывания рассчитываю что где лежит. А время то идет...


 
ekto ©   (2008-05-08 14:24) [28]


> Mystic ©   (08.05.08 14:21) [25]


> Основная проблема распознать карты и написать AI.

в этом и вижу теперь, хотя это, вроде, не очень сложно.


 
EgorovAlex ©   (2008-05-08 14:25) [29]

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


 
ekto ©   (2008-05-08 14:27) [30]


> Mystic ©   (08.05.08 14:23) [27]

при долгой практике, рассчитанные варианты запоминаются и потом открываешь на автомате.


 
ekto ©   (2008-05-08 14:28) [31]


> EgorovAlex ©   (08.05.08 14:25) [29]

не спортивно


 
Mystic ©   (2008-05-08 14:30) [32]

Ну и начинай с того, что тебе интересно. Лично мне бы было обидно написать распознавание карт, посылку сообщений, но споткнуться на AI. Поэтому я бы начал имеено с AI. Тем более там не надо по всяким help-ам копаться. Как только AI будет в состоянии разгадывать хоть что-то, надо будет перейти к распознаванию карт (или написать свою версию паука). Ну а дальше прочитать MSDN и написать робота.


 
Игорь Шевченко ©   (2008-05-08 14:30) [33]

Mystic ©   (08.05.08 14:14) [20]


> Хотя мне больше нравится freecell. Там у меня рекорд был
> чуть более 60 раскладов подряд.


Разложи расклады -1 и -2 :) (по F3)


 
Mystic ©   (2008-05-08 14:34) [34]

> при долгой практике, рассчитанные варианты запоминаются
> и потом открываешь на автомате.


Да, есть и такие, которые на автомате. Но есть и те, что надо считать. А иногда после расчета ты приходишь к выводу, что тут угадайка. В любом случае, при раскладе на время если ты не видишь, что открывать, надо гадать. А сейчас я останавливаюсь и думаю...


 
ekto ©   (2008-05-08 14:45) [35]


> Игорь Шевченко ©   (08.05.08 14:30) [33]

где-то читал, что не доказано, что есть такие расклады, которые невозможно разложить(сорри за тавталогию).


 
Anatoly Podgoretsky ©   (2008-05-08 15:45) [36]

> ekto  (08.05.2008 13:37:02)  [2]

А смысл?


 
den303 ©   (2008-05-08 17:07) [37]

В Freecell в окне по F3 написано "... номер расклада от 1 до 1000000", а в подсказке по вопросительному знаку "...от 1 до 32 000"
Глючок-с :oD


 
SergeyIT   (2008-05-08 19:59) [38]

Может проще своего паука написать, чтобы выглядел также, как виндошный.
Библиотека карт есть (cards.dll), как с ней работать где-то в инете есть. А внутри можно сделать все, как хочется.


 
guav ©   (2008-05-08 22:15) [39]

А ведь возможно, что "объекты" найти не так сложно. cards.dll экспортирует функции.
WEP cdtAnimate cdtDraw cdtDrawExt cdtInit cdtTerm
Если она их действительно дёргает, то можно перехватывать и анализировать их.


 
@!!ex ©   (2008-05-08 22:23) [40]

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



Страницы: 1 2 вся ветка

Текущий архив: 2008.06.22;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.019 c
15-1210213823
Slider007
2008-05-08 06:30
2008.06.22
С днем рождения ! 8 мая 2008 четверг


2-1211811508
mdbm
2008-05-26 18:18
2008.06.22
Пишу *.dll помогите с методами


2-1212085608
assassin8899
2008-05-29 22:26
2008.06.22
Locate


15-1210145256
Галинка
2008-05-07 11:27
2008.06.22
Как вернуть массив строк из dll


2-1212044324
кот
2008-05-29 10:58
2008.06.22
Строковая переменная