Форум программистов, компьютерный форум, киберфорум
C#: API, боты
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/22: Рейтинг темы: голосов - 22, средняя оценка - 4.50
308 / 55 / 7
Регистрация: 30.05.2012
Сообщений: 295
1

Как писать бота, который решает игру "сапер"

22.10.2012, 01:12. Просмотров 4090. Ответов 11
Метки нет (Все метки)


Такая ситуация: допустим хочу писать бота, который решает игру сапер. Как задавать нажатие левой кнопкой мыши по определенному месту екрана(или может точнее формы приложения)? И в какую тут сторону копать(это случайно не WinApi?)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2012, 01:12
Ответы с готовыми решениями:

Сделать игру "Сапёр". Использовать кнопку "datagridview"
Помогите написать код.Нужно сделать игру "САПЁР" матрица 10x10.Использовать кнопку...

Реализовать игру "Сапер" для двоих
Всем здравствуйте, вот нашел темку в инете, как на Си написать программу-игру Сапер. В чем вопрос,...

решил написать программу-игру "Сапер"
Добрый вечер. Я недавно занялся программированием и решил написать программу-игру "Сапер". Понимаю,...

Что значит "Писать как все" или "Писать правильно на WPF"?
Доброго времени суток! Объясните, пожзалуйста, "дураку", что значит "писать на WPF как все" или...

__________________
Помогаю в написании студенческих работ здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
11
334 / 334 / 90
Регистрация: 04.03.2010
Сообщений: 648
22.10.2012, 09:01 2
так как у сапера хэндл окна динамический, отлавливаете его по заголовку или классу, затем глобальный хук мыши, но вот как узнавать, что оказалось в клетке - это вопрос... можно попробовать какое-нибудь извращение типа - какой цвет возвращается при нажатии...
0
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
22.10.2012, 13:44 3
Грузи через олю его (если на XP) и ищи, где схема. Собственно "взлом" получится..кстати, Вы дали отличную идею)
0
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
22.10.2012, 18:49 4
Для начала, вам надо узнать 2 оффсета, как минимум:
1) размер поля
2) таблица с минами.

и все, читая указанную таблицу, можно вычислить в каких клетках находятся мины
0
не Администратор ^_^
988 / 222 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
22.01.2013, 12:35 5
тема и прога уже была на форуме (2010+-), не могу найти

Добавлено через 1 минуту
а все, нашел
Бот для сапера.
0
Эксперт .NET
14847 / 11235 / 2948
Регистрация: 17.09.2011
Сообщений: 18,817
22.01.2013, 15:06 6
Интересно, как бот будет разруливать моменты, где нельзя определенно пометить или раскрыть клетку без риска подорваться? Рандом?
0
Master of Orion
Эксперт .NET
6079 / 4935 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
22.01.2013, 16:35 7
kolorotur, естественно.
3. Робот должен заботиться о себе только в том случае, когда это не противоречит первым двум законам.
А тут конкретный приказ: попытаться все разминировать
0
не Администратор ^_^
988 / 222 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
30.01.2013, 21:58 8
kolorotur,
Psilon,
Если бы вы посмотрели бы ссылки, которую я выше кинул, то вы бы поняли, что карту можно считать и узнать расположение всех мин.
0
Эксперт .NET
14847 / 11235 / 2948
Регистрация: 17.09.2011
Сообщений: 18,817
30.01.2013, 22:12 9
Цитата Сообщение от Unick Посмотреть сообщение
Если бы вы посмотрели бы ссылки
Ссылки-то я смотрел, но сканирование памяти процесса для определения мин - это же не спортивно. Всё равно что кроссворд "разгадывать", подглядывая в ответы.
Под ботом, решающим сапера, я по простоте душевной предполагал алгоритм для решения головоломки.
0
62 / 62 / 5
Регистрация: 05.01.2013
Сообщений: 235
30.01.2013, 22:45 10
хочется "кликать" и при этом не парится с вин апи? я уже писал об удобной библиотеке аутоита - Как работать со сторонними приложения там есть все , что нужно для этого. и даже цвет пикселей можно узнавать
1
не Администратор ^_^
988 / 222 / 23
Регистрация: 03.05.2009
Сообщений: 1,493
Записей в блоге: 1
30.01.2013, 23:15 11
Ну, если ради спортивного интереса
Цитата Сообщение от kolorotur Посмотреть сообщение
Интересно, как бот будет разруливать моменты, где нельзя определенно пометить или раскрыть клетку без риска подорваться? Рандом?
Методом научного тыка

Добавлено через 11 минут
в общем как бы сделал я:
1. Определяем размер поля
2. Создаем массив по размеру поля
3. Кликаем куда душе угодно
- если попадаем по пустому полю (открывается какая-то область), тогда:
Кликните здесь для просмотра всего текста
Угол это:
1 1 [ ]
1 [x][ ]
[ ][ ][ ]

3.1. Ищем все углы с единичками (это 100% нахождение бомбы), юзаем 2-мя кнопками мышки по крайним единичкам - открывается поле.
3.2 Ищем углы: "x 1 x", где x - любое число, пример угла: 2 1 1. Ставим флажок на угол, около двойки ставим еще флажок, открываем соседние поля как в пункте 3.1.
3.3. Хорошо, мы прочистили все углы, теперь ищем все числа - значения которых совпадают с кол-вом дотрагиваемых клеток.
Например 2-ка касается двух клеток (на одной клетке уже может стоят флажок) - значит на этих двух клетках бомбы.
к 3-ке касаются три клетки - там тоже бомбы, и тд...
3.4. пробегаемся теперь по числам, значения которых = кол-ву дотрагивавшиеся бомб. И кликаем по ним двойным нажатием мышки.
3.5 Пропарсили массив, но действий не было? Возвращаемся к пункту 3 (кликаем в любое место)
- если попадаем по числу (открываем одну клетку), тогда:
возвращаемся на 3-й пункт
4. Вы выиграли... или проиграли... или прога зависла...

Вот что в голову пришло
Естественно это все сырое, так что сами... сами
Я не вижу тут ничего сложного, к некоторым играм я составлял алгоритм пару дней, тут то всего 10 минут потратил
1
308 / 55 / 7
Регистрация: 30.05.2012
Сообщений: 295
30.01.2013, 23:16  [ТС] 12
Цитата Сообщение от Unick Посмотреть сообщение
или прога зависла...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2013, 23:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

задача про игру "сапер"
Мой алгоритм: #include <iostream> #include <time.h> #include <windows.h> using namespace std;...

Написать игру "Сапёр"
помогите написать игру сапер.

Дописать игру "Сапёр"
Ребят написал сапёра , но нужно его по соглашению сделать помогите если кто то сможет просто нету...

С помощью каких библиотек писать игру "Battle City"?
Собрался написать игру Battle City на С++. Какие библиотеки для этого лучше подойдут?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.