拉霸遊戲( 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。