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

26
計計計計計計計計 計計計計 PPT 計計 計計 : 計計計計計計計計 計計計計計計 計計計計計計 計計 計計 :4A115063 計計 : 計計計 計計 : 計計計

Upload: edita

Post on 05-Jan-2016

132 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

題目 : 記憶大考驗地獄版南台科技大學機械工程學系

車輛一乙學號 :4A115063

姓名 : 蔡朝翔教師 : 謝慶存

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

記憶大考驗地獄版主題說明與背景

• 記憶大考驗遊戲是常見的多媒體小遊戲。• 玩家必須在一定的時間內記住所有卡片的位置,接著圖片會覆蓋,玩

家使用滑鼠點擊翻開圖片,當翻開兩張相同圖片牌時會發出CHIMES.WAV 聲音,若兩張不同時,會顯示答錯訊息,則圖片會重新覆蓋,當所有牌答對翻開時會撥放 APPLAUSE.WAV 鼓掌聲表示過關。

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

實際程式撰寫 ~ 開啟檔案

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

表單設計 ~ 建立介面btn1

btn2

btn3

Timer1/Timer2

pic5

pic2 pic3 pic4

pic8pic6 pic7

pic1

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

• Pic1 、 pic2 、 pic3 、 pic4 、 pic5 、 pic6 、 pic7 、 pic8 的圖片方塊控制項,用來當作記憶大考驗遊戲的 8 個圖示。

• bnt1 、 btn2 、 btn3 鈕,來選擇記憶大考驗等級。

• lblShow 標籤控制項,用來顯示遊戲開始時之前玩家可以檢視的時間。

• lblTime 標籤控制項,用來顯示目前記憶大考驗所花費的遊戲時間。

• Time1 計時器控制項,用來計算遊戲開始時之前玩家可以檢視的時間。

• Time2 計時器控制項,用來計算目前記憶大考驗所花費的遊戲時間。

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

bg.jpg 為表單背景圖

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

1.jpg 2.jpg 3.jpg 4.jpg

q.jpg

CHIMES.WAV APPLAUSE.WAV

將檔案放置到 Bin/Debug 資料夾下

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

程式碼撰寫部分 ~ 語言操作實作• 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 表示過關

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

• 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 = False pic1~pic8 屬性失效• Next• End Sub

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

• 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 isFirst Then 第一次翻牌• 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 屬性不同,即兩者的圖示不相同

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

• 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 = True btn1. btn2. btn3 鈕啟用• btn3.Enabled = True• Timer1.Enabled = False Timer1 、 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

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

• Private Sub GameStart() 進行遊戲的 GameStart() 程序• My.Computer.Audio.Stop() 停止播放聲音• level = timer1Tot• btn1.Enabled = False• btn2.Enabled = False btn1 、 2 、 3 鈕失效• btn3.Enabled = False• Timer1.Enabled = True 啟動 Timer1 計時器• timer2Tot = 0 timer2Tot 的計時遊戲時間• 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

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

• 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

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

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

• p(i).Enabled = True pic1~pic8 圖片啟用• Next• End If• End Sub

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

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 Then timer2Tot 遊戲時間到 30 時,即執行下面敘述馬上停止遊戲• Timer2.Enabled = False Timer2 失效

• btn1.Enabled = True• btn2.Enabled = True btn1, 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 = False pic1~pic8 圖片失效• Next• End If• End Sub

• End Class

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

實際執行程式 ( 開始遊玩 )

進入畫面之後選擇初級、中級、高級難度

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

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

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

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

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

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

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

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

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

初級過關會顯示 : 過關了 ... 你的記憶力還馬馬乎乎

中級過關會顯示 : 你的記憶力還不錯

高級過關會顯示 : 過關了 ... 果然是記憶高手

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

30 秒到會顯示 : 時間到,闖關失敗

圖案選錯會顯示 : 答錯了

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

全部答對會撥放 鼓掌聲

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

你想整人嗎 ? 這誰記得住阿 ! 你是在記憶甚麼啦 !

卡片造型圖示

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

心得感言• 這一學期 VB 課程,教了許多跟製作遊戲相關的程式編寫,

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

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

參考文獻• 1.Visual Basic 2010 基礎必修課 碁

峰 林義証 . 蔡文龍、張傑瑞 . 何叡 . 吳明哲著• 2.Visual Basic 2010 基礎必修課 CH15 教學範例題目