Presentation is loading. Please wait.

Presentation is loading. Please wait.

計算機程式及實習 期末報告之口頭報告PPT製作 題目: 記憶遊戲

Similar presentations


Presentation on theme: "計算機程式及實習 期末報告之口頭報告PPT製作 題目: 記憶遊戲"— Presentation transcript:

1 計算機程式及實習 期末報告之口頭報告PPT製作 題目: 記憶遊戲
南台科技大學 自控一甲 學號: 老師:謝慶存

2 記憶遊戲是幾張紙牌,以掀牌的方式成 對,用最少的時間完成者為佳。
記憶遊戲是幾張紙牌,以掀牌的方式成 對,用最少的時間完成者為佳。

3 系統程式說明 (一)記憶遊戲規則: 選擇專家級有2秒的時間可以觀看 選擇上手級有5秒的時間可以觀看 選擇初學級有10秒的時間可以觀看
(二)若翻牌無法成對,將會出現如下圖視窗

4 專家級過關後會出現上圖第一個視窗 上手級過關後會出現上圖第二個視窗 上手級過關後會出現上圖第三個視窗 過關後皆會出現掌聲音效

5 系統分析 1.設定表單的背景圖為米黃色。 2.將0.jpg~3.jpg和q.jpg(問號圖)、 chimes.wav(風鈴聲)、applause.wav(鼓掌聲)放置目前專案的bin/debug資料夾下。 3.建立名稱為pic1~pic8的圖片方塊控制項,記憶遊戲的8個圖示。 4.建立名稱為btn1專家級、btn2上手級、btn3初手級,用來選擇記憶遊戲的等級。

6 5.建立名稱為lblshow標籤控制項,用來顯示遊戲開始之前玩家可檢視的秒數。
6.建立名稱為lblTime計時器控制項,用來顯示目前玩遊戲所花費的時間。 7.建立名稱Timer1計時器控制項,用來計算遊戲開始之前玩家可檢視的秒數。 8.建立名稱Timer2計時器控制項,用來計算玩遊戲所花費的時間。

7 介面介紹 專家級 Btn1 上手級 Btn2 初學級 Btn3 pic1 pic2 pic3 pic4 pic5 pic6 pic7

8 程式碼介紹 Public Class Form1 '宣告n(0)~n(8)整數陣列,用來表示8個圖片方塊所表示的值
Dim n() As Integer = {0, 1, 2, 4, 3, 3, 1, 4, 2} '宣告p(0)~p(8)圖片方塊控制項陣列,p(0)省略不用,p(1)~p(8)用來代表pic1~pic8 Dim p(8) As PictureBox '宣告hitPic表示第一次翻牌的圖片方塊、hitPic2表示第二次翻牌的圖片方塊 Dim hitPic1, hitPic2 As PictureBox 't1字串存放第一次翻牌圖片所取得的值 't2字串存放第二次翻牌圖片所取得的值 Dim t1, t2 As String 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 'Form1表單載入時,即觸發Form1_Load事件處理函式
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.AutoSizeMode = Windows.Forms.AutoSizeMode.GrowAndShrink lblShow.Text = "請按 [開始] 鈕進行遊戲" lblTime.Text = "" '指定Timer1每一秒執行Timer1_Tick事件處理程序一次 Timer1.Interval = 1000 '指定Timer2每一秒執行Timer1_Tick事件處理程序一次 Timer2.Interval = 1000 '分別將pic1~pic8指定給p(1)~p(8),表示p(1)~p(8)可以操作pic1~pic8控制項 p(1) = pic1 p(2) = pic2 p(3) = pic3 p(4) = pic4 p(5) = pic5 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) '使圖片隨pic1~pic8的大小做縮放 p(i).SizeMode = PictureBoxSizeMode.StretchImage '使pic1~pic8的框線樣式以3D框線顯示 p(i).BorderStyle = BorderStyle.Fixed3D p(i).Enabled = False 'pic1~pic8失效 Next End Sub

10 '定義pic1_Click事件處理函式,以提供給pic1~pic8的Click事件使用
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 '第一次翻牌 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表示目前已結束第二次翻牌 '若t1等於t2,表示所翻牌兩個圖片的Tag屬性相同,即兩者的圖示相同 If t1 = t2 Then '使目前翻牌兩個圖片失效 hitPic1.Enabled = False hitPic2.Enabled = False tot += 1 '答對組數加1 My.Computer.Audio.Play("CHIMES.WAV", AudioPlayMode.Background) End If '若t1不等於t2,表示所翻牌兩個圖片的Tag屬性不同,即兩者的圖示不相同

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

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

13 Private Sub btn1_Click(ByVal sender As System
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn1.Click timer1Tot = '設定timer1Tot的倒數時間為2秒 GameStart() End Sub Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn2.Click timer1Tot = '設定timer1Tot的倒數時間為5秒 Private Sub btn3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn3.Click timer1Tot = '設定timer1Tot的倒數時間為10秒 'Timer1計時器啟動時會觸發Timer1_Tick事件 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 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 'pic1~pic8圖片啟用 p(i).Enabled = True Next End If

14 'Timer2計時器啟動時會觸發Timer2_Tick事件
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick timer2Tot += 1 'timer2Tot加1即遊戲時間加1 lblTime.Text = "遊戲時間:" & timer2Tot & " 秒" 'timer2Tot遊戲時間到30時,即執行下面敘述馬上停止遊戲 If timer2Tot = 30 Then Timer2.Enabled = False 'Timer2失效 'btn1, btn2, btm3啟用 btn1.Enabled = True btn2.Enabled = True 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


Download ppt "計算機程式及實習 期末報告之口頭報告PPT製作 題目: 記憶遊戲"

Similar presentations


Ads by Google