|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.04.2012, 03:18 | #11 | |
Форумчанин
Регистрация: 09.07.2011
Сообщений: 185
|
Цитата:
[offtop]Смотрю, вы пишите бота для игры в карты)[/offtop] Помощника , компьютер все таки быстрее и точнее подсчитает шанс моей руки Последний раз редактировалось ClMlD; 30.04.2012 в 03:22. |
|
30.04.2012, 07:44 | #12 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
Вам что нужно сравнивать, файлы или картинки?
Если картинки, то побайтовое сравнение - далеко не лучшая идея, т.к. полностью идентичным картинкам могут соответствовать файлы, существенно различающиеся как по размеру, так и по содержимому. |
30.04.2012, 08:23 | #13 | |
Форумчанин
Регистрация: 09.07.2011
Сообщений: 185
|
Цитата:
Да и кстати когда я создавал базу карт я делал скриншоты рандомно то есть где появиться карта там и делаю скриншот к примеру для флопа будет 3 места где будут появляться карты вот с этих 3 мест я и делал скриншоты Может я делал скриншот с места 1 а проверяю карту на втором или третьем месте поэтому и не сходиться |
|
30.04.2012, 09:32 | #14 |
Форумчанин
Регистрация: 26.03.2012
Сообщений: 665
|
Тут до сравнения еще надо все переделать.
1. Убрать глобальные переменные, сделать вместо них скрытые поля формы. 2. Убрать инициализацию массива card из метода таймера, сделать это на старте (при создании формы или еще куда..) 3. Собстекнно не понятно, в чем глубокий смысл использования таймера? 4. Нет проверки, входит ли i в заданный диапозон. 5. Имена файлов карт вынести из кода, в файл, грузить опять таки на старте в какой-нибудь стринглист, а массив выкинуть. .... ну вот для начала... |
30.04.2012, 10:12 | #15 |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
WinHex`oм сравнил 1 и 9b. Оказалось, что по адресу 5515 лежат 2 разных шестнадцатеричных числа: в "1" 47, а в "9b" 4C. И все из-за одного байта.
Если помог, проси поставить минус. Будь оригинален!
|
30.04.2012, 10:21 | #16 |
Форумчанин
Регистрация: 09.07.2011
Сообщений: 185
|
|
30.04.2012, 11:03 | #17 | ||
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Цитата:
Если различий будет M, то картинки одинаковы. Если их будет N или больше,то они разные. N Вам нужно будет вычислить экспериментально. Размеры картинки вам и не нужно сравнивать, они будут одного и того же размера, раз вы режете по одному и тому же алгоритму. Вот приблизительно такой код: Код:
Если помог, проси поставить минус. Будь оригинален!
Последний раз редактировалось Rin; 30.04.2012 в 11:11. |
||
30.04.2012, 12:22 | #18 |
Форумчанин
Регистрация: 09.07.2011
Сообщений: 185
|
Rin Спасибо большое вроде всё получилось после исправления синтаксических ошибок в коде.
Я правельно понял ? вот наши два файла 1.bmp 9b.bmp как вы сказали разница между ними всего 1байт , в вашем коде я присвоил n:= 1 и файлы стали равны то есть N = число отсеянных ошибок (не совпадений) если увеличить N то и увеличится число допустимых различий я правильно все понял? Чутка изменил: Код:
Тему прошу пока не закрывать, буду делать полный тест вдруг опять что получиться не так |
30.04.2012, 12:37 | #19 | |
Негодник
Форумчанин
Регистрация: 10.11.2009
Сообщений: 880
|
Цитата:
Кстати, а зачем 52 картинки? Можно же воспользоваться 4масти+13 красных+13 черных. Копируем масть и значение карты(2,3,..,10,..,К,Т). Сравниваем вышеприведённым алгоритмом масть. Если черви или бубны, то дальше просматриваем 13 красных. Если крести или пики, то дальше просматриваем 13 черных. В 3 раза меньше сравнений будет, то есть 4+13. А раз сравнений файлов меньше, то и алгоритм быстрее.
Если помог, проси поставить минус. Будь оригинален!
|
|
30.04.2012, 13:37 | #20 |
Форумчанин
Регистрация: 09.07.2011
Сообщений: 185
|
Если я правильно понял то придется скриншотить две области на одной карте
1 - Это значение карты 2 - Это масть Тем самым как вы сказали увеличиться скорость сравнения картинок И уменьшиться база с картами (В Количестве) Но как тогда их подставлять в переменную для сканирования по очереди придется же добавлять два значения Я слышал что то о двумерных массивах наверное это понадобиться? Не могли бы вы показать пример как реализовать массив из двух динамичных значений . И как я понял сначала нужно сканировать масть что бы узнать сканировать красные или черные карты |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск файлов формата bmp по заданным параметрам | LinaSh | Помощь студентам | 17 | 18.04.2011 21:08 |
XOR двух bmp | Pavel_S | Мультимедиа в Delphi | 4 | 05.03.2011 07:53 |
Преобразование bmp файлов | Lerank | Помощь студентам | 2 | 21.09.2010 12:15 |
Сравнивание ячеек двух таблиц | Rainkhz | Общие вопросы Delphi | 2 | 29.05.2010 19:16 |