Autor |
Beitrag |
Noodel
      
Beiträge: 27
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
      
Beiträge: 27
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: 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 
      
Beiträge: 27
|
Verfasst: 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
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Sa 24.01.09 01:44
_________________ 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.
|
|
|