Alguien me podria decir como funciona ese programa q "juega" al Busca minas solo ?
Y si tubieran tambien el codigo fuente...
Me han dicho que es x algo de los pixeles pero no se bien como funciona...
Salu2!
Y gracias desde ya...
![:smt003](./images/smilies/003.gif)
Código: Seleccionar todo
#include <GUIConstants.au3>
#NoTrayIcon
If WinExists('Defuse') Then Exit
$aq = 0
While 1
If WinExists('Minesweeper') Then
Else
GUICreate('Defuse', 150, 45)
GUICtrlCreateLabel('Empieza el buscaminas!', 10, 0, 135, 15)
GUICtrlCreateLabel('Created by: Sean Buckley', 10, 15, 135, 15)
GUICtrlCreateLabel('Email: [email protected]', 10, 30, 135, 15)
GUISetState()
EndIf
Do
$m = GUIGetMsg()
If $m = -3 Then Exit
Until WinExists('Minesweeper')
GUIDelete()
GUICreate('Defuse', 77, 17, -100, -100, $WS_POPUP, $WS_EX_TOPMOST)
$exit = GUICtrlCreateButton('Exit', -1, -1, 30, 19)
$gob = GUICtrlCreateButton('Defuse', 38, -1, 40, 19)
GUISetState()
WinActivate('Minesweeper')
While WinExists('Minesweeper')
$m = GUIGetMsg()
If $m = -3 Or $m = $exit Then Exit
If $m = $gob Then first()
If WinActive('Minesweeper') Or WinActive('Defuse') Then
$i = WinGetPos('Minesweeper')
If IsArray($i) Then WinMove('Defuse', '', $i[0] + 80, $i[1] + 30)
Else
WinMove('Defuse', '', -100, -100)
EndIf
$dimention = WinGetClientSize('Minesweeper')
If IsArray($dimention) Then
If $dimention[0] = 500 Then
$hibox = 16
$widebox = 30
EndIf
If $dimention[0] = 276 Then
$hibox = 16
$widebox = 16
EndIf
If $dimention[0] = 164 Then
$hibox = 9
$widebox = 9
EndIf
EndIf
WEnd
GUIDelete()
WEnd
Func first()
$qw = 0
WinActivate('Minesweeper')
$dimention = WinGetClientSize('Minesweeper')
If $dimention[1] = 319 Then
If $dimention[0] = 500 Then $qw = 1
If $dimention[0] = 276 Then $qw = 1
EndIf
If $dimention[1] = 207 Then
If $dimention[0] = 164 Then $qw = 1
EndIf
If $qw = 1 Then
second()
Else
MsgBox(0, 'Error', 'Unrecognized Window.' & @CRLF & 'Defuse works only with the three standard levels.' & @CRLF & 'This error can also be caused by a title bar width other than 25.')
EndIf
EndFunc ;==>first
Func second()
BlockInput(1)
$dimention = WinGetClientSize('Minesweeper')
WinActivate('Minesweeper')
Send('xyzzy')
Send('+{enter}')
$qqpos = WinGetPos('Minesweeper')
MouseMove($qqpos[0] + 20, $qqpos[1] + 110, 0)
$pos = MouseGetPos()
MouseMove($pos[0] - 16, $pos[1], 0)
$hi = 0
$ii = 0
Do
$wide = 0
$hi = $hi + 1
Do
$wide = $wide + 1
d()
If WinActive('Minesweeper') Then
Else
$ii = 1
EndIf
Until $wide = $widebox Or $ii
$pos = MouseGetPos()
MouseMove($pos[0] - 16 * $widebox, $pos[1] + 16, 0)
Until $hi = $hibox Or $ii
WinActivate('Minesweeper')
Send('xyzzy')
Send('+{enter}')
SplashTextOn('', '', 1, 1, 0, 0, 1)
SplashOff()
BlockInput(0)
EndFunc ;==>second
Func d()
$pos = MouseGetPos()
MouseMove($pos[0] + 16, $pos[1], 0)
Sleep(1)
main()
EndFunc ;==>d
Func main()
$color = PixelSearch(0, 0, 1, 1, 0xFFFFFF)
If $color = 1 Then
Else
MouseClick('main')
EndIf
EndFunc ;==>main
Func done()
Exit
EndFunc ;==>done
Código: Seleccionar todo
Send('xyzzy')
Send('+{enter}')
Código: Seleccionar todo
$color = PixelSearch(0, 0, 1, 1, 0xFFFFFF)
If $color = 1 Then
Else
MouseClick('main')
EndIf
Código: Seleccionar todo
If PixelGetColor(0,0) = 0xFFFFFF Then MouseClick('main')
A que no haces uno que, en vez de usar esa "trampa", analise todos los cuadros q rodean al q se le hace click, como ya habias hecho... (Creo q fuiste vos XD) pero ahora terminaloXimorro escribió:Ese programa es la misma idea que el del video... ¡pero el del video funciona y este no!
Encima de hacer trampas lo hace mal
Os propongo, ahora que sabéis cómo hacerlo, que en vez de buscar un programa que vaya lo hagáis vosotros. No creo que usara éste porque está muy mal estructurado pero puede venir muy bien para lo de activar el truco y recorrer celda a celda, luego hay que mirar bien el pixel...