欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人

 更新時(shí)間:2022年03月24日 12:21:01   作者:激蕩數(shù)十年  
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人的具體代碼,供大家參考,具體內(nèi)容如下

針對(duì)該應(yīng)用的數(shù)獨(dú)機(jī)器人,填答案邏輯未完成,主要原因在于游戲響應(yīng)觸屏事件參數(shù)有待調(diào)整,簡(jiǎn)單的使用input tap,界面響應(yīng)不正常。 

import sys
?
posinfo0={(0,0):8,
? ? ? ? ?(2,1):3,(3,1):6,
? ? ? ? ?(1,2):7,(4,2):9,(6,2):2,
? ? ? ? ?(1,3):5,(5,3):7,
? ? ? ? ?(4,4):4,(5,4):5,(6,4):7,
? ? ? ? ?(3,5):1,(7,5):3,
? ? ? ? ?(2,6):1,(7,6):6,(8,6):8,
? ? ? ? ?(2,7):8,(3,7):5,(7,7):1,
? ? ? ? ?(1,8):9,(6,8):4,
? ? ? ? ?}
maskmap={
1535553906:5,
2441400:7,
305175776:1,
2746585781:6,
1577050781:9,
2756722681:8,
1586816406:9,
2756351406:6,
2993066431:2,
2758694531:3,
1535569531:5,
2756738306:8,
1528222656:9,
1525882656:6,
2942285181:2,
1535944531:5,
1232906556:4,
2709863281:3,
1525882031:6,
2707910181:8,
1535960156:5,
1477441406:9,
2944238306:2,
1525878901:1,
2707910156:3,
1477050781:6,
2758691406:3,
3002832056:2,
2705941436:8,
1242672181:4,
1535647656:5,
2705957686:8,
1479394531:9,
1487191406:3,
2707894556:8,
502832031:2,
2705941431:8,
} ? ? ? ??
def ocr(img):
? ? global posinfo0, maskmap
? ? posinfo0={}
? ? for x in xrange(0,9):
? ? ? ? for y in xrange(0,9): ? ? ? ? ? ?
? ? ? ? ? ? x0=(x/3)*(257-26)+(x%3)*(96-26)+26
? ? ? ? ? ? y0=(y/3)*(432-179)+(y%3)*(255-179)+179
? ? ? ? ? ? x1=x0+(88-26)
? ? ? ? ? ? y1=y0+(240-179)
? ? ? ? ? ? dig=img.crop((x0,y0,x1,y1))
? ? ? ? ? ? throd=100
? ? ? ? ? ? res=0
? ? ? ? ? ? for marg_left in xrange(0,dig.size[0]/2+2):
? ? ? ? ? ? ? ? for t in xrange(0,dig.size[1]):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((marg_left, t))[0]<throd:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? if t!=dig.size[1]-1:break
? ? ? ? ? ? for marg_right in xrange(dig.size[0]-1, dig.size[0]/2, -1):
? ? ? ? ? ? ? ? for t in xrange(0,dig.size[1]):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((marg_right, t))[0]<throd:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? if t!=dig.size[1]-1:break
? ? ? ? ? ? for marg_top in xrange(0,dig.size[1]/2+2):
? ? ? ? ? ? ? ? for t in xrange(0,dig.size[0]):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((t,marg_top))[0]<throd:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? if t!=dig.size[0]-1:break
? ? ? ? ? ? for marg_bottom in xrange(dig.size[1]-1, dig.size[1]/2, -1):
? ? ? ? ? ? ? ? for t in xrange(0,dig.size[0]):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((t,marg_bottom))[0]<throd:
? ? ? ? ? ? ? ? ? ? ? ? break
? ? ? ? ? ? ? ? if t!=dig.size[0]-1:break
? ? ? ? ? ? if marg_left>=marg_right:
? ? ? ? ? ? ? ? #print "(%d,%d):%d"%(x,y,res)
? ? ? ? ? ? ? ? continue
?
? ? ? ? ? ? mask=0
? ? ? ? ? ? bitcnt=1
? ? ? ? ? ? dig=dig.crop((marg_left,marg_top,marg_right,marg_bottom))
? ? ? ? ? ? olddirect=0
? ? ? ? ? ? direct=0
? ? ? ? ? ??
? ? ? ? ? ? for digy in xrange(dig.size[1]/8,dig.size[1], dig.size[1]/8):
? ? ? ? ? ? ? ? cnt=0
? ? ? ? ? ? ? ? for digx in xrange(0,dig.size[0]-1):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((digx, digy))[0]>throd and dig.getpixel((digx+1, digy))[0]<=throd:
? ? ? ? ? ? ? ? ? ? ? ? cnt+=1
? ? ? ? ? ? ? ? mask+=cnt*bitcnt
? ? ? ? ? ? ? ? bitcnt*=5
? ? ? ? ? ? for digx in xrange(dig.size[0]/6,dig.size[0], dig.size[0]/6):
? ? ? ? ? ? ? ? cnt=0
? ? ? ? ? ? ? ? for digy in xrange(0,dig.size[1]-1):
? ? ? ? ? ? ? ? ? ? if dig.getpixel((digx, digy))[0]>throd and dig.getpixel((digx, digy+1))[0]<=throd:
? ? ? ? ? ? ? ? ? ? ? ? cnt+=1
? ? ? ? ? ? ? ? mask+=cnt*bitcnt
? ? ? ? ? ? ? ? bitcnt*=5
? ? ? ? ? ? if mask not in maskmap:
? ? ? ? ? ? ? ? dig.save("tmp/%d_%d_%d.png"%(mask,x,y))
? ? ? ? ? ? ? ? val=raw_input("%d:"%mask)
? ? ? ? ? ? ? ? maskmap[mask]=int(val)
? ? ? ? ? ? if mask in maskmap:
? ? ? ? ? ? ? ? #print "(%d,%d):%d"%(x,y,maskmap[mask])
? ? ? ? ? ? ? ? posinfo0[(x,y)]=maskmap[mask]
? ? ? ? ? ? ? ??
#484 677
? ??
def scan():
? ? os.system("adb shell screencap /mnt/sdcard/shudu.png")
? ? os.system("adb pull /mnt/sdcard/shudu.png")
? ? img=Image.open("shudu.png")
? ? ocr(img)
?
from copy import deepcopy
from time import clock
?
posb0={}
?
def init(posb, posinfo):
? ? for i in xrange(0,9):
? ? ? ? for j in xrange(0,9):
? ? ? ? ? ? if (i,j) not in posinfo:
? ? ? ? ? ? ? ? posb[(i,j)]=[n for n in xrange(1,10)]
? ? for pos in posinfo:
? ? ? ? cleanother(0,pos[0],pos[1],posinfo[pos],posb,posinfo)
?
def checkpos(posb, posinfo):?
? ? posb1=posb.copy()
? ? posinfo1=posinfo.copy()
? ? ret=0
? ? for pos in posb:
? ? ? ? if len(posb1[(pos[0],pos[1])])==1:
? ? ? ? ? ? addinfo(pos[0],pos[1],posb1[(pos[0],pos[1])][0],posb1,posinfo1)
? ? ? ? ? ? ret=1
? ? ? ? ? ? break
? ? ? ? ? ??
? ? ? ? elif len(posb1[(pos[0],pos[1])])==0:
? ? ? ? ? ? ret=2
? ? ? ? ? ? break
? ? posb=posb1
? ? posinfo=posinfo1
? ? return ret
?
def cleanother(mod,x,y,v,posb,posinfo):
? ? posb1=posb.copy()
? ? x0=x/3*3
? ? y0=y/3*3
? ??
? ? for ii in xrange(0,3):
? ? ? ? for jj in xrange(0,3):
? ? ? ? ? ? if (x0+ii,y0+jj) in posb:?
? ? ? ? ? ? ? ? if v in posb1[(x0+ii,y0+jj)]:
? ? ? ? ? ? ? ? ? ? posb1[(x0+ii,y0+jj)].remove(v)
? ? ? ? ? ? ? ? ? ??
? ? for ii in xrange(0,9):
? ? ? ? if (ii,y) in posb:?
? ? ? ? ? ? if v in posb1[(ii,y)]:
? ? ? ? ? ? ? ? posb1[(ii,y)].remove(v)
? ? ? ? ? ? ? ??
? ? for jj in xrange(0,9):
? ? ? ? if (x,jj) in posb:?
? ? ? ? ? ? if v in posb1[(x,jj)]:
? ? ? ? ? ? ? ? posb1[(x,jj)].remove(v)
? ? ret=0
? ? if posb1!=posb:
? ? ? ? ret = checkpos(posb1,posinfo)
? ? ? ? posb=posb1
? ? return ret
?
?
def findmin(posb):
? ? minv=9
? ? minpos=(0,0)
? ? for key,val in posb.items():
? ? ? ? if minv>len(val):
? ? ? ? ? ? minv=len(val)
? ? ? ? ? ? minpos=key
? ? return (minv,minpos)
?
def outputInfo(posinfo):
? ? print "\n ? %s"%" ".join(str(v) for v in xrange(0,9))
? ? print "-----------"*2
? ? for i in xrange(0,9):
? ? ? ? print "%d|"%i,
? ? ? ? for j in xrange(0,9):
? ? ? ? ? ? if (j,i) in posinfo:?
? ? ? ? ? ? ? ? print posinfo[(j,i)],
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print " ",
? ? ? ? print
? ? print "==========="*2
? ??
def addinfo(x,y,v,posb,posinfo):
? ? if (x,y) in posinfo:return?
? ? #print "addinfo",x,y,v
? ? if (x,y) in posb:?
? ? ? ? del posb[(x,y)]
? ? posinfo[(x,y)]=v
? ? clearallinfo(posb,posinfo)
? ? #outputInfo(posinfo)
? ??
def clearallinfo(newposb, newposinfo):
? ? newposinfo2=newposinfo.copy()
? ? for pos in newposinfo:
? ? ? ? cleanother(0,pos[0],pos[1],newposinfo[pos],newposb,newposinfo2)
? ? if newposinfo2==newposinfo: return
? ? newposinfo=newposinfo2
? ? #print "newposinfo"
? ? #outputInfo(newposinfo)
? ? clearallinfo(newposb, newposinfo)
? ??
def clickscreen(pos0, lastpos):
? ? for i in xrange(0,9):
? ? ? ? print "%d|"%i,
? ? ? ? for j in xrange(0,9):
? ? ? ? ? ? if (j,i) in lastpos and (j,i) not in pos0:
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? print lastpos[(j,i)],
?
? ? ? ? ? ? ? ? x0=(j/3)*(257-26)+(j%3)*(96-26)+26
? ? ? ? ? ? ? ? y0=(i/3)*(432-179)+(i%3)*(255-179)+179
? ? ? ? ? ? ? ? x1=x0+(88-26)/2
? ? ? ? ? ? ? ? y1=y0+(240-179)/2
? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? #os.system("adb shell input tap %d %d"%(x1,y1)) ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? #raw_input("press...")
? ? ? ? ? ? ? ? #time.sleep(0.1)
? ? ? ? ? ? ? ? #os.system("adb shell input tap %d %d"%(lastpos[(j,i)]*80-40,980))?
? ? ? ? ? ? ? ? #time.sleep(0.1)
? ? ? ? ? ? ? ? #raw_input("press...")
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? print " ",
? ? ? ? print
? ? ? ??
def tryonestep(minpos, posb, posinfo, layer):
? ? global tic
? ? for posbv in posb[minpos]:
? ? ? ? newposb=deepcopy(posb)
? ? ? ? newposinfo=posinfo.copy()
? ? ? ? addinfo(minpos[0],minpos[1],posbv,newposb,newposinfo)
? ? ? ? minv2,minpos2=findmin(newposb)
? ? ? ? if minv2==0:
? ? ? ? ? ? #print "impossible!!!", layer
? ? ? ? ? ? continue
? ? ? ? if len(newposb)==0:
? ? ? ? ? ? print "Got it!!!"
? ? ? ? ? ? outputInfo(newposinfo)
? ? ? ? ? ? clickscreen(posinfo0, newposinfo)
? ? ? ? ? ? exit(0)
? ? ? ? tryonestep(minpos2, newposb, newposinfo, layer+1)
? ? ? ??
scan()
? ??
init(posb0, posinfo0)?
minv,minpos=findmin(posb0) ? ?
print "start===>"
outputInfo(posinfo0)
newposb=posb0.copy()
newposinfo=posinfo0.copy()
tryonestep(minpos, newposb, newposinfo, 0)
print "No answer!!" ?

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論