我的编程空间,编程开发者的网络收藏夹
学习永远不晚

android怎么实现数独游戏机器人

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

android怎么实现数独游戏机器人

本篇内容介绍了“android怎么实现数独游戏机器人”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

针对该应用的数独机器人

android怎么实现数独游戏机器人

填答案逻辑未完成,主要原因在于游戏响应触屏事件参数有待调整,简单的使用input tap,界面响应不正常。 

android怎么实现数独游戏机器人

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 deepcopyfrom 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!!"

“android怎么实现数独游戏机器人”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

android怎么实现数独游戏机器人

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android怎么实现数独游戏机器人

本篇内容介绍了“android怎么实现数独游戏机器人”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!针对该应用的数独机器人填答案逻辑未完成,主
2023-06-29

C语言怎么实现数独游戏

本文小编为大家详细介绍“C语言怎么实现数独游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言怎么实现数独游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。目标写一个数独游戏,有以下功能:1:能随机产生题目
2023-06-29

Android怎么实现老虎机小游戏

要实现一个老虎机小游戏,你可以按照以下步骤进行操作:1. 创建一个新的Android项目并打开它。2. 在项目的布局文件中添加一个ImageView元素,用于显示老虎机的图像。3. 在项目的资源文件夹中添加老虎机的图像资源。4. 在活动类中
2023-08-16

怎么用Java实现人机对战猜拳游戏

本篇内容主要讲解“怎么用Java实现人机对战猜拳游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Java实现人机对战猜拳游戏”吧!本文实例为大家分享了Java实现人机对战猜拳游戏的具体代
2023-06-20

怎么在Android中使用WebSocket实现一个多人游戏

今天就跟大家聊聊有关怎么在Android中使用WebSocket实现一个多人游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。webSocket流程1、客户端开始连接------->
2023-05-30

怎么用Android实现拼图游戏

小编给大家分享一下怎么用Android实现拼图游戏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体内容如下源码package packageName;import android.os.Bundle;import and
2023-06-29

python怎么实现人人对战的五子棋游戏

这篇文章主要介绍“python怎么实现人人对战的五子棋游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python怎么实现人人对战的五子棋游戏”文章能帮助大家解决问题。checkerboard.p
2023-06-30

云服务器怎么实现挂机游戏

云服务器是一种虚拟的数据中心服务,它可以为游戏玩家提供高性能、高可靠性的游戏服务器。通常,游戏玩家需要使用自己的游戏账号或设备登录云服务器来进行游戏。以下是云服务器实现挂机游戏的步骤:购买和部署云服务器。在网上购买或租赁云服务器,根据不同的云服务器类型和价格,可以有多种选择,例如私有云、公有云、专用云等。创建游戏服务器。根据游戏玩家的需求,将游戏服务器部署在云服务器上,这涉及到配置游戏客
2023-10-26

怎么用批处理实现五子棋人机对战游戏

这篇文章主要介绍怎么用批处理实现五子棋人机对战游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果图:核心代码:代码如下:@echo off&setlocal enabledelayedexpansionset l
2023-06-08

JS+HTML怎么实现经典吃豆人游戏

这篇文章主要介绍“JS+HTML怎么实现经典吃豆人游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS+HTML怎么实现经典吃豆人游戏”文章能帮助大家解决问题。项目结构因需要四个文件即可实现,in
2023-06-30

Java怎么实现打飞机小游戏

小编给大家分享一下Java怎么实现打飞机小游戏,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!写在前面技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理
2023-05-30

C语言怎么实现飞机游戏

这篇“C语言怎么实现飞机游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言怎么实现飞机游戏”文章吧。scanf 控制飞
2023-06-30

javascript猜数字游戏怎么实现

以下是一个简单的JavaScript猜数字游戏的实现:1. 首先,我们需要生成一个随机数作为答案。可以使用Math.random()函数生成一个0到1之间的随机数,然后乘以一个范围,再加上一个起始值,就可以得到一个指定范围内的随机数。```
2023-05-13

怎么用C++实现简易的狼人杀游戏

本篇内容介绍了“怎么用C++实现简易的狼人杀游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!以下是一个基本的狼人杀游戏的C++实现,其中包
2023-07-05

python怎么实现猜数字游戏

要实现猜数字游戏,可以按照以下步骤进行:1. 生成一个随机数作为答案,可以使用random模块中的randint()函数来生成一个指定范围内的随机整数。2. 提示用户输入猜测的数字,并将用户输入的数字与答案进行比较。3. 使用循环来判断用户
2023-08-15

Java怎么实现猜数字游戏

本篇文章给大家分享的是有关Java怎么实现猜数字游戏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言以前在学C语言的时候,做过一个猜数字游戏,这两天学了Java的逻辑结构,试
2023-06-25

怎么用Shell实现猜数字游戏

本篇内容介绍了“怎么用Shell实现猜数字游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!这篇文章主要为大家详细介绍了Shell实现猜数字
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录