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