標籤:數獨遊戲 android
數獨遊戲風靡已久,下面就將開發一款數獨遊戲的Android應用過程進行分解和說明。
先,再逐次分析開發這款遊戲的涉及到的技術點,遊戲邏輯。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/59/93/wKioL1TYkbLDpk0BAAKbnygWCM4621.jpg" title="Screenshot_2015-02-09-18-44-51.png" width="269" height="480" border="0" hspace="0" vspace="0" style="width:269px;height:480px;" alt="wKioL1TYkbLDpk0BAAKbnygWCM4621.jpg" />
簡述:數獨遊戲是通過在9*9(大九宮格)的格子中空白的格子填寫1-9中的任意一個數字,使得每一個行和每一列都由1-9這10個數字填滿,並且在每3*3(小九宮格)的格子中同樣也是由1-9這10個數組填滿。即表示遊戲完成。
分析遊戲邏輯:
-
遊戲中的每個格子可能的數字有1-9
-
遊戲開始顯示的數字,通過一份完整的數獨,將部分格子設為空白,得到遊戲初始值
-
遊戲中的每個空白欄框子可以填寫的數字是:同一行未出現的數字,同一列未出現的數字,同一個3*3的九宮格中未出現的數字三部分的交集
-
遊戲中的每個格子的三種狀態:答案數字(即正確的數字),初始化數字(即遊戲開始是數字,顯示有數字或者空白),當前數字(即玩家填寫前,後的數字)
-
遊戲完成的條件是滿足簡述中說明的情況
遊戲設計
-
繪製遊戲介面,大九宮格和小九宮格,如,小九宮格用白色線條分割
-
遊戲格子中數字繪製,且字型在格子中置中顯示,初始值為黑色,填寫值為藍色(顏色僅為參考)
-
遊戲互動事件處理,點擊小格子,提示玩家選擇填寫的數字,並將選擇的數字繪製到所點擊的格子中
-
根據遊戲完成的條件判斷遊戲是否完成
涉及到的技術點:
-
Android的View繪製(不限於此方式)
-
9*9的矩陣行與列,格子相對位置等計算
-
螢幕點擊格子的事件處理
實現步驟:
-
遊戲邏輯
-
遊戲顯示視圖,無論是Android,HTML上都將通用1中的遊戲邏輯
-
操作事件,特性環境下做相應的事件處理
遊戲的資料結構設計的恰當,則判斷遊戲是否完成就變得容易,依照文中遊戲邏輯部分4中所述,判斷遊戲是否完成就可以使用如下代碼判斷:
public boolean isWon() {for (int i = 0; i < originalStatus.length; i++) {if (currentStatus[i] != originalStatus[i]) {return false;}}return true;}
更詳細的實現參見:https://git.oschina.net/secondriver/Sudo.git
本文出自 “野馬紅塵” 部落格,謝絕轉載!
[Android]開發數獨遊戲思路分析過程