|
You last visited: Today at 17:48
Advertisement
Minesweeper Bot
Discussion on Minesweeper Bot within the AutoIt forum part of the Coders Den category.
02/05/2014, 18:32
|
#1
|
elite*gold: 0
Join Date: Sep 2006
Posts: 5
Received Thanks: 1
|
Minesweeper Bot
OK, für manche (oder alle) dürfte ein Minesweeper Bot wohl "witzlos" sein, aber ich amüsiere mich köstlich.
Mein Bot arbeitet bisher mit MouseMove und macht was er soll, doch ich will mehr
Ich versuche die Mausklicks zu tätigen ohne das die Maus sich Visuel auf dem Bildschirm bewegt.
Ich bin auf meiner Suche über zwei doch etwas ältere Ansätze zu dem Thema gestolperte, aber so ganz "fällt der Groschen noch nicht"

Testaufbau zum "Klicken"
PHP Code:
#AutoIt3Wrapper_UseX64=N ;32Bit System
Local $MinesweeperXY = WinGetPos("Minesweeper")
$Fenster = WinGetHandle("Minesweeper")
$X = $MinesweeperXY[0] + 47 ;Ecke links oben X
$Y = $MinesweeperXY[1] + 88 ;Ecke links oben Y
$LPARAM = _MakeLong($X,$Y)
DllCall("Functions.dll","int","fnPostMessage","hwnd",$Fenster,"int",0x0201,"int",0x0001, "long",$LPARAM)
Sleep (100)
DllCall("Functions.dll","int","fnPostMessage","hwnd",$Fenster,"int",0x0202,"int",0x0001, "long",$LPARAM)
Func _MakeLong($LoWord,$HiWord)
Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc
|
|
|
02/05/2014, 18:47
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
MouseClick ohne das sich die Maus bewegt?
|
|
|
02/05/2014, 19:05
|
#3
|
elite*gold: 0
Join Date: Sep 2006
Posts: 5
Received Thanks: 1
|
Quote:
Originally Posted by alpines
MouseClick ohne das sich die Maus bewegt? 
|
Über diese Metode bin ich auch gestolpert, jedoch muss Minesweeper bei dieser Lösung genau wie beim MouseMove, aktive im Vordergrund sein.
Und wen man nebenbei etwas "google'n" will, nun dann geht eine Bombe hoch.
Entschuldige, dass ich mich diesbezüglich ungenau ausgedrückt habe.
|
|
|
02/05/2014, 19:12
|
#4
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by Mc-Merlin
Über diese Metode bin ich auch gestolpert, jedoch muss Minesweeper bei dieser Lösung genau wie beim MouseMove, aktive im Vordergrund sein.
|
versteh ich das falsch ?
Hast du bei ControlClick die coordinaten vom fenster genommen und nicht desktop coords ? auf eine mine kannst du denke ich mal nicht im background prüfen
|
|
|
02/05/2014, 19:54
|
#5
|
elite*gold: 0
Join Date: Sep 2006
Posts: 5
Received Thanks: 1
|
Quote:
Ja
Ich verwende zum Finden, und errechnen der Bomben PixelSearch.
(1Bombe = Blau, 2= Grün,3=Rot usw.)
Zum Bewegen der Maus und zum Klicken benutze ich bisher MouseMove & MouseClick.
PixelSearch Arbeite auch dann, wen das Fenster nicht Aktive ist (solange es sichtbar bleibt), wohingegen MouseMove, sagen wir mal "mist macht"
Ich will Minesweeper gar nicht in den Background schicken, sondern einfach auf einen anderen Monitor verschieben.
Darum suche ich eine Möglichkeit, einen Mausklick zu "senden" ohne das mir die Maus "weggenommen" wird.
|
|
|
02/05/2014, 20:30
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Quote:
Originally Posted by Mc-Merlin
...
|
ich glaube du verstehst mich falsch
|
|
|
02/05/2014, 22:05
|
#7
|
elite*gold: 0
Join Date: Sep 2006
Posts: 5
Received Thanks: 1
|
Nicht mit Absicht  Normalerweise lese ich in Foren nur und verkeife es mir was zu schreiben.
Du hattest gefragt ob ich ControlClick probiert hatte, das habe ich, auch mit den Coordinaten vom Fenster.
Leider reagiert Minesweeper nur auf Clicks, wen es Aktive ist.
Und bei den Minen hast du recht,PixelSearch kann die nur finden, wen sich das Fenster im Vordergrund befindet.
|
|
|
02/06/2014, 01:30
|
#8
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
schieb das fenster ausm bild raus  - Desktop coords
|
|
|
02/06/2014, 13:26
|
#9
|
elite*gold: 0
Join Date: Sep 2006
Posts: 5
Received Thanks: 1
|
Moin,
ich soll das Minesweeper Fenster über die Coordinaten des Desktops ansteuern.
Bei 6 Monitoren steuere ich Fenster normalerweise immer direkt an, da die selten an derselben Stelle liegen.
PHP Code:
HotKeySet("{ESC}", "Terminate")
Opt("MouseClickDownDelay",50)
Opt("MouseClickDownDelay",50)
$Window = WinGetTitle("Minesweeper")
$ScreenX = "1591" ; Mitte des Minesweep Fenster im Monitor 5 Rechtes unten
$ScreenY = "-273" ; Mitte des Minesweep Fenster im Monitor 5 Rechtes unten
While 1
MinesweeperV2()
WEnd
Func MinesweeperV2()
Sleep (2000)
ControlClick ( "", "", "","left",1,$ScreenX, $ScreenY)
ConsoleWrite('MinesweeperV2 ' & @SEC&'sec' & @CRLF)
EndFunc
Func Terminate()
Exit 0
EndFunc
Oder stehe ich immer noch auf dem Schlauch
|
|
|
02/06/2014, 15:21
|
#10
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
x und y corrds - diese werden von windows nicht angezeigt
|
|
|
02/06/2014, 18:17
|
#11
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Mc-Merlin
|
What the....
wieso habe ich kein derartiges system?
zum problem:
controlclick arbeitet genau wie postmessage mit relativen coordianten (relativ zum gewählen control). sobald du das in deinem script beachtest, sollte es keine probleme geben.
|
|
|
02/06/2014, 20:20
|
#12
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
lolkop eine Antwort auf die erste Frage habe ich. Ich hassen den Bildschirmrand den man bei mehreren bekommt und hier ist das sehr extrem. Bei 2 Monitoren finde ich das schon hässlich.
|
|
|
 |
Similar Threads
|
[Tuturial] einen Minesweeper "wallhack" erstellen
08/31/2010 - Coding Tutorials - 10 Replies
Hallo leute
heute zeig ich euch wie ihr ein minesweeper "wallhack" erstellt.
da dies mein erstes Tuturial ist nicht wundern wenn es nicht so gut erklärt ist. ;)
Was ihr braucht:
-AutoIt v3 den editor (am besten noch Koda fürs design)
-Cheat Engine am besten v5.6
-Minesweeper (start ->alle Programme ->spiele -> minesweeper ( müsste bei den meisten windows PCs drauf sein ;) )
-"NomadMemory.au3" (downloadet es euch geht in euren AutoIt ordner geht dort auf den Ordner "Include" und fügt...
|
[question] minesweeper with cheat engine
06/04/2010 - General Coding - 1 Replies
i understand how to find the address for changeing the flags...and changing the time...but how do i figure out what address stores the values of the bombs? if the value never changes?
|
[C++] Source: Minesweeper Bot
01/08/2009 - C/C++ - 0 Replies
Moin,
Hier mal einen Minesweeper Bot den ich geschrieben habe. Wer sich ein bisschen mit ReadProcessMemory beschäftigen möchte, kann, denke ich, etwas aus dem Source lernen.
100% von mir geschrieben ;). Bei Fragen -> PM oder hier im Thread.
|
All times are GMT +1. The time now is 17:49.
|
|