如何编写一个扫雷速度最快的自动扫雷程序

如何编写一个扫雷速度最快的自动扫雷程序,第1张

#include

#include

#include

using namespace std

int map[12][12] // 为避免边界的特殊处理,故将二维数组四周边界扩展1

int derection[3] = { 0, 1, -1 } //方向数组

int calculate ( int x, int y )

{

int counter = 0

for ( int i = 0i <3i++ )

for ( int j = 0j <3j++ )

if ( map[ x+derection[i]][ y+derection[j] ] == 9 )

counter++// 统计以(x,y)为中心的四周的雷数目

return counter

}

void game ( int x, int y )

{

if ( calculate ( x, y ) == 0 )

{

map[x][y] = 0

for ( int i = 0i <3i++ )

{ // 模拟游戏过判梁程,若点到一个空白,则系统自动向外扩展

for ( int j = 0j <3j++ )

if ( x+derection[i] <= 9 &&y+derection[j] <= 9 &&x+derection[i] >= 1 &&y+derection[j] >= 1

&&!( derection[i] == 0 &&derection[j] == 0 ) && map[x+derection[i]][y+derection[j]] == -1 )

game( x+derection[i], y+derection[j] )// 条件比较多,一是银闹不可以让两个方向坐标同时为0,否则

递归调用本身!

} //二是递归不能出界.三是要保证不返回调用。

}

else

map[x][y] = calculate(x,y)

}

void print ()

{

for ( int i = 1i <10i++ )

{

for ( int j = 1j <10j++ )

{

if ( map[i][j] == -1 || map[i][j] == 9 )

cout <<"#"

else

cout <>x >>y )

{

if ( map[x][y] == 9 )

{

cout <<"GAME OVER" <>ch

cout <<"\n\n"

} while ( ch == 'Y'掘搏运 )

return 0

}

下面是来自官方的命令介绍

命令名称:

FindPic 找图

命令功能:

在屏幕区域查找指定相似度的图片

命令参数:

参数1 整数型,屏幕左上角x坐标

参数2 整数型,屏幕左上角y坐标

参数3 整数型,屏幕右下角x坐标

参数4 整数型,屏幕右下角y坐标

参数5 字符串型,bmp格式图片路径

参数6 整数型,相似度

参数7 整数型,返回x坐标

参数8 整数型,返回y坐标

返 回 值:

脚本例子:

(8.x语法)

//FindPic left,top,right,bottom,filename,similar,x,y

//在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中

//left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限

//filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色

//similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9

//如果没有找到图片,则x和y的值都被置为-1

//推荐使用周围颜色单一的图片

MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"

RunApp "winmine.exe"

//加入一点延时,让扫雷程序顺利启动

Delay 2000

FindPic 0,50,1023,767,"winmine.bmp"枣帆衫,0.9,intX,intY

If intX>0 and intY>0 Then

MoveTo intX,intY

MessageBox "找到图形,鼠标已经移到图形上面"

Else

MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"

End If

//在区域(0,50,1023,767)中找与文件winmine.bmp中的图形比较接近的地方,如果找到,则把鼠标移动到轿樱这个地方

//6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子

MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"

FindPic 0,50,1023,767,"Attachment:\winmine.bmp",0.9,intX,intY

If intX>0 and intY>0 Then

MoveTo intX,intY

MessageBox "找到图形,鼠标已经移到图形上面"

Else

MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"

End If

MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"

EndScript

脚本例子:

(7.x语法)

//VBSCall FindPic(left,top,right,bottom,filename,similar,x,y)

//在区域内从左到右,从上到下找文件名为filename的bmp文件,把找到的坐标保存在变量x和y中

/凳腔/left,top,right,bottom都是整数或者整数型变量,说明了区域的左,上,右,下界限

//filename是一个bmp格式的图片,需要您自己抓取,最好是24位,把边缘都设为单一的颜色

//similar为相似度,取0.5到1之间的小数。数值越大,对图片的相似度要求越严格,速度也越快。推荐取0.9

//如果没有找到图片,则x和y的值都被置为-1

//推荐使用周围颜色单一的图片

MessageBox "这个例子会启动一个Windows自带的扫雷程序,然后查找扫雷程序里的笑脸图形"

VBSCall RunApp("winmine.exe")

//加入一点延时,让扫雷程序顺利启动

Delay 2000

VBSCall FindPic(0,50,1023,767,"winmine.bmp",0.9,intX,intY)

If intX>0 and intY>0

MoveTo intX,intY

MessageBox "找到图形,鼠标已经移到图形上面"

Else

MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"

EndIf

//在区域(0,50,1023,767)中找与文件winmine.bmp中的图形比较接近的地方,如果找到,则把鼠标移动到这个地方

//6.30版之后,找图的文件路径可以直接引用附件中的图片,不需要释放,例子

MessageBox "下面把鼠标先移到0,0点,再用附件找图的方式继续查找笑脸"

VBSCall FindPic(0,50,1023,767,"Attachment:\winmine.bmp",0.9,intX,intY)

If intX>0 and intY>0

MoveTo intX,intY

MessageBox "找到图形,鼠标已经移到图形上面"

Else

MessageBox "没找到!请确认扫雷程序已经打开,并且您用的是WinXP系统"

EndIf

MessageBox "脚本演示结束,最好的脚本永远是您自己制作的。 :-)"

EndScript


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12389387.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存