李歡悅
摘? 要: 主要介紹經(jīng)典消滅星星手機(jī)游戲的特點(diǎn)及開發(fā)情況,闡述在Excel環(huán)境下消滅星星游戲的設(shè)計(jì)、實(shí)現(xiàn)及其特點(diǎn)。Excel中隱含VBA程序設(shè)計(jì)語言,作為一個(gè)例子,文章給出了在Excel基礎(chǔ)上結(jié)合VBA程序設(shè)計(jì)語言,設(shè)計(jì)實(shí)現(xiàn)消滅星星游戲的具體方法。由此來說明利用VBA與Excel基本功能相結(jié)合,可以更深入地發(fā)揮Excel的效能。在Excel應(yīng)用教學(xué)中,適當(dāng)介紹VBA例子,讓學(xué)生了解VBA的高效率和靈活性,將會(huì)引導(dǎo)激發(fā)學(xué)生更加深入地學(xué)習(xí)Excel這一應(yīng)用軟件。
關(guān)鍵詞: EXCEL; VBA; 消滅星星; 游戲設(shè)計(jì)
中圖分類號:TP311.1? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號:1006-8228(2020)02-81-03
Designing game PopStar with Excel and the significance
Li Huanyue
(Shantou Polytechnic, Shantou, Guangdong 515041, China)
Abstract: This paper introduces the characteristics and the development of the classic mobile game PopStar, and expounds the design, implementation and feature of the operating game in Excel environment. The VBA programming language is included in Excel, as an example, this paper shows the concrete method to design the game Popstar with VBA language of Excel. It also shows that when VBA combines with the basic functions of Excel, Excel can be used better. In the teaching of Excel application, it is necessary to introduce VBA examples properly to let students understand the high efficiency and flexibility of VBA, which will lead students to learn Excel more deeply.
Key words: EXCEL; VBA; PopStar; game design
0 開發(fā)背景及意義
現(xiàn)在大部分人都使用智能手機(jī),并且通常都會(huì)在手機(jī)中裝一些游戲,特別是年輕人使用的手機(jī)。其中消滅星星游戲是一個(gè)益智、小巧、易玩而且好玩的小游戲,深受大家的喜愛。這個(gè)手機(jī)游戲的開發(fā)設(shè)計(jì),大部分是基于Android[1-2]系統(tǒng)平臺(tái),利用Lgame[3]游戲引擎開發(fā)完成。這里要介紹的是基于辦公軟件Office的Excel環(huán)境開發(fā)設(shè)計(jì)的消滅星星游戲。這個(gè)游戲?qū)\(yùn)行環(huán)境沒有特別的要求,在個(gè)人電腦系統(tǒng)中安裝Office2007以上版本軟件就可以,不必借助其他任何工具就能實(shí)現(xiàn)。
當(dāng)前,對于在校的青年學(xué)生來說,他們都熟悉消滅星星這個(gè)游戲,若在他們學(xué)習(xí)Excel過程中,通過向他們展示Excel環(huán)境下消滅星星這一游戲,讓他們認(rèn)識(shí)到Excel還能做這些。介紹一些Excel環(huán)境下的VBA[4-5]設(shè)計(jì),使他們認(rèn)識(shí)VBA的高效率和靈活性,這將大大激發(fā)他們對Excel的學(xué)習(xí)興趣,提高學(xué)習(xí)Excel的積極性。使他們更加深入地去挖掘Excel的應(yīng)用,并將其應(yīng)用到實(shí)際工作中。特別是對于計(jì)算機(jī)專業(yè)的新生來說,通過這個(gè)游戲的設(shè)計(jì)體驗(yàn),能更好地煅煉他們的思維和算法設(shè)計(jì)能力,對后繼學(xué)習(xí)起到激勵(lì)和幫助的作用。
1 消滅星星游戲程序流程圖 (圖1)
2 消滅星星游戲界面及主要模塊 (圖2)
3 主要模塊代碼
Public Sub pass() '每關(guān)初始化
g = g + 1? ? ? ? '關(guān)數(shù)
gg = 0? ? ? ? ?'過關(guān)標(biāo)志為未過關(guān)
test = True? ? ? '有相連同色塊
sy = 100? ? ? ? '剩余色塊,開始100塊
Cells(2, 5).Value = g
For i = 1 To 10
For j = 1 To 10
Cells(i + 4, j + 3).Interior.ColorIndex = Int(5 * Rnd() + 3)? ?'隨機(jī)填充3-7號色
Next j
Next i
Range("K3").Select
ggs = g * (2000 + (g - 1) * 200) / 2? '首關(guān)1000,每關(guān)公差200,計(jì)算第g關(guān)的總分
Cells(3, 6).Value = ggs? ? '顯示第g關(guān)應(yīng)達(dá)到總分
End Sub
Public Sub Clear()
x = ActiveCell.Row
y = ActiveCell.Column
c = ActiveCell.Interior.ColorIndex
ks = 1? ? '計(jì)算色塊變量
Call popstar(x, y, c)
Call score? ? ?'計(jì)算總分
End Sub
Public Sub popstar(ByVal x As Integer, ByVal y As Integer, ByVal c As Integer)? '消除色塊
'方法:檢測點(diǎn)擊的單元格(中心點(diǎn))左右上下單元格的顏色是否與點(diǎn)擊的單元格顏色相同,相同則消除中心點(diǎn)及左(右、上、下)格顏色。然后向左右上下四個(gè)方向移動(dòng)中心點(diǎn),迭代調(diào)用本過程。
If Cells(x, y - 1).Interior.ColorIndex = c Then? ?'活動(dòng)單元格的左格是否同色
ActiveCell.Interior.ColorIndex = 0? ? ? ? ?'消除活動(dòng)單元格顏色
Cells(x, y - 1).Interior.ColorIndex = 0? ? ? '消除左格顏色
ks = ks + 1
y = y - 1? ? '中心點(diǎn)向左移一格
If y > 3 Then? ? '若未超過左邊界,向左消除同色塊
Call popstar(x, y, c)? ? '迭代調(diào)用本過程
y = y + 1? ? ? '中心點(diǎn)復(fù)位
End If
End If
If Cells(x, y + 1).Interior.ColorIndex = c Then
ActiveCell.Interior.ColorIndex = 0? ?'0表示無填充色
Cells(x, y + 1).Interior.ColorIndex = 0
ks = ks + 1
y = y + 1? ? ? ?'向右消除同色塊
If y < 14 Then
Call popstar(x, y, c)
y = y - 1
End If
End If
If Cells(x - 1, y).Interior.ColorIndex = c Then
ActiveCell.Interior.ColorIndex = 0
Cells(x - 1, y).Interior.ColorIndex = 0
ks = ks + 1
x = x - 1? ?'向上消除同色塊
If x > 4 Then
Call popstar(x, y, c)
x = x + 1
End If
End If
If Cells(x + 1, y).Interior.ColorIndex = c Then
ActiveCell.Interior.ColorIndex = 0
Cells(x + 1, y).Interior.ColorIndex = 0
ks = ks + 1
x = x + 1? ?'向下消除同色塊
If x < 15 Then
Call popstar(x, y, c)
x = x - 1
End If
End If
End Sub
4 界面運(yùn)行效果圖
界面效果圖(圖3)
運(yùn)行效果圖(圖4)
5 結(jié)束語
此游戲在Excel環(huán)境下利用VBA設(shè)計(jì)實(shí)現(xiàn)。游戲只有一個(gè)文件,很小巧,代碼也很簡單。界面簡潔、美觀,利用Excel本身的顯示可縮放性,界面同樣可縮小放大,窗口位置也可移動(dòng),可自行調(diào)整到滿意。運(yùn)行速度較快,場景簡單、實(shí)用。場景效果沒有手機(jī)版本的華麗動(dòng)畫,也沒有聲音效果,這是美中不足之處。對于在辦公之余,用這游戲放松一下,還是很不錯(cuò)的,而且沒有煩人的廣告。重要的是,通過此游戲的設(shè)計(jì)實(shí)現(xiàn),說明Excel并不是僅能做數(shù)據(jù)報(bào)表、數(shù)據(jù)分析和圖表等,它還包含程序設(shè)計(jì)功能,然而這方面往往被人們忽視了。若能在應(yīng)用Excel時(shí),結(jié)合VBA程序設(shè)計(jì)功能,將能大大地發(fā)揮Excel的潛能,達(dá)到事半功倍的效果。另外在Excel的教學(xué)中適當(dāng)介紹VAB的一些例子,對于初學(xué)編程的學(xué)生、學(xué)習(xí)Excel應(yīng)用的學(xué)生,能引導(dǎo)激發(fā)他們發(fā)揮VBA的作用。
參考文獻(xiàn)(References):
[1] 劉甫迎,劉焱. Android移動(dòng)編程實(shí)用教程[M].電子工業(yè)出版社,2012.
[2] CSND 劉桂林 Android系統(tǒng)篇(一)——建立Android系統(tǒng)開發(fā)環(huán)境? https://blog.csdn.net/qq_26787115/article/details/79543340
[3] 百度文庫 朱林. 基于Android消滅星星游戲的設(shè)計(jì)與實(shí)現(xiàn)
https://wenku.baidu.com/view/5fe13a5f5022aaea 998f0fd1.html
[4] 杰誠文化.Excel2007財(cái)務(wù)管理范例應(yīng)用[M].中國青年出版社,2008.
[5] 宋偉,吳建國等.中文Visual Basic 6.0高級編程[M].清華大學(xué)出版社,1999.