孫小華 河北軟件職業(yè)技術(shù)學(xué)院
引言:隨著信息技術(shù)和電子設(shè)備業(yè)的迅猛發(fā)展,Android智能手機已走進每個人的生活。人們的物質(zhì)生活越來越優(yōu)越,使得人們的精神生活需求越來越多,人們需要更多的游戲軟件來打發(fā)自己的空閑時間,豐富自己的精神生活。為了滿足廣大手機用戶的需求,順應(yīng)市場形勢,滿足人們對Android手機游戲開發(fā)的好奇心,本文在此借助于Android平臺上的數(shù)獨手機游戲設(shè)計開發(fā),講解基于Android平臺的手機游戲開發(fā)的基本過程。
數(shù)獨是一種邏輯性的數(shù)字填充游戲。玩家需要根據(jù)9×9盤面上的已知數(shù)字,推理出所有剩余空格的數(shù)字,并滿足每一行、每一列、每一個粗線宮(即3x3的大格)內(nèi)的數(shù)字均含1-9,不重復(fù)。
(1)點擊數(shù)獨游戲的APP圖標(biāo),直接進入游戲;(2)點擊主界面的空格,將出現(xiàn)對應(yīng)的數(shù)字提示對話框;(3)點擊提示框中的數(shù)字,填入空格中;(3)當(dāng)空格中的數(shù)字都填寫正確時,出現(xiàn)恭喜界面。
游戲主界面設(shè)計中,需要解決的關(guān)鍵技術(shù)如下:
設(shè)計ArrayRandom類,主要負(fù)責(zé)生成九宮格中的初始化數(shù)據(jù),判斷每行、每列以及每個宮格內(nèi)的數(shù)字不重復(fù)等功能。宮格內(nèi)產(chǎn)生1-9之間隨機數(shù)字運用的規(guī)則是:生成的隨機數(shù)字放置在數(shù)組8-time下標(biāo)的位置,隨著time的增加,已經(jīng)嘗試過的數(shù)字將不會再取到。
設(shè)計MyView類,繼承自View類,主要完成九宮格及數(shù)字的繪制工作。繪制九宮格采用分步繪制的方法。第一步,繪制小網(wǎng)格線,添加背景色;第二步,繪制大網(wǎng)格線(宮格線)。九宮格中有關(guān)數(shù)字的邏輯運算交由Game類完成。
當(dāng)用戶按下九宮格中空格時,給用戶提示對話框,提示用戶可選的數(shù)字。用戶按下空格發(fā)生單點觸摸事件,需要處理的關(guān)鍵問題有:計算某個單元格中已經(jīng)不可用的數(shù)據(jù);對話框顯示可用數(shù)據(jù);將選定數(shù)據(jù)顯示到單元格中。
數(shù)獨游戲的程序結(jié)構(gòu)圖如下所示:

圖1 程序結(jié)構(gòu)圖
利用游戲的運行過程,說明各個類在游戲中的所起作用,具體如下:啟動游戲,MainActivity開始運行,創(chuàng)建MyView對象,利用ArrayRandom生成初始數(shù)據(jù),通過MyView中的繪制方法顯示初始界面。當(dāng)用戶點擊空格時,從Game中獲取可用數(shù)據(jù),將可用數(shù)據(jù)顯示到KeyGialog對話框中,點擊選擇對話框中的可用數(shù)字,被選擇的數(shù)字通過MyView中的重繪方法刷新界面。當(dāng)單元格中的空格都填滿數(shù)字時,游戲結(jié)束。

圖2 游戲的初始界面

圖3 提示對話框

圖4 勝利界面
此數(shù)獨游戲使用Eclipse集成工具,采用Java語言開發(fā),從面向?qū)ο蟮乃季S方式設(shè)計項目中的各個類,實現(xiàn)類之間相互通信。測試的結(jié)果表明,數(shù)獨游戲運行正常,達(dá)到了休閑娛樂、鍛煉邏輯思維能力的目的,完成效果良好。