程序员玩游戏之三--天天爱消除非暴力脚本

2023-05-16

      评论:        此款游戏成功在其好友排名上。好友的分数超过了你无疑会增加你的斗志。

      中级策略:七手八脚多人一起点。这相当于多个CPU处理一个大任务了,哈哈。

      终极策略:自动化。机器总是比人快的多。你两个人一秒充其量点4下,而机器的数量级至少是10以上吧。

 

      本人编写的是LUA脚本(CSDN语言中没有LUA这门,所以才用的python格式上传的),只适用于iphone4及4s, iphone5分辨率不同于4也可能用不了,对此没测试过。其他平台有兴趣的自己改吧。把LUA脚本导入触摸精灵中修改循环次数为0间隔时间为0,开始游戏按下音量键即可使用。

      脚本中都有详细的注释,即使是初学编程的人应该也会明白的。故不再解释。

      如想试试此脚本的最大功率,建议

            1. 关闭除触摸精灵及天天爱消除之外的其他所有程序(减少系统调度开销时间&释放更多内存)

            2. 等闪烁的动物有4个左右时统一触摸消除。

            3. 注意有无找不到消除的情况发生。如有人工消除几个即可。

 

  脚本本来上传到资源里,但好像被CSDN删除了!不知违反了什么规定!大家还是拷贝复制吧。

--/********************************************************
-- * AUTHOR: 翟敏                                         *
-- * TIME  : 2013-08-26 20:07                            *
-- * MAIL  : zhaimin.cn@gmail.com                         *
-- ********************************************************/
-- 注意:适用iphone4及iphone4s. iphone5没测试过。
SCREEN_RESOLUTION="640x960";
SCREEN_COLOR_BITS=32;

WIDTH=7;--横竖都是7个动物
HEIGHT=7;
START_X=5;--左上角第一个动物的像素坐标为(5,208)
START_Y=208;
ANIMAL_SIZE=90;--每个动物大小为90*90个像素

-- 二维数组,记录分析出来的各种动物。
animals = {}
animals[0]={}
animals[1]={}
animals[2]={}
animals[3]={}
animals[4]={}
animals[5]={}
animals[6]={}

-- 各种动物枚举。有些动物真不知道叫什么!汗!
UNKNOWN=0
PURPLE=1
PANDA=2
BROWNBEAR=3
GREEN=4
DUCK=5
BLUE=6
RED=7

-- 抓屏。按特殊点判断是什么动物。
function fillAnimalTable()
    x = 0
    y = 0
    keepScreen(true) --加快效率。不连续抓屏,只捉一次。
    for i=0,6,1 do
        for j=0,6,1 do
            x = START_X+i*ANIMAL_SIZE+79
            y = START_Y+j*ANIMAL_SIZE+53
            animals[i][j]=UNKNOWN
            c=getColor(x,y)
            if (c==0x8262B0) then animals[i][j]=PURPLE
            elseif (c==0xCACACA) then animals[i][j]=PANDA
            elseif (c==0xD1683A) then animals[i][j]=BROWNBEAR
            elseif (c==0x3B4642 or c==0x343E3A) then animals[i][j]=GREEN
            elseif (c==0x69552E or c==0x6E5B33) then animals[i][j]=DUCK
            elseif (c==0x1C1F2A or c==0x252833) then animals[i][j]=BLUE
            elseif (c==0x97626E or c==0x945E6B) then animals[i][j]=RED
            end
        end
    end
    keepScreen(false)
end

-- 游戏是否开始中?
function isProcessing()
    unkouwn_count=WIDTH*HEIGHT -- 未知动物个数。如太多认为游戏没开始,暂停触控
    for i=0,6,1 do
        for j=0,6,1 do
            if animals[i][j]~=UNKNOWN then unkouwn_count=unkouwn_count-1 end
        end
    end
    return unkouwn_count<WIDTH*HEIGHT/2
end

-- 把二维坐标(i,j)的动物拉到(i+deltax,j+deltay)
function moveAnimal(i,j,deltax,deltay)
    touchDown(9, START_X+i*ANIMAL_SIZE+ANIMAL_SIZE/2, START_Y+j*ANIMAL_SIZE+ANIMAL_SIZE/2)
    mSleep(0);
    touchMove(9, START_X+(i+deltax)*ANIMAL_SIZE+ANIMAL_SIZE/2, START_Y+(j+deltay)*ANIMAL_SIZE+ANIMAL_SIZE/2)
    mSleep(0);
    touchUp(9)
end

-- 按一下正在闪烁的动物,把同种颜色的消掉
function removeShanShuoAnimals()
    for i=0,6,1 do
        for j=0,6,1 do
            touchDown(9, START_X+i*ANIMAL_SIZE+ANIMAL_SIZE/2, START_Y+j*ANIMAL_SIZE+ANIMAL_SIZE/2)
            touchUp(9)
        end
    end
end

-- 主入口
function main()
    rotateScreen(0);
    --mSleep(0);
    
    fillAnimalTable()
    if not isProcessing() then return end
    
    --各种可以移动的情况都找出来,从上到下找避免影响二维数组。先消下面的会改变上面的情况!
    for j=0,6,1 do
        for i=0,6,1 do
            if ( animals[i][j]~=UNKNOWN) then --只凭一个点位可能确定不出来是什么动物,比如那个点位正好被特效盖住了。
                if (i - 1 >= 0 and j - 1 >= 0 and animals[i][j]==(animals[i - 1][j - 1])) then 
                    if (i - 2 >= 0 and animals[i][j]==(animals[i - 2][j - 1]))  then moveAnimal(i, j, 0, -1); end
                    if (j - 2 >= 0 and animals[i][j]==(animals[i - 1][j - 2]))  then moveAnimal(i, j, -1, 0); end
                    if (j + 1 < WIDTH and animals[i][j]==(animals[i - 1][j + 1]))  then moveAnimal(i, j, -1, 0); end
                end
                if (i - 1 >= 0 and j + 1 < WIDTH and animals[i][j]==(animals[i - 1][j + 1])) then 
                    if (i - 2 >= 0 and animals[i][j]==(animals[i - 2][j + 1]))  then moveAnimal(i, j, 0, 1); end
                    if (j + 2 < WIDTH and animals[i][j]==(animals[i - 1][j + 2]))  then moveAnimal(i, j, -1, 0); end
                    if (i + 1 < HEIGHT and animals[i][j]==(animals[i + 1][j + 1]))  then moveAnimal(i, j, 0, 1); end
                end
                if (i + 1 < HEIGHT and j + 1 < WIDTH and animals[i][j]==(animals[i + 1][j + 1])) then 
                    if (i + 2 < HEIGHT and animals[i][j]==(animals[i + 2][j + 1]))  then moveAnimal(i, j, 0, 1); end
                    if (j + 2 < WIDTH and animals[i][j]==(animals[i + 1][j + 2]))  then moveAnimal(i, j, 1, 0); end
                    if (j - 1 >= 0 and animals[i][j]==(animals[i + 1][j - 1]))  then moveAnimal(i, j, 1, 0); end
                end
                if (i + 1 < HEIGHT and j - 1 >= 0 and animals[i][j]==(animals[i + 1][j - 1])) then 
                    if (i + 2 < HEIGHT and animals[i][j]==(animals[i + 2][j - 1]))  then moveAnimal(i, j, 0, -1); end
                    if (j - 2 >= 0 and animals[i][j]==(animals[i + 1][j - 2]))  then moveAnimal(i, j, 1, 0); end
                    if (i - 1 >= 0 and animals[i][j]==(animals[i - 1][j - 1]))  then moveAnimal(i, j, 0, -1); end
                end
                if (i - 2 >= 0 and i - 3 >= 0 and animals[i][j]==(animals[i - 2][j]) and animals[i][j]==(animals[i - 3][j]))  then moveAnimal(i, j, -1, 0); end
                if (j - 2 >= 0 and j - 3 >= 0 and animals[i][j]==(animals[i][j - 2]) and animals[i][j]==(animals[i][j - 3]))  then moveAnimal(i, j, 0, -1); end
                if (i + 2 < HEIGHT and i + 3 < HEIGHT and animals[i][j]==(animals[i + 2][j]) and animals[i][j]==(animals[i + 3][j]))  then moveAnimal(i, j, 1, 0); end
                if (j + 2 < WIDTH and j + 3 < WIDTH and animals[i][j]==(animals[i][j + 2]) and animals[i][j]==(animals[i][j + 3]))  then moveAnimal(i, j, 0, 1); end
            end
        end
    end
    
    --removeShanShuoAnimals()
    mSleep(0);
end


 

 

    下面玩了几局的截图,有图有真相!

最高分,但腾讯给算成25000,排名倒数了。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序员玩游戏之三--天天爱消除非暴力脚本 的相关文章

随机推荐

  • A*,那个传说中的算法

    周日的下午 xff0c 微信 simplemain xff0c 老王又来找大伙儿聊技术了 今天想跟大家聊的 xff0c 是我们经常用到 xff0c 但是却让大家觉得十分神秘的那个算法 xff1a A 想必大家都玩儿过对战类的游戏 xff0c
  • putty无法连接linux虚拟机

    linux安装参考 https linux cn article 5893 1 html 我选择的是Ubuntu 先看window下能不能ping通linux linux ip 地址查看 参考链接 jingyan baidu com art
  • C语言之网络编程(服务器和客户端)

    Linux网络编程 1 套接字 xff1a 源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字 其用于标识客户端请求的服务器和服务 常用的TCP IP协议的3种套接字类型如下所示 xff08 1 xff09 流套接字 xff0
  • 无监督学习论文阅读

    无监督学习论文阅读 刚开始接触这方面的内容 xff0c 仅供参考 Diversity Transfer Network for Few Shot Learning xff08 AAAI2020 xff09 1 这篇文章提出了一种新的深度聚类
  • 控制教程 —— 介绍篇:3.PID控制器设计

    承接上一篇 控制教程 介绍篇 xff1a 2 系统分析 介绍完系统建模和基本的系统分析后 xff0c 我们已经了解了被控对象的特性 xff0c 这时 xff0c 就需要用一个合理的控制器 xff0c 让这个被控对象在该控制器下按照指定的给定
  • FreeRTOS —— 4.队列管理

    4 1 本章介绍与适用范围 队列 提供了任务到任务 xff0c 任务到中断以及中断到任务的通信机制 范围 本章旨在使读者更好地理解 xff1a 如何创建队列 队列如何管理其包含的数据 如何将数据发送到队列 如何从队列接收数据 阻塞队列意味着
  • LSTM一般最多堆叠多少层

    一 LSTM一般最多堆叠多少层 在大规模翻译任务的经验中 简单的堆叠LSTM层最多可以工作4层 很少工作6层 超过8层就很差了 Redisual connection有助于梯度的反向传播 xff0c 能够帮助lstm堆叠更多层 xff0c
  • 华为机试在线训练-牛客网(23)判断两个IP是否属于同一子网

    题目描述 子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据 子网掩码与IP地址结构相同 xff0c 是32位二进制数 xff0c 其中网络号部分全为 1 和主机号部分全为 0 利用子网掩码可以判断两台主机是否中同一子网中
  • APISIX Dashboard中文文档(二)

    2022年7月6日14 31 51 APISIX Dashboard中文文档 一 APISIX Dashboard中文文档 二 APISIX Dashboard中文文档 三 基本部署 在 Linux 上安装 Apache APISIX Da
  • FreeRTOS 任务调度原理(基于cortexM内核)

    目录 默认FreeRTOS调度策略 xff08 单核 xff09 FreeRTOS调度策略的实现 任务创建 任务调度的4种情景 xff1a 1 第一次启动任务调度器 2 任务主动触发调度 3 SystemTick时钟触发调度 4 因为中断而
  • Centos7命令行安装图形用户界面

    安装完成Centos7后 xff0c 重启后发现是命令行界面 xff0c 于是就想改成图形用户界面 安装了图形用户界面的话 xff1a 1 查看系统里是否已经安装了图形用户界面 使用ctrl 43 alt 43 fx xff0c x为123
  • STM32G070 DMA+SPI+LCD显示

    SPI HandleTypeDef hspi1 DMA HandleTypeDef hdma spi1 tx 描述 xff1a LCD的SPI引脚初始化 参数 xff1a 无 返回 xff1a 无 void LCD SPI Init voi
  • Linux 开启VNCSERVER

    尽管我们可以使用 SSH连接远程通过字符界面来操作Linux xff0c 但是对于更多熟悉图形人来说是很不方便的 xff0c 因此开启Linux的远程桌面还是很有必要的 目前有两种比较流行的方式 xff1a XDM X display ma
  • Ubuntu 代号引发的“崩溃”

    写这篇文章主要是因为在前几天 xff0c 因为向来不关心ubuntu代号的我而引发的一次 崩溃 xff08 人崩溃 xff09 xff0c 正如我们所知Ubuntu 每半年都会更新一个版本 xff0c 每两年都会发布一个TLS xff08
  • Prometheus(二)部署Prometheus和node_exporter

    软件包列表 Prometheus安装 解压部署 rm rf prometheus 2 28 1 linux amd64 tar xvf prometheus 2 28 1 linux amd64 tar gz rm usr local pr
  • Python学习之路_day_02(编程语言介绍及变量)

    一 编程语言介绍 1 机器语言 直接用二进制编程 xff0c 直接控制硬件 xff0c 需要掌握硬件的操作细节 优点 xff1a 执行效率高 缺点 xff1a 开发效率低 2 汇编语言 xff1a 用英文标签取代二进制指令去编写程序 xff
  • 解决linux系统read only system 解决办法

    首先确认系统属于非硬盘物理坏道引起 其次确认是否有root权限 下面我要阐述一个恢复实例 xff1a 一现象 xff1a 1 没有root权限 2 由于磁盘空间满溢导致分区表损坏 xff08 非物理坏道引起 xff09 3 重启后已经无法进
  • 哈希查找效率及应用场景

    数组的特点是 xff1a 寻址容易 xff0c 插入和删除困难 xff1b 而链表的特点是 xff1a 寻址困难 xff0c 插入和删除容易 那么我们能不能综合两者的特性 xff0c 做出一种寻址容易 xff0c 插入删除也容易的数据结构
  • 四位比较器

    四位比较器 一 xff0c 实验目的 通过使用比较四位二进制判断它的相对大小 二 xff0c 实验内容 四位比较器的实验 三 xff0c 实验代码 module Comp 2 str output A gt B A lt B A eq B
  • 程序员玩游戏之三--天天爱消除非暴力脚本

    评论 xff1a 此款游戏成功在其好友排名上 好友的分数超过了你无疑会增加你的斗志 中级策略 xff1a 七手八脚多人一起点 这相当于多个CPU处理一个大任务了 xff0c 哈哈 终极策略 xff1a 自动化 机器总是比人快的多 你两个人一