Sveiki. Mani ļoti interesē, kā programmas saņem informāciju no citām programmām. Mēģināšu savu jautājumu aprakstīt ar nelielu piemēru:
Pieņemsim, ka es gribu uztaisīt programmu, kas automātiski spēlē Windows iebūvēto Minesweeper. Šobrīd neņemot vērā nekādas stratēģijas vai kaut ko tādu, es gribu uzzināt, kā tāda programma saņemtu informāciju par to, kas ir redzams uz spēles laukuma?
Vasarā es mēģināju uzrakstīt programmu, kas automātiski spēlētu Ubuntu iebūvēto Mahjongg. Tad es šo manis aprakstīto problēmu atrisināju šādi:
Es piefiksēju visu klucīšu atrašanās vietas un, lai uzzinātu, kāds kauliņš atrodas katrā vietā, es to salīdzināju ar iepriekš sagatavotām klucīšu bildēm. Salīdzināšanu es veicu, rēķinot vidējo kvadrātisko kļūdu starp katru divu pikseļu RGB kodiem visa klucīša laukumā. Šī metode strādāja diezgan precīzi (gandrīz vienmēr atpazina, kas tas par klucīti), bet man šķiet, ka lielākos apmēros to nevarētu izmantot.
Gek miniblogs
- 0
Gek 29.11.2015. 15:39
- 0
Atkarībā no programmas, spēlēm tas parasti ir kaut kāds DirectX API callu pārtvērējs.
https://graphics.stanford.edu/~mdfisher/D3D9Interceptor.html
https://graphics.stanford.edu/~mdfisher/GameAIs.htmlTas ko Pankijs teica vairāk ir ļoti primitāvām spēlēm.
Powerbots izmantoja injekcijas uzbrukumu, savukārt SCAR kādreiz izmantoju meklēšanu pēc krāsām.
Ielogojies vai izveido profilu, lai komentētu!