Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public Class Main
- Dim UnknownNumber, SmallerNumber, LargerNumber, Minute, Second, Attempts, AnswerCode, TryAgain, TotalScore As Integer '數字變數宣告
- Dim RandomNumbers As New Random() '隨機數宣告
- Private Sub GenerateNewNumberButton_Click(sender As Object, e As EventArgs) Handles GenerateNewNumberButton.Click
- NewGame() '開始新遊戲副程式
- End Sub
- Private Sub Main_Load(sender As Object, e As EventArgs) Handles Me.Load
- '啟用產生新數字按鈕,禁用其他控制項
- GenerateNewNumberButton.Enabled = True
- SubmitAnswerTextBox.Enabled = False
- SubmitAnswerButton.Enabled = False
- '改變焦點
- GenerateNewNumberButton.Focus()
- End Sub
- Private Sub EmergencyRepairLinkLabel_Click(sender As Object, e As EventArgs) Handles EmergencyRepairLinkLabel.Click
- '緊急重新啟動
- Application.Restart()
- End Sub
- Private Sub SubmitAnswerButton_Click(sender As Object, e As EventArgs) Handles SubmitAnswerButton.Click
- '提交答案副程式
- SubmitAnswer()
- End Sub
- Sub CheckAnswer() '驗證答案副程式
- '增加嘗試次數
- Attempts = Attempts + 1
- If Attempts <= 9 Then
- AttemptsLabel.Text = "0" & Attempts
- Else
- AttemptsLabel.Text = Attempts
- End If
- '驗證答案
- If SubmitAnswerTextBox.Text = UnknownNumber Then
- TimekeepingTimer.Stop() '停止計時器
- CalculateTotalScore() '計算總成績副程式
- WriteResult() '寫入遊戲成績副程式
- SmallerNumberLabel.Text = UnknownNumber : UnknownNumberLabel.Text = UnknownNumber : LargerNumberLabel.Text = UnknownNumber '將標籤改為答案
- SmallerThanLabel1.Text = "=" : SmallerThanLabel2.Text = "="
- MsgBox("恭喜你,猜中了!" & Chr(13) & "該數字是 " & UnknownNumber & "。", vbOKOnly + vbInformation, "遊戲結束")
- MsgBox("// 本次成績" & Chr(13) & "使用時間:" & OperationTimeLabel.Text & Chr(13) & "嘗試次數:" & AttemptsLabel.Text, vbOKOnly + vbInformation, "遊戲成績")
- TryAgain = MsgBox("遊戲成績已經被記錄。" & Chr(13) & "要再試一次嗎?", vbYesNo + vbQuestion, "遊戲訊息")
- If TryAgain = 6 Then '再試一次
- NewGame()
- Else
- SubmitAnswerTextBox.Text = "" '重置輸入框
- GenerateNewNumberButton.Enabled = True '啟用產生新數字按鈕
- GenerateNewNumberButton.Focus() '改變焦點
- End If
- Else
- If SubmitAnswerTextBox.Text < UnknownNumber Then '如果比未知數小,更改較小數字
- SmallerNumber = SubmitAnswerTextBox.Text
- SmallerNumberLabel.Text = SmallerNumber
- End If
- If SubmitAnswerTextBox.Text > UnknownNumber Then '如果比未知數大,更改較大數字
- LargerNumber = SubmitAnswerTextBox.Text
- LargerNumberLabel.Text = LargerNumber
- End If
- SubmitAnswerTextBox.Enabled = True '啟用提交答案輸入控制項
- SubmitAnswerButton.Enabled = True
- SubmitAnswerTextBox.Text = ""
- SubmitAnswerTextBox.Focus() '改變焦點
- End If
- End Sub
- Sub SubmitAnswer() '提交答案副程式
- '禁用提交答案控制項
- SubmitAnswerTextBox.Enabled = False
- SubmitAnswerButton.Enabled = False
- '檢查答案
- If SubmitAnswerTextBox.Text = "" Then '檢查內容是否為空白
- MsgBox("輸入框不能為空白!", vbOKOnly + vbCritical, "錯誤警告")
- SubmitAnswerTextBox.Enabled = True '啟用提交答案輸入控制項
- SubmitAnswerButton.Enabled = True
- SubmitAnswerTextBox.Focus() '改變焦點
- Else
- If IsNumeric(SubmitAnswerTextBox.Text) = True Then
- If SubmitAnswerTextBox.Text > SmallerNumber Then '檢查答案是否過大或過小
- If SubmitAnswerTextBox.Text < LargerNumber Then
- CheckAnswer() '驗證答案副程式
- Else
- MsgBox("你的數字數值太大了!" & Chr(13) & "數值必須小於 " & LargerNumber & "。", vbOKOnly + vbExclamation, "數值錯誤") '過大警告
- SubmitAnswerTextBox.Text = ""
- SubmitAnswerTextBox.Enabled = True '啟用提交答案輸入控制項
- SubmitAnswerButton.Enabled = True
- SubmitAnswerTextBox.Focus() '改變焦點
- End If
- Else
- MsgBox("你的數字數值太小了!" & Chr(13) & "數值必須大於 " & SmallerNumber & "。", vbOKOnly + vbExclamation, "數值錯誤") '過小警告
- SubmitAnswerTextBox.Text = ""
- SubmitAnswerTextBox.Enabled = True '啟用提交答案輸入控制項
- SubmitAnswerButton.Enabled = True
- SubmitAnswerTextBox.Focus() '改變焦點
- End If
- Else
- MsgBox("輸入框只可輸入數字!", vbOKOnly + vbCritical, "錯誤警告")
- SubmitAnswerTextBox.Text = ""
- SubmitAnswerTextBox.Enabled = True '啟用提交答案輸入控制項
- SubmitAnswerButton.Enabled = True
- SubmitAnswerTextBox.Focus() '改變焦點
- End If
- End If
- End Sub
- Sub NewGame() '開始新遊戲副程式
- '禁用所有控制項
- GenerateNewNumberButton.Enabled = False
- SubmitAnswerTextBox.Enabled = False
- SubmitAnswerButton.Enabled = False
- '重置輸入框
- SubmitAnswerTextBox.Text = ""
- '重置變數
- SmallerNumber = 1 : LargerNumber = 200
- Minute = 0 : Second = 0
- Attempts = 0 : AnswerCode = 0
- '重置文字標籤
- SmallerNumberLabel.Text = "1" : UnknownNumberLabel.Text = "?" : LargerNumberLabel.Text = "200"
- SmallerThanLabel1.Text = "<" : SmallerThanLabel2.Text = "<"
- OperationTimeLabel.Text = "00' 00""" : AttemptsLabel.Text = "00" : AnswerCodeLabel.Text = "Answer Code: 0000"
- '出題
- UnknownNumber = Int(RandomNumbers.Next(1, 200)) '產生大於「1」小於「200」的數值
- '答案代碼
- AnswerCode = UnknownNumber * 5 + 2
- MsgBox("答案代碼:" & AnswerCode, vbOKOnly + vbInformation, "答案代碼") '彈出答案代碼信息
- If AnswerCode >= 1000 Then '答案代碼標籤
- AnswerCodeLabel.Text = "Answer Code: " & AnswerCode
- Else
- If AnswerCode >= 100 Then
- AnswerCodeLabel.Text = "Answer Code: " & "0" & AnswerCode
- Else
- If AnswerCode >= 10 Then
- AnswerCodeLabel.Text = "Answer Code: " & "00" & AnswerCode
- Else
- AnswerCodeLabel.Text = "Answer Code: " & "000" & AnswerCode
- End If
- End If
- End If
- '啟用提交答案輸入控制項
- SubmitAnswerTextBox.Enabled = True
- SubmitAnswerButton.Enabled = True
- '開始計時器
- TimekeepingTimer.Start()
- '改變焦點
- SubmitAnswerTextBox.Focus()
- End Sub
- Private Sub TimekeepingTimer_Tick(sender As Object, e As EventArgs) Handles TimekeepingTimer.Tick
- '紀錄時間
- Second = Second + 1 '記錄秒數
- If Second = 60 Then '分鐘進位,秒數清零
- Minute = Minute + 1
- Second = 0
- End If
- If Second <= 9 Then '顯示時間
- If Minute <= 9 Then
- OperationTimeLabel.Text = "0" & Minute & "' " & "0" & Second & """"
- Else
- OperationTimeLabel.Text = Minute & "' " & "0" & Second & """"
- End If
- Else
- If Minute <= 9 Then
- OperationTimeLabel.Text = "0" & Minute & "' " & Second & """"
- Else
- OperationTimeLabel.Text = Minute & "' " & Second & """"
- End If
- End If
- End Sub
- Sub WriteResult() '寫入遊戲成績副程式
- '寫入遊戲成績
- If My.Computer.FileSystem.FileExists(".\Game Result\Game Result " & Format(Now, "yyyy-MM-dd") & ".csv") Then '檢查檔案是否存在,如果不存在則建立檔案
- My.Computer.FileSystem.WriteAllText(".\Game Result\Game Result " & Format(Now, "yyyy-MM-dd") & ".csv", Format(Now, "yyyy-MM-dd HH:mm:ss") & "," & UnknownNumber & "," & """" & OperationTimeLabel.Text & """""" & "," & Attempts & "," & TotalScore & vbCrLf, True) '寫入成績
- Else
- My.Computer.FileSystem.CreateDirectory(".\Game Result") '建立新目錄
- My.Computer.FileSystem.WriteAllText(".\Game Result\Game Result " & Format(Now, "yyyy-MM-dd") & ".csv", "Time,Answer,Operating Time,Attempts,Total Score" & vbCrLf, True) '建立檔案
- My.Computer.FileSystem.WriteAllText(".\Game Result\Game Result " & Format(Now, "yyyy-MM-dd") & ".csv", Format(Now, "yyyy-MM-dd HH:mm:ss") & "," & UnknownNumber & "," & """" & OperationTimeLabel.Text & """""" & "," & Attempts & "," & TotalScore & vbCrLf, True) '寫入成績
- End If
- End Sub
- Sub CalculateTotalScore() '計算總成績副程式
- '計算總成績
- TotalScore = (Minute * 60 + Second) / Attempts
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment