下載/瀏覽Download

Download Report

Transcript 下載/瀏覽Download

計算機程式及實習期末報告
指導老師:謝慶存
南台科技大學
機械工程系奈米一甲
吳美萱
遊戲說明
由程式取一亂數,玩家
在下拉式選單中選取四
碼0~9不重複之數字,
按下確認按鍵猜測結果
會顯示於猜測記綠框格
中,並記錄猜測次數,
若猜不到該組數字可按
Tell Me得知答案。
Retart可重新開始,並
將猜測次數歸零。
版面配置
ComboBox1
ComboBox3
GroupBox1
ComboBox2
Label2
ComboBox4
Label3
Button1
Button3
GroupBox2
Button2
Button4
設計重點
While out = 0
For index = 0 To 3
value(index) = CInt(Int((10 * Rnd())))
Next index
out = 0
For i = 0 To 3
For j = 0 To 3
If value(i) = value(j) Then
out += 1
End If
Next j
Next i
If out <> 4 Then
out = 0
End If
End While
隨機取4個0~9的亂數
然後判斷有無數字重複
如果有 則重新取亂數 動作一直重複到亂數沒有重覆的數字
For i = 0 To 3
If value(i) = value1(i) Then
a += 1
End If
Next
For i = 0 To 3
For j = 0 To 3
If value(i) = value1(j) Then
b += 1
End If
Next j
Next i
End If
比對玩家的數字與正確答案 有幾A幾B
第一個迴圈判斷有幾個A存放在變數a
第二個迴圈判斷有幾個數字重複存放在變數b
因為b包含數字正確與位置正確(也就是A)所以要扣掉
a
所以b-a = B
程式碼內容
Public Class Form1
Dim value(4) As Integer
Dim value1(4) As Integer
Dim count As Integer = 0
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e
As System.Windows.Forms.FormClosingEventArgs) Handles
Me.FormClosing
Dim a As Integer
a = MsgBox("請問是否離開", MsgBoxStyle.YesNo, )
If a = 7 Then
e.Cancel = True
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim index, i, j As Integer
Dim out As Integer = 0
Randomize()
While out = 0
For index = 0 To 3
value(index) = CInt(Int((10 * Rnd())))
Next index
out = 0
For i = 0 To 3
For j = 0 To 3
If value(i) = value(j) Then
out += 1
End If
Next j
Next i
If out <> 4 Then
out = 0
End If
End While
Me.TextBox3.Text = count.ToString()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
value1(0) = Me.ComboBox1.Text
value1(1) = Me.ComboBox2.Text
value1(2) = Me.ComboBox3.Text
value1(3) = Me.ComboBox4.Text
Dim i, j As Integer
Dim a As Integer = 0
Dim b As Integer = 0
Dim out As Integer = 0
For i = 0 To 3
For j = 0 To 3
If value1(i) = value1(j) Then
out += 1
End If
Next j
Next i
If out > 4 Then
MsgBox("請輸入4個不相同的數字", , "喔
喔!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
Else
count += 1
Me.TextBox3.Text = count.ToString()
For i = 0 To 3
If value(i) = value1(i) Then
a += 1
End If
Next
For i = 0 To 3
For j = 0 To 3
If value(i) = value1(j) Then
b += 1
End If
Next j
Next i
End If
Me.TextBox1.Text = a.ToString() + "A" + (b - a).ToString() + "B"
Me.TextBox2.Text += value1(0).ToString() + value1(1).ToString() +
value1(2).ToString() + value1(3).ToString + "
" + a.ToString() + "A" + (b
- a).ToString() + "B" & vbCrLf
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
Dim index, i, j As Integer
Dim out As Integer = 0
Randomize()
While out = 0
For index = 0 To 3
value(index) = CInt(Int((10 * Rnd())))
Next index
out = 0
For i = 0 To 3
For j = 0 To 3
If value(i) = value(j) Then
out += 1
End If
Next j
Next i
If out <> 4 Then
out = 0
End If
End While
count = 0
Me.TextBox3.Text = count.ToString()
Me.TextBox1.Text = ""
Me.TextBox2.Text = ""
Me.ComboBox1.Text = "0"
Me.ComboBox2.Text = "0"
Me.ComboBox3.Text = "0"
Me.ComboBox4.Text = "0"
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button4.Click
MsgBox(value(0).ToString() + value(1).ToString() +
value(2).ToString() + value(3).ToString, , "給你看答案 不要當我!!")
End Sub
End Class