李歡悅



摘? 要: 主要介紹經典消滅星星手機游戲的特點及開發情況,闡述在Excel環境下消滅星星游戲的設計、實現及其特點。Excel中隱含VBA程序設計語言,作為一個例子,文章給出了在Excel基礎上結合VBA程序設計語言,設計實現消滅星星游戲的具體方法。由此來說明利用VBA與Excel基本功能相結合,可以更深入地發揮Excel的效能。在Excel應用教學中,適當介紹VBA例子,讓學生了解VBA的高效率和靈活性,將會引導激發學生更加深入地學習Excel這一應用軟件。
關鍵詞: EXCEL; VBA; 消滅星星; 游戲設計
中圖分類號:TP311.1? ? ? ? ? 文獻標識碼: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 開發背景及意義
現在大部分人都使用智能手機,并且通常都會在手機中裝一些游戲,特別是年輕人使用的手機。其中消滅星星游戲是一個益智、小巧、易玩而且好玩的小游戲,深受大家的喜愛。這個手機游戲的開發設計,大部分是基于Android[1-2]系統平臺,利用Lgame[3]游戲引擎開發完成。這里要介紹的是基于辦公軟件Office的Excel環境開發設計的消滅星星游戲。這個游戲對運行環境沒有特別的要求,在個人電腦系統中安裝Office2007以上版本軟件就可以,不必借助其他任何工具就能實現。
當前,對于在校的青年學生來說,他們都熟悉消滅星星這個游戲,若在他們學習Excel過程中,通過向他們展示Excel環境下消滅星星這一游戲,讓他們認識到Excel還能做這些。介紹一些Excel環境下的VBA[4-5]設計,使他們認識VBA的高效率和靈活性,這將大大激發他們對Excel的學習興趣,提高學習Excel的積極性。使他們更加深入地去挖掘Excel的應用,并將其應用到實際工作中。特別是對于計算機專業的新生來說,通過這個游戲的設計體驗,能更好地煅煉他們的思維和算法設計能力,對后繼學習起到激勵和幫助的作用。
1 消滅星星游戲程序流程圖 (圖1)
2 消滅星星游戲界面及主要模塊 (圖2)
3 主要模塊代碼
Public Sub pass() '每關初始化
g = g + 1? ? ? ? '關數
gg = 0? ? ? ? ?'過關標志為未過關
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)? ?'隨機填充3-7號色
Next j
Next i
Range("K3").Select
ggs = g * (2000 + (g - 1) * 200) / 2? '首關1000,每關公差200,計算第g關的總分
Cells(3, 6).Value = ggs? ? '顯示第g關應達到總分
End Sub
Public Sub Clear()
x = ActiveCell.Row
y = ActiveCell.Column
c = ActiveCell.Interior.ColorIndex
ks = 1? ? '計算色塊變量
Call popstar(x, y, c)
Call score? ? ?'計算總分
End Sub
Public Sub popstar(ByVal x As Integer, ByVal y As Integer, ByVal c As Integer)? '消除色塊
'方法:檢測點擊的單元格(中心點)左右上下單元格的顏色是否與點擊的單元格顏色相同,相同則消除中心點及左(右、上、下)格顏色。然后向左右上下四個方向移動中心點,迭代調用本過程。
If Cells(x, y - 1).Interior.ColorIndex = c Then? ?'活動單元格的左格是否同色
ActiveCell.Interior.ColorIndex = 0? ? ? ? ?'消除活動單元格顏色
Cells(x, y - 1).Interior.ColorIndex = 0? ? ? '消除左格顏色
ks = ks + 1
y = y - 1? ? '中心點向左移一格
If y > 3 Then? ? '若未超過左邊界,向左消除同色塊
Call popstar(x, y, c)? ? '迭代調用本過程
y = y + 1? ? ? '中心點復位
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 界面運行效果圖
界面效果圖(圖3)
運行效果圖(圖4)
5 結束語
此游戲在Excel環境下利用VBA設計實現。游戲只有一個文件,很小巧,代碼也很簡單。界面簡潔、美觀,利用Excel本身的顯示可縮放性,界面同樣可縮小放大,窗口位置也可移動,可自行調整到滿意。運行速度較快,場景簡單、實用。場景效果沒有手機版本的華麗動畫,也沒有聲音效果,這是美中不足之處。對于在辦公之余,用這游戲放松一下,還是很不錯的,而且沒有煩人的廣告。重要的是,通過此游戲的設計實現,說明Excel并不是僅能做數據報表、數據分析和圖表等,它還包含程序設計功能,然而這方面往往被人們忽視了。若能在應用Excel時,結合VBA程序設計功能,將能大大地發揮Excel的潛能,達到事半功倍的效果。另外在Excel的教學中適當介紹VAB的一些例子,對于初學編程的學生、學習Excel應用的學生,能引導激發他們發揮VBA的作用。
參考文獻(References):
[1] 劉甫迎,劉焱. Android移動編程實用教程[M].電子工業出版社,2012.
[2] CSND 劉桂林 Android系統篇(一)——建立Android系統開發環境? https://blog.csdn.net/qq_26787115/article/details/79543340
[3] 百度文庫 朱林. 基于Android消滅星星游戲的設計與實現
https://wenku.baidu.com/view/5fe13a5f5022aaea 998f0fd1.html
[4] 杰誠文化.Excel2007財務管理范例應用[M].中國青年出版社,2008.
[5] 宋偉,吳建國等.中文Visual Basic 6.0高級編程[M].清華大學出版社,1999.