Autor Beitrag
Noodel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Fr 23.01.09 19:40 
Ich möchte einen Bot für ein Spiel (Moorhuhn) programmieren: Der Bot muss erkennen, wo die Moorhühner sind, dann muss er sie ansteuern können und ein Mausklick simulieren.
Geht sowas mit Delphi? Oder wie werden solche Bots allgemein programmiert?
Ich würde mich freuen, wenn ihr mir helfen könntet. Danke im Voraus!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 23.01.09 20:20 
Ja, ist möglich.

Gibt dazu verschiedene Varianten:

1. Bildschirm-Foto und auswerten (Digitale Bildverarbeitung, Hough-Kreis, Kantenerkennung)
2. Direkt aus'm Speicher die Mohrhuhn-Positionen auslesen und draufhalten ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Noodel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Fr 23.01.09 21:18 
Danke!
Alle x Sekunden ein Bildschirm-Foto zu machen und das auszuwerten dauert wohl zu lange. Deshalb muss ich wohl die Daten direkt aus dem Speicher auslesen.
Kannst du (oder jemand anders hier) mir auch sagen, wie das geht? Oder ist das von Spiel zu Spiel verschieden?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Fr 23.01.09 21:38 
Das ist von Spiel zu Spiel verschieden UND viele Spiele wehren sich auch dagegen ;-)

Einen Screenshot auswerten ist gar nicht so schwer, wie man denken mag: Kumpel von mir durfte von ner Live-Kamera-Aufzeichnung auswerten, wieviele Karten einer bestimmten Farbe hochgehalten wurden: Sein Programm sollte mit 25fps laufen, was er locker auch geschafft hat ;-) Problematisch war da eher, das er realbilder hatte und damit das Bildmaterial nicht so wirklich sauber war für solche Zwecke.

Und in Bezug auf Screenshots: Wenn man will, bekommt man die auch ohne großen Aufwand als Film; gibt's einige Programme, die das können; ist nicht schwer (müsste aber suchen, wie die das genau machen).

Zumindest kannst Du dann auf so einem Screenshot hergehen und mit den erwähnten Techniken zur Bildverarbeitung eine Objekt-Erkennung für Mohrhühner programmieren. Bei den erwähnten Karten die der Kumpel live zählen musste, haben da z.B. 2 Filter ausgereicht: Einer um grob die Karten zu lokalisieren und einer (lokal angewendet), der dann ausgewertet hat, ob's wirklich eine Karte wahr. Sowas ähnliches wirst Du auch brauchen: Erst einen Filter um grob z.B. die Körperform zu finden und danach einen Filter, der die Fundstellen genauer auswertet, ob's wirklich ein Mohrhuhn ist (wir wollen ja nicht unschultige Tiere abschießen ;-))

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Noodel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Fr 23.01.09 22:58 
Cool, danke für die ausführliche Antwort. Du hast mir sehr geholfen damit. Ich werde es doch mit Bildschirm-Fotos machen, du hast mich überzeugt. :)
Kann man die Screenshots mit Delphi irgendwie per Software machen? Gibt es da Komponenten? Und soll ich dann z.B. einen Timer mitlaufen lassen (Intervall: 1ms oder so) und bei jedem Timeraufruf (OnTimer) wird dann ein neues Foto mit neuer Auswertung gemacht?
Und wie simuliere ich die Mausbewegungen, Tastatureingaben und Mausklicks?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 24.01.09 01:44 
user profile iconNoodel hat folgendes geschrieben Zum zitierten Posting springen:
Cool, danke für die ausführliche Antwort. Du hast mir sehr geholfen damit. Ich werde es doch mit Bildschirm-Fotos machen, du hast mich überzeugt. :)
Kann man die Screenshots mit Delphi irgendwie per Software machen? Gibt es da Komponenten? Und soll ich dann z.B. einen Timer mitlaufen lassen (Intervall: 1ms oder so) und bei jedem Timeraufruf (OnTimer) wird dann ein neues Foto mit neuer Auswertung gemacht?
Und wie simuliere ich die Mausbewegungen, Tastatureingaben und Mausklicks?


Neue Fragen, neue Threads. Wurden aber alle bereits hier im Forum beantwortet. Nur soviel: 1ms bei einem Timer bringt nichts, das Warum sagt Dir die Suche ;-)

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.