安卓游戏--浅塘之辅助开发(C/S模式)

x00_闲谈

  • 浅塘这款游戏吧,。。。。。。,当时玩着还行,但是懒得动手去解,就开始了辅助开发之路。

  • 在此之前,有过一次《数据结构》的课程设计,选的是八数码问题。利用了广度优先搜索,就是遍历所有可能,当然加入些许优化(如双向搜索)。没有选择深度搜索,也是为了找出最优解。当然网上还是有很多其他解法。

  • 鉴于块的操作限制略高, 这里我也就使用了广度优先搜索的思想(其他我也不会啊_(:з」∠)_ )纯小白。

x01_浅塘游戏规则简介

  • 下面图中有很多横着的竖着的块,还有个红色的鱼块,通过移动改变块的位置,来使红色的鱼块通过右边出口就算通关。
    安卓游戏--浅塘之辅助开发(C/S模式)_第1张图片

  • 浅塘目前有两种游戏模式,一种不限操作步数(滑动一次,距离无要求),另一种需要在要求步数内完成,但要求步数也不是最优步数来为难玩家,但使用了最少步数肯定还是会有奖励的ヽ(・ω・´メ)。那么这个博客就是来求最优解的。

x02_实现目标

  • 搜索最优解,并自动移动快,来通关。如下图

[外链图片转存失败(img-4UWlV3PQ-1568031279830)(https://img-blog.csdn.net/20170630013048453?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzcyOTkyNDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)]

x03_开发前的功能实现分析

  • 安卓端实现悬浮窗操作
  • 安卓截屏实现
  • 使用数据结构表示正方形内所有鱼块信息------------封装成类
  • 解析游戏屏幕所有块的信息---------包装成类对象
  • 服务器端的搜索算法
  • 搜索过的解存放进数据库
  • 客户端与服务器端的通信 ---------- 解析完成后,发送至服务器搜索并将结果返回至客户端
  • 安卓端模拟滑动操作

ps:为什么选择C/S模式,在开发安卓端前已使用C++写过这个算法,步数很多也能轻易解出,此时还不是最优解,最优解在开发服务器端后加的。本想直接移植到安卓本机运行,却发现运行效率不能满足需求,步数少还可以,多了就撒手不干解不出了。利用这次机会,先练练手。


x04_功能具体实现


  1. 实现悬浮窗
  2. 安卓截屏实现
  3. 数据结构表示
  4. 解析游戏鱼块布局
  5. 搜索算法
  6. C/S通信
  7. 安卓模拟屏幕操作

GitHub:

  • Client:PondPlug
  • Server:PondPlugServer

停更 -------- 17.7.1

你可能感兴趣的:(DIARY)