1 / 26

計算機程式及實習 期末報告 PPT 製作

計算機程式及實習 期末報告 PPT 製作. 題目 : 記憶大 考驗地獄版 南台科技大學 機械工程學系 車輛一乙 學號 :4A115063 姓名 : 蔡朝翔 教師 : 謝慶存. 記憶大考驗地獄版 主題說明與背景. 記憶大考驗遊戲是常見的多媒體小遊戲。 玩家必須在一定的時間內記住所有卡片的位置,接著圖片會覆蓋,玩家使用滑鼠點擊翻開圖片,當翻開兩張相同圖片牌時會發出 CHIMES.WAV 聲音,若兩張不同時,會顯示答錯訊息,則圖片會重新覆蓋,當所有牌答對翻開時會撥放 APPLAUSE.WAV 鼓掌聲表示過關。. 實際程式撰寫 ~ 開啟檔案. 表單設計 ~ 建立介面.

edita
Download Presentation

計算機程式及實習 期末報告 PPT 製作

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 計算機程式及實習期末報告PPT製作 題目:記憶大考驗地獄版 南台科技大學 機械工程學系 車輛一乙 學號:4A115063 姓名:蔡朝翔 教師:謝慶存

  2. 記憶大考驗地獄版主題說明與背景 • 記憶大考驗遊戲是常見的多媒體小遊戲。 • 玩家必須在一定的時間內記住所有卡片的位置,接著圖片會覆蓋,玩家使用滑鼠點擊翻開圖片,當翻開兩張相同圖片牌時會發出CHIMES.WAV聲音,若兩張不同時,會顯示答錯訊息,則圖片會重新覆蓋,當所有牌答對翻開時會撥放APPLAUSE.WAV鼓掌聲表示過關。

  3. 實際程式撰寫~開啟檔案

  4. 表單設計~建立介面 btn1 btn2 btn3 pic1 pic2 pic3 pic4 pic8 pic5 pic6 pic7 Timer1/Timer2

  5. Pic1、pic2、pic3、pic4、pic5、pic6、pic7、pic8的圖片方塊控制項,用來當作記憶大考驗遊戲的8個圖示。Pic1、pic2、pic3、pic4、pic5、pic6、pic7、pic8的圖片方塊控制項,用來當作記憶大考驗遊戲的8個圖示。 • bnt1、btn2、btn3鈕,來選擇記憶大考驗等級。 • lblShow標籤控制項,用來顯示遊戲開始時之前玩家可以檢視的時間。 • lblTime標籤控制項,用來顯示目前記憶大考驗所花費的遊戲時間。 • Time1計時器控制項,用來計算遊戲開始時之前玩家可以檢視的時間。 • Time2計時器控制項,用來計算目前記憶大考驗所花費的遊戲時間。

  6. bg.jpg為表單背景圖

  7. 1.jpg 2.jpg 3.jpg 4.jpg CHIMES.WAV APPLAUSE.WAV q.jpg 將檔案放置到Bin/Debug資料夾下

  8. 程式碼撰寫部分~語言操作實作 • Public Class Form1 • Dim n() As Integer = {0, 1, 2, 4, 3, 3, 1, 4, 2} 宣告n(0)~n(8)整數陣列,用來表示8個圖片方塊所表示的值 • Dim p(8) As PictureBox 宣告p(0)~p(8)圖片方塊控制項陣列,p(0)省略不用,p(1)~p(8)用來代表pic1~pic8 • Dim hitPic1, hitPic2 As PictureBox 宣告hitPic表示第一次翻牌的圖片方塊、hitPic2表示第二次翻牌的圖片方塊 • Dim t1, t2 As String t1 、t2字串存放第一、二次翻牌圖片所取得的值 • Dim isFirst As Boolean = True isFirst表示第一次按下圖片的旗標 • Dim timer1Tot As Integer 表示timer1計時器執行的次數 • Dim timer2Tot As Integer 表示timer2計時器執行的次數 • Dim level As Integer 表示等級,2為高級,5為中級,10為初級 • Dim tot As Integer 答對的組數,若tot為4表示過關

  9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.LoadMe.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink Form1表單載入時,即觸發Form1_Load事件處理函式 • lblShow.Text = “請按【開始】鈕進行遊戲” • lblTime.Text = "“ • Timer1.Interval = 1000 指定Timer1每一秒執行Timer1_Tick事件處理程序一次 • Timer2.Interval = 1000 指定Timer2每一秒執行Timer2_Tick事件處理程序一次 • p(1) = pic1 • p(2) = pic2 • p(3) = pic3 • p(4) = pic4 • p(5) = pic5分別將pic1~pic8指定給p(1)~p(8),表示p(1)~p(8)可以操作pic1~pic8控制項 • p(6) = pic6 • p(7) = pic7 • p(8) = pic8 • For i = 1 To n.GetUpperBound(0) • p(i).Image = New Bitmap(“q.jpg”)使pic1~pic8顯示q.jpg • p(i).Tag = n(i)pic1~pic8的Tag屬性皆設為n(1)~n(8) • p(i).SizeMode = PictureBoxSizeMode.StretchImage使圖片隨pic1~pic8的大小做縮放 • p(i).BorderStyle = BorderStyle.Fixed3D使pic1~pic8的框線樣式以3D框線顯示 • p(i).Enabled = Falsepic1~pic8屬性失效 • Next • End Sub

  10. Private Sub pic1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pic8.Click, pic7.Click, pic6.Click, pic5.Click, pic4.Click, pic3.Click, pic2.Click, pic1.Click 定義pic1_Click事件處理函式,以提供給pic1~pic8的Click事件使用 • If isFirstThen第一次翻牌 • hitPic1 = CType(sender, PictureBox)將第一次翻牌的圖片方塊指定給hitPic1 • t1 = hitPic1.Tag.ToString將目前翻牌圖片的值指定給t1 • hitPic1.Image = New Bitmap(hitPic1.Tag.ToString & “.jpg”)顯示目前翻牌的圖示 • isFirst = False將isFirst設為False表示目前己結束第二次翻牌 • Else第二次翻牌 • hitPic2 = CType(sender, PictureBox)將第二次翻牌的圖片方塊指定給hitPic • t2 = hitPic2.Tag.ToString將目前翻牌圖片的值指定給t2 • hitPic2.Image = New Bitmap(hitPic2.Tag.ToString & “.jpg”)顯示目前翻牌的圖示 • isFirst = True將isFirst設為True表示目前已結束第二次翻牌 • If t1 = t2 Then若t1等於t2,表示所翻牌兩個圖片的Tag屬性相同,即兩者的圖示相同 • hitPic1.Enabled = False使目前翻牌兩個圖片失效 • hitPic2.Enabled = False • tot += 1答對組數加1 • My.Computer.Audio.Play("CHIMES.WAV", AudioPlayMode.Background) • End If • If t1 <> t2 Then若t1不等於t2,表示所翻牌兩個圖片的Tag屬性不同,即兩者的圖示不相同

  11. MsgBox("答錯了^_|||") • hitPic1.Image = New Bitmap("q.jpg") • hitPic2.Image = New Bitmap(“q.jpg”)將第一次和第二次翻牌的圖示以q.jpg顯示 • End If • If tot = 4 Then 若答對組數為4,即表示過關 • btn1.Enabled = True • btn2.Enabled = Truebtn1. btn2. btn3鈕啟用 • btn3.Enabled = True • Timer1.Enabled = FalseTimer1、2計時器停止 • Timer2.Enabled = False • If level = 2 Then • MsgBox("過關了...果然是記憶高手") • ElseIf level = 5 Then • MsgBox("過關了...你的記憶力還不錯") • ElseIf level = 10 Then • MsgBox("過關了...你的記憶力還馬馬乎乎") • End If • y.Computer.Audio.Play(“APPLAUSE.WAV”, AudioPlayMode.Background)播放股掌聲 • End If • End If • End Sub

  12. Private Sub GameStart()進行遊戲的GameStart()程序 • My.Computer.Audio.Stop()停止播放聲音 • level = timer1Tot • btn1.Enabled = False • btn2.Enabled = Falsebtn1、2、3鈕失效 • btn3.Enabled = False • Timer1.Enabled = True啟動Timer1計時器 • timer2Tot = 0timer2Tot的計時遊戲時間 • t1 = "" • t2 = “”將t1、t2第一、二次翻牌圖片所取得的值設為空白 • tot = 0將答對的組數設為0,若tot為4表示過關 • hitPic1 = Nothing將hitPic1第一次翻牌的圖片方塊設為Nothing • hitPic2 = Nothing將hitPic2第二次翻牌的圖片方塊設為Nothing • lblShow.Text = "你可以檢視的時間還有"& timer1Tot & "秒" • lblTime.Text = "" • For i = 1 To n.GetUpperBound(0)使pic1~pic8顯示1~4.jpg四個圖示 • p(i).Image = New Bitmap(n(i) & ".jpg") • Next • End Sub

  13. Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click • timer1Tot = 2設定timer1Tot的倒數時間為2秒 • GameStart() • End Sub • Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click • timer1Tot = 5設定timer1Tot的倒數時間為5秒 • GameStart() • End Sub • Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click • timer1Tot = 10設定timer1Tot的倒數時間為10秒 • GameStart() • End Sub

  14. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick • Timer1計時器啟動時會觸發Timer1_Tick事件 • timer1Tot -= 1timer1Tot減1即倒數秒數 • lblShow.Text = "你可以檢視的時間還有"& timer1Tot & "秒" • If timer1Tot = 0 Then若timer1Tot倒數秒數為0則執行下面敘述 • Timer1.Enabled = FalseTimer1失效 • lblShow.Text = "" • Timer2.Enabled = TrueTimer2啟動 • For i = 1 To n.GetUpperBound(0) • p(i).Image = New Bitmap(“q.jpg”)pic1~pic8顯示q.jpg • p(i).Enabled = Truepic1~pic8圖片啟用 • Next • End If • End Sub

  15. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick Timer2計時器啟動時會觸發Timer2_Tick事件 • timer2Tot += 1 timer2Tot加1即遊戲時間加1 • lblTime.Text = "遊戲時間:" & timer2Tot & " 秒“ • If timer2Tot = 30 Thentimer2Tot遊戲時間到30時,即執行下面敘述馬上停止遊戲 • Timer2.Enabled = FalseTimer2失效 • btn1.Enabled = True • btn2.Enabled = Truebtn1, btn2, btm3啟用 • btn3.Enabled = True • MsgBox("時間到,闖關失敗") • lblShow.Text = "請按【開始】鈕進行遊戲” • lblTime.Text = "“ • For i = 1 To n.GetUpperBound(0) • p(i).Image = New Bitmap(“q.jpg”)pic1~pic8顯示q.jpg • p(i).Enabled = Falsepic1~pic8圖片失效 • Next • End If • End Sub • End Class

  16. 實際執行程式(開始遊玩) 進入畫面之後選擇初級、中級、高級難度

  17. 初級難度有10秒的時間可記圖案

  18. 中級難度有5秒的時間可記圖案

  19. 高級難度只有2秒的時間可記圖案

  20. 選取到2個一樣的圖片會撥放 音效

  21. 初級過關會顯示:過關了...你的記憶力還馬馬乎乎初級過關會顯示:過關了...你的記憶力還馬馬乎乎 中級過關會顯示:你的記憶力還不錯 高級過關會顯示:過關了...果然是記憶高手

  22. 30秒到會顯示:時間到,闖關失敗 圖案選錯會顯示:答錯了

  23. 全部答對會撥放 鼓掌聲

  24. 卡片造型圖示 你想整人嗎? 這誰記得住阿! 你是在記憶甚麼啦!

  25. 心得感言 • 這一學期VB課程,教了許多跟製作遊戲相關的程式編寫,許多遊戲要透過很多上學期學的程式來完成,一個這麼簡單的遊戲中,程式卻要寫個幾百行,真是讓人覺得又累又煩,可是在按下啟動的那瞬間我覺得非常的興奮,第一次自己做出遊戲,隨然粗糙但是我有花時間在他上面理解要如何製作,就有所謂的成就感,不管它多麼的無聊,只要是你親手去做的你就會感覺到它的趣味,雖然不知道VB在對我往後會不會用到,但是我至少有學到東西,也許我不是電腦設計方面的人,但我可以知道電腦方便的程式是如和製作出來的,人人常說要學會一件事,就得透析他了解他!!

  26. 參考文獻 • 1.Visual Basic2010 基礎必修課 碁峰 林義証.蔡文龍、張傑瑞.何叡.吳明哲著 • 2.Visual Basic2010 基礎必修課 CH15教學範例題目

More Related