下載/瀏覽Download
Download
Report
Transcript 下載/瀏覽Download
計算機程式與實習
期末報告PPT製作
題目 : 九宮格益智遊戲
學校
系所
班級
學號
姓名
_
_
_
_
_
南台科技大學
機械系
自控延修
49712103
康守維
九宮格益智遊戲說明 :
如下圖案下”開始“鈕後,表單內的九個按鈕會以亂數方式產生白色與紫色的按鈕,
計時器會開始紀時,程式執行時會計算你目前每按一個按鈕的次數,並計秒,直到
按鈕5變為白色,其餘8個按鈕為紫色才算過關。
表單之設計 :
開啟 Visual Basic 2010應用程式,建立新專案,並先在表單設計部
分,建立需要的輸入輸出介面。(從工具箱中選擇需要的控制項,
並改變屬性,方便後續程式編碼。)
Button1
~
Button9
lblTime
lblCount
btnEnd
btnStart
tmrTimer
程式碼編輯 :
Public Class Form1
Dim OnColor As Color = Color.Violet
Dim OffColor As Color = Color.White
Dim seconds As Integer
Dim count1 As Integer
Dim changeCells(,) As Integer = { _
{-1, -1, -1, -1, -1}, _
{1, 2, 4, 5, -1}, _
{2, 1, 3, -1, -1}, _
{3, 2, 5, 6, -1}, _
{4, 1, 7, -1, -1}, _
{5, 2, 4, 6, 8}, _
{6, 3, 9, -1, -1}, _
{7, 4, 5, 8, -1}, _
{8, 7, 9, -1, -1}, _
{9, 5, 6, 8, -1} _
}
Dim Buttons(9) As Button
“宣告紫色Color物件
“宣告白色Color物件
“ ChangeCells(0,0)~(0,4),-1表示無效按鍵
“ChangeCells(1,0)~(1,4),按1時會改變顏色的1,2,4,5數字按鈕
“ChangeCells(2,0)~(2,4),按2時會改變顏色的2,1,3數字按鈕
“ChangeCells(3,0)~(3,4),按3時會改變顏色的3,2,5,6數字按鈕
“ChangeCells(4,0)~(4,4),按4時會改變顏色的4,1,7數字按鈕
“ChangeCells(5,0)~(5,4),按5時會改變顏色的5,2,4,6,8數字按鈕
“ChangeCells(6,0)~(6,4),按6時會改變顏色的6,3,9數字按鈕
“ChangeCells(7,0)~(7,4),按7時會改變顏色的7,4,5,8數字按鈕
“ChangeCells(8,0)~(8,4),按8時會改變顏色的8,7,9數字按鈕
“ChangeCells(9,0)~(9,4),按9時會改變顏色的9,5,6,8數字按鈕
“宣告Button(0)~Button(9)為Button按鈕物件
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim btnHit As Button = CType(sender, Button)
Dim No As Integer = Integer.Parse(btnHit.Text)
Dim i As Integer
For i = 0 To 4
Dim X = ChangeCells(No, i)
此部分程式編碼,主要是訂定Button_Click事件。用來判斷
If X <> -1 Then
使用者1~9哪個按鈕,並將對應的按鈕顏色進行交換動作(紫
If Buttons(X).BackColor.ToArgb = OffColor.ToArgb Then
變白,白變紫)以及判斷九宮格是否過關。
Buttons(X).BackColor = OnColor
Else
Buttons(X).BackColor = OffColor
End If
End If
Next
count1 += 1
lblCount.Text = “次數 : " & count1.ToString & "次﹐"
Dim sum As Integer = 0
For i = 1 To 9
If Buttons(i).BackColor.ToArgb = OnColor.ToArgb Then
sum += 1
End If
Next
If sum = 8 And Buttons(5).BackColor.ToArgb = OffColor.ToArgb Then
btnStart.Enabled = True
btnEnd.Enabled = True
tmrTimer.Enabled = False
MsgBox("恭喜! 過關....")
For i = 1 To 9
Buttons(i).Enabled = False
Next
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btnStart.Enabled = True
btnEnd.Enabled = False
AddHandler Button1.Click, AddressOf Button_Click
AddHandler Button2.Click, AddressOf Button_Click
AddHandler Button3.Click, AddressOf Button_Click
AddHandler Button4.Click, AddressOf Button_Click
將Button1~Button9的Click事件處理程序皆更改
AddHandler Button5.Click, AddressOf Button_Click
執行Button_Click事件處理程序。
AddHandler Button6.Click, AddressOf Button_Click
AddHandler Button7.Click, AddressOf Button_Click
AddHandler Button8.Click, AddressOf Button_Click
AddHandler Button9.Click, AddressOf Button_Click
Buttons(1) = Button1
Buttons(2) = Button2
Buttons(3) = Button3
Buttons(4) = Button4
Buttons(5) = Button5
Buttons(6) = Button6
Buttons(7) = Button7
Buttons(8) = Button8
Buttons(9) = Button9
Dim i As Integer
For i = 1 To 9
Buttons(i).Enabled = False
Next
End Sub
將Button1~Button9控制項分別指定給Button(0)~Button(9) 。
主要是彼此做為參考,方便使用回圈進行。
將Button(1)~Button(9)對應的Button1~Button9的按鈕設為失效。
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
count1 = 0
seconds = 0
lblCount.Text = “次數 : " & count1.ToString() & "次"
lblTime.Text = “秒數 : " & seconds.ToString() & "次"
Randomize()
Dim i As Integer
For i = 1 To 9
Buttons(i).Enabled = True
If Rnd() > 0.5 Then
Buttons(i).BackColor = OnColor
使迴圈配合亂數,使1~9按鈕背景顏色以亂數方式產生白色與紫色。
Else
Buttons(i).BackColor = OffColor
End If
Next
seconds = 0
tmrTimer.Interval = 1000
tmrTimer.Enabled = True
btnStart.Enabled = False
btnEnd.Enabled = True
End Sub
Private Sub tmrTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrTimer.Tick
seconds += 1
每隔1秒執行tmrTime的Tick事件,將秒數加1,
lblTime.Text = “秒數 : ” & seconds.ToString() & “秒”
並將目前累計秒數顯示在螢幕上。
End Sub
Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
End
End Sub
End Class
程式實際執行 :
先按”開始”按鈕,遊戲開始計時秒數及次數,
每按一次按鈕,便會產生新的亂數。
藉由按鈕顏色的變更,做出不同的選擇,一直持續
至按鈕5為白色,其他按鈕成紫色,才算成功。
最後破關時,便會彈出小視窗顯示
“恭喜!過關…. ”。同時也可知道所花
費時間及次數。
應該不怎麼容易吧!
呵呵~
心得感想 :
VB確實是一個容易入學的應用程式設計,相較先前所學過的C++,確實大不
相同,VB的設計主要在人與電腦間做為媒介,例如“工具機的控制介面,透
過介面設計,能提醒程式設計者在編輯程式碼時更加準確,更能注意到細節。
所以VB軟體設計,確實是很適合初學者及人機介面設計人員。
對於程式一概不懂得自己,加上這次是第三次修同樣的課程,說還不懂寫程
式的基礎含意,確實是有點說不過去,但畢竟寫程式是要非常強的數學及程
式編碼的思考邏輯,方能逐一的撰寫一套程式。整個課程快結束,對於所學
到的VB應用程式,真的比較來的容易,至於編碼部分,當然還是待加強許多,
還是需參考許多書籍,希望自己對程式的了解,而不再是排斥的心態,也期
許自己未來可以針對程式語言加以進修,對工作上大有幫助。
加油~
參考文獻 :
Visual Basic 2008 程式設計經典(基峰_蔡文龍)
Visual Basic 2008程式設計經典教本(博碩文化_許清榮)
Visual Basic 2010 程式設計(普林斯頓國際_許華青)
實作Visual Basic 2008程式設計(上奇科技_李淑馨)