天天看點

安卓遊戲--淺塘之輔助開發(C/S模式)

x00_閑談

  • 淺塘這款遊戲吧,。。。。。。,當時玩着還行,但是懶得動手去解,就開始了輔助開發之路。
  • 在此之前,有過一次《資料結構》的課程設計,選的是八數位問題。利用了廣度優先搜尋,就是周遊所有可能,當然加入些許優化(如雙向搜尋)。沒有選擇深度搜尋,也是為了找出最優解。當然網上還是有很多其他解法。
  • 鑒于塊的操作限制略高, 這裡我也就使用了廣度優先搜尋的思想(其他我也不會啊_(:з」∠)_ )純小白。

x01_淺塘遊戲規則簡介

  • 下面圖中有很多橫着的豎着的塊,還有個紅色的魚塊,通過移動改變塊的位置,來使紅色的魚塊通過右邊出口就算通關。
    安卓遊戲--淺塘之輔助開發(C/S模式)
  • 淺塘目前有兩種遊戲模式,一種不限操作步數(滑動一次,距離無要求),另一種需要在要求步數内完成,但要求步數也不是最優步數來為難玩家,但使用了最少步數肯定還是會有獎勵的ヽ(・ω・´メ)。那麼這個部落格就是來求最優解的。

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

繼續閱讀