拉霸遊戲( ch15\拉霸遊戲\)

Download Report

Transcript 拉霸遊戲( ch15\拉霸遊戲\)

程式設計-使用Visual Basic 2010
第15章
簡單遊戲製作
簡單遊戲製作
 利用前幾章所介紹的控制元件與程式概念,製作簡單
的遊戲,如猜拳遊戲與拉霸遊戲。
猜拳遊戲(
ch15\剪刀石頭布\)
 我們都玩過猜拳遊戲(剪刀、石頭與布):剪刀贏布;
布贏石頭;石頭贏剪刀。請設計一程式讓使用者與電
腦玩猜拳遊戲,電腦以隨機方式出拳。
 預覽結果
點選「布」,電腦出「石頭」,
結果布贏石頭。下方猜拳結果顯
示「恭喜你贏了」。
猜拳遊戲(
ch15\剪刀石頭布\)
 表單配置
 在表單中新增兩個Label,一個PictureBox,三個Button,一個
TextBox。
猜拳遊戲(
 屬性設定
物件
Label1
Label2
Button1
Button2
Button3
屬性
Text
Text
Text
Text
Text
設定值
電腦出拳
猜拳結果
剪刀
石頭
布
ch15\剪刀石頭布\)
猜拳遊戲(
ch15\剪刀石頭布\)
 將圖片加入專案中
 Step1)點選「專案->WindowsApplication1屬性」。
 Step2) 出現以下專案屬性視窗,點選「資源」,點選上方「加
入資源->加入現有檔案」。
 Step3)點選要加入的檔案,再點選「開啟」。
 Step4) 加入1.jpg後,自動轉成「_1」代碼,使用「
My.Resources._1」可以存取剪刀文字圖片。
 Step5) 依此方法,再加入石頭與布。
猜拳遊戲(
ch15\剪刀石頭布\)
 程式碼新增與解說
 點選Button1按鈕,新增程式碼在Button1_Click函式中,如下方程
式區塊;
 再點選Button2按鈕,新增程式碼在Button2_Click函式中,如下
方程式區塊;
 再點選Button3按鈕,新增程式碼在Button3_Click函式中,如下
方程式區塊。
 電腦隨機產生介於1到3的數值,1表示剪刀、2表示石頭、3表示布
,再由程式判斷電腦與使用者出拳所對應的數值(1、2與3),決定
勝負。
猜拳遊戲(
ch15\剪刀石頭布\)
行號 程式碼(使用者出剪刀的程式碼)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Randomize()
Dim computer As Integer = CInt(Int(Rnd() * 3 + 1))
If computer = 1 Then
PictureBox1.Image = My.Resources._1
End If
If computer = 2 Then
PictureBox1.Image = My.Resources._2
End If
If computer = 3 Then
PictureBox1.Image = My.Resources._3
End If
If computer = 1 Then
TextBox1.Text = "平手"
ElseIf computer = 2 Then
TextBox1.Text = "電腦獲勝"
Else
TextBox1.Text = "恭喜你贏了"
End If
End Sub
猜拳遊戲(
ch15\剪刀石頭布\)
 解說(使用者出剪刀的程式碼)
 第3行:初始化隨機變數。
 第4行:隨機產生介於1到3的數值,儲存到變數computer中。
 第5到7行:若變數compuer等於1,則載入剪刀的圖片
(My.Resources._1)。
 第8到10行:若變數compuer等於2,則載入石頭的圖片
(My.Resources._2)。
 第11到13行:若變數compuer等於3,則載入布的圖片
(My.Resources._3)。
 第14到20行:若變數computer等於1(表示電腦出剪刀,使用者也
出剪刀),則文字方塊顯示「平手」,若變數computer等於2(表示
電腦出石頭,使用者出剪刀),則文字方塊顯示「電腦獲勝」,否
則(表示電腦出布,使用者出剪刀)文字方塊顯示「恭喜你贏了」。
拉霸遊戲(
ch15\拉霸遊戲\)
 隨機產生三個介於1到7的數字,三個數中一個7獲得
200元,兩個7獲得500元,三個7獲得1000元,請寫
一個程式實作拉霸遊戲。
 預覽結果
點選「開始遊戲」,隨機產生
三個數,並計算獲得獎金。
拉霸遊戲(
 表單配置
在表單中新增一個Button,
三個PictureBox,一個
Label與一個TextBox。
 屬性設定
物件
Button1
Label1
屬性
Text
Text
設定值
開始遊戲
獲得獎金
ch15\拉霸遊戲\)
拉霸遊戲(
ch15\拉霸遊戲\)
 將圖片加入專案中
 同前節將1號到7號圖片加入專案的資源(Resources)中。
 程式碼新增與解說

點選Button1按鈕,新增程式碼在Button1_Click函式中,如下
方程式區塊。
拉霸遊戲(
ch15\拉霸遊戲\)
行號 程式碼
1
Public Class Form1
2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
3
Dim x(3) As Integer
4
Dim num As Integer = 0
5
Dim score As Integer = 0
6
Randomize()
7
For i As Integer = 1 To 3
8
x(i) = CInt(Int(Rnd() * 7) + 1)
9
If i = 1 Then
10
Select Case (x(i))
11
Case Is = 1
12
PictureBox1.Image = My.Resources._1
13
Case Is = 2
14
PictureBox1.Image = My.Resources._2
15
Case Is = 3
16
PictureBox1.Image = My.Resources._3
17
Case Is = 4
18
PictureBox1.Image = My.Resources._4
19
Case Is = 5
20
PictureBox1.Image = My.Resources._5
21
Case Is = 6
22
PictureBox1.Image = My.Resources._6
23
Case Is = 7
24
PictureBox1.Image = My.Resources._7
25
End Select
26
End If
拉霸遊戲(
ch15\拉霸遊戲\)
 解說(只先處理第一張數字,其餘第二、三張程式碼請
參閱本書或程式範例)






第3行:宣告x為整數陣列,有三個元素。
第4行:宣告num為整數變數,並初始化為0。
第5行:宣告score為整數變數,並初始化為0。
第6行:初始化隨機環境。
第7到63行:使用For迴圈隨機產生介於1到7的數(第8行)
第9到26行:設定PictureBox1的圖片,若x(1)等於1,則
PictureBox1載入數值為1的圖片;若x(1)等於2,則PictureBox1
載入數值為2的圖片;若x(1)等於3,則PictureBox1載入數值為3
的圖片;若x(1)等於4,則PictureBox1載入數值為4的圖片;若
x(1)等於5,則PictureBox1載入數值為5的圖片;若x(1)等於6,
則PictureBox1載入數值為6的圖片;若x(1)等於7,則
PictureBox1載入數值為7的圖片。
拉霸遊戲(
行號 程式碼
64
For i As Integer = 1 To 3
65
If x(i) = 7 Then
66
num = num + 1
67
End If
68
Next
69
If num = 1 Then
70
score = 200
71
ElseIf num = 2 Then
72
score = 500
73
ElseIf num = 3 Then
74
score = 1000
75
End If
76
TextBox1.Text = score
77
End Sub
78 End Class
ch15\拉霸遊戲\)
拉霸遊戲(
ch15\拉霸遊戲\)
 解說
 第64到68行:使用For迴圈計算陣列x中元素數值為7的個數,
若陣列x中元素數值等於7,則變數num加1(第65到67行)。
 第69到75行:若num等於1,則變數score等於200(第69到70行)
,若num等於2,則變數score等於500(第71到72行),若num等
於3,則變數score等於1000(第73到74行)
 第76行:顯示獎金於TextBox1。