下載/瀏覽

Download Report

Transcript 下載/瀏覽

計算機程式及實習PPT期末報告
題目:水果拉霸遊戲
班級:
學號:
學生:
老師:
奈米ㄧ甲
49914101
李承睿
謝慶存
拉霸機遊戲規則
1. 開始時需先設定本次投注數量,案拉桿圖示即開始玩
拉霸機。若投注量為0或投注量超過你擁有的總數量,
即顯示對話方塊,告知您「沒錢吃飯囉」就沒辦法玩
拉霸機。投注總量預設100。
2. 若允許投注時,按未拉桿圖示即變成已按拉桿圖示,
此時拉霸機開始轉動且表單上的三個圖片方塊控制項
中,每個控制項會以亂數方式由下面四張圖檔中任選
一張顯示。
•
經過三秒拉霸機就停止,然後判斷有沒有中獎,
然後把拉桿恢復往上
•中獎條件:
 若得到3個0圖,則投注量得到60倍。
 若得到3個1圖,則投注量得到25倍。
 若得到3個2圖,則投注量得到40倍。
 若得到3個3圖,則投注量得到45倍。
程 式 碼
•
•
Public Class Form1
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
' 宣告p(0)~p(3)的PictureBox陣列,可存放用來
存放.jpg~3.jpg
' 其中p(0)不使用,p(1)~p(3)代表三個拉霸圖示
Dim p(3) As PictureBox
' 宣告num(0)~num(3)的整數陣列,用來存放~3的
數值
' 其中num(0)不使用
Dim num(3) As Integer
Dim t As Integer ' 宣告t用來計算Timer1,共執行幾次
'表單載入時執行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
picBtn.Image = New Bitmap("up.jpg")
' 使picBtn顯示up.jpg
' 使載入的圖片隨picBtn大小伸縮
picBtn.SizeMode = PictureBoxSizeMode.StretchImage
p(1) = pic1
' 將pic1指定給p(1)
p(2) = pic2
' 將pic2指定給p(2)
p(3) = pic3
' 將pic3指定給p(3)
' 使用迴圈使pic1~pic3顯示.jpg圖
For i As Integer = 1 To p.GetUpperBound(0)
p(i).Image = Image.FromFile("0.jpg")
p(i).SizeMode = PictureBoxSizeMode.Zoom
Next
Timer1.Interval = 100
' 使Timer1計時器每.1秒執行一次
lblSum.Text = 1000
' 可投注的總數量lblSum為
End Sub
•
•
•
•
•
•
•
•
•
•
•
•
•
•
' 按下picBtn鈕時會執行picBtn_Click事件處理函式
Private Sub picBtn_Click_1(ByVal sender As System.Object, ByVal e As
System.EventArgs)
' 判斷投注量nudQty.Value是否大於0
' 且投注量nudQty.Value是否大於可投注總數量
lblSum.Text
If nudQty.Value > 0 And nudQty.Value <= lblSum.Text Then
Timer1.Enabled = True
'計時器Timer1啟動
' 可投注量減掉本次的的投注題
lblSum.Text = Val(lblSum.Text) - nudQty.Value
nudQty.Enabled = False ' 無法投注
picBtn.Image = New Bitmap("down.jpg") ' 使picBtn顯示down.jpg
picBtn.Enabled = False ' picBtn圖片按鈕失效
Else
'若投注量小於且投注量大於可投注的總數量
MsgBox("沒錢吃飯囉")
End If
End Sub
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
' 當Timer1啟動時,每.1秒皆會執行Timer1_Tick
事件處理程序一次
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Timer1.Tick
Dim r As New Random
'建立亂數物件r
' 使用迴圈讓pic1~pi3每次執行皆亂
數的方式顯
示.jpg~3.jpg
For i As Integer = 1 To p.GetUpperBound(0)
num(i) = r.Next(0, 4)
' 產生0~3 的亂數並指定給n(1)~n(3)
' 使pic1~pic3以亂數的方式顯示0.jpg~3.jpg
p(i).Image = Image.FromFile(num(i).ToString & ".jpg")
Next
t += 1
' 當計時器執行次時,即馬上判斷是
否中獎
If t = 20 Then
Timer1.Enabled = False
' 計時器Timer1停止
nudQty.Enabled = True
' 可以開始投注
picBtn.Enabled = True
' picBtn圖形按鈕可啟用
' 當num(1)=0且num(2)=0且num(3)=0表示
pic1~pic3三個圖示皆是荔枝
If num(1) = 0 And num(2) = 0 And num(3) = 0 Then
lblSum.Text = (Val(lblSum.Text) + (nudQty.Value *
60)).ToString
• MsgBox("中獎了! 投注量*60")
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
' 當num(1)=1且num(2)=1且
num(3)=1表示pic1~pic3三個圖示皆是星星
ElseIf num(1) = 1 And num(2) = 1 And num(3) = 1 Then
lblSum.Text = (Val(lblSum.Text) + (nudQty.Value *
25)).ToString
MsgBox("中獎了! 投注量*25")
' 當num(1)=2且num(2)=2且num(3)=2
表示
pic1~pic3三個圖示皆是西瓜
ElseIf num(1) = 2 And num(2) = 2 And num(3) = 2 Then
lblSum.Text = (Val(lblSum.Text) + (nudQty.Value *
40)).ToString
MsgBox("中獎了! 投注量*40")
' 當num(1)=3且num(2)=3且num(3)=3
表示
pic1~pic3三個圖示皆是BAR
ElseIf num(1) = 3 And num(2) = 3 And num(3) = 3 Then
lblSum.Text = (Val(lblSum.Text) + (nudQty.Value *
45)).ToString
MsgBox("中獎了! 投注量*45")
End If
picBtn.Image = New Bitmap("up.jpg") '使picBtn顯示up.jpg
t = 0
End If
End Sub
• Private Sub picBtn_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
•
' 判斷投注量nudQty.Value是否大於0
•
' 且投注量nudQty.Value是否大於可
投注總數量
lblSum.Text
•
If nudQty.Value > 0 And nudQty.Value <= lblSum.Text Then
•
Timer1.Enabled = True
'計時器Timer1啟動
•
' 可投注量減掉本次的的投注題
•
lblSum.Text = Val(lblSum.Text) - nudQty.Value
•
nudQty.Enabled = False
' 無法投注
•
picBtn.Image = New Bitmap("down.jpg") ' 使picBtn顯示down.jpg
•
picBtn.Enabled = False
' picBtn圖片按鈕失效
•
Else
'若投注量小於且投注量大於可投注的總數量
•
MsgBox("吃大餐配啤酒")
•
End If
•
End Sub
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Private Sub picBtn_Click1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles picBtn.Click
' 判斷投注量nudQty.Value是否大於0
' 且投注量nudQty.Value是否大於可投
注總數量
lblSum.Text
If nudQty.Value > 0 And nudQty.Value <= lblSum.Text Then
Timer1.Enabled = True
'計時器Timer1啟動
' 可投注量減掉本次的的投注題
lblSum.Text = Val(lblSum.Text) - nudQty.Value
nudQty.Enabled = False
' 無法投注
picBtn.Image = New Bitmap("down.jpg") ' 使picBtn顯示down.jpg
picBtn.Enabled = False
' picBtn圖片按鈕失效
Else
'若投注量小於且投注量大於可投注的總數量
MsgBox("沒錢吃飯囉")
End If
End Sub
End Class
心 得 感 想
• 這次的程式設計真不是普通的簡單,比上
次的檢定題目還有有難度多了,這次的作
業需要靠著大家的討論還有較證才能順便
的跑出來,我要感謝老師還有各位一起討
論的同學,我才能學會寫這個拉霸的程式
設計。