舉例通過VB編寫猜拳遊戲來講述條件陳述式

來源:互聯網
上載者:User
條件|語句 本文適合讀者主要是入門讀者和對VB入門教學有興趣的朋友。條件判斷是電腦編程中完成主要邏輯結構的流程式控制制語句。在VB中提供了IF 條件運算式1 then      [代碼部分]elseIf 條件運算式2 then       [代碼部分]else       [代碼部分]end IF

 的控制流程程來控製程序的執行結構。條件運算式決定了執行條件的判斷。這裡我們來舉個例子說明該控制流程程的工作方法。       本例通過用VB實現一個猜拳程式來分析條件判斷語句。首先我們先來分析一下基本的猜拳規則:1.       猜拳包括三個基本的拳(石頭,剪刀,布)2.       勝負規則:石頭>剪刀 剪刀>布 布>石頭然後我們來考慮猜拳遊戲的實現,首先猜拳是由選手和電腦之間的比賽進行的,電腦的猜拳我們通過隨機數來產生vb的隨機輸函數rnd函數可以產生0~1之間的隨機數我們通過Int(rnd()*3)+1來實現產生【1~3】的隨機數,表示(石頭,剪刀,布),而選手選擇的拳記錄在變數中playerGuess,然後我們再來編寫規則來實現。對於編寫規則我們就可以運用到上面所介紹的條件判斷的流程式控制制了。通過條件判斷的流程式控制制我們可以做如下比較,如果電腦出(石頭,剪刀,布)的一種,選手出的(石頭,剪刀,布)的一種,那麼就有9種組合規則,因此這裡就需要嵌套的條件判斷。  Dim guess As String    GuessTimer.Enabled = False    guess = randGuess(Int(Rnd() * 3) + 1)    RandLabel.Caption = guess    If guess = "石頭" Then        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'石頭' 雙方平"            Draw = Draw + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'布' 電腦出'石頭' 玩家贏"            Win = Win + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'剪刀' 電腦出'石頭' 電腦贏"            Own = Own + 1        End If    ElseIf guess = "剪刀" Then        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'剪刀' 玩家贏"            Win = Win + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'剪刀' 電腦出'剪刀' 雙方平"            Draw = Draw + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'布' 電腦出'剪刀' 電腦贏"            Own = Own + 1        End If    Else 'guess="布"        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'布' 電腦贏"            Own = Own + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'剪刀' 電腦出'布' 玩家贏"            Win = Win + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'布' 電腦出'布' 雙方平"            Draw = Draw + 1        End If    End If    ResultLabel.Caption = "贏:" & Win & "場" & "平:" & Draw & "場" & "負:" & Own & "場"

 同時我們統計贏,平,負的場數。

 

整個程式設計:

程式介面設計

程式原始碼:

Private playerGuess As StringPrivate randGuess() As StringPrivate Win As SinglePrivate Own As SinglePrivate Draw As Single

 Private Sub ClothCommand_Click()    playerGuess = "Cloth"    GuessTimer.Enabled = True    TitleLabel.Caption = "玩家準備出'布'"End Sub

 Private Sub ForfexCommand_Click()    playerGuess = "Forfex"    GuessTimer.Enabled = True    TitleLabel.Caption = "玩家準備出'剪刀'"End Sub

 Private Sub Form_Load()    ReDim randGuess(3)    randGuess(1) = "石頭"    randGuess(2) = "剪刀"    randGuess(3) = "布"    ResultLabel.Caption = "贏:" & Win & "場" & "平:" & Draw & "場" & "負:" & Own & "場"        Dim sum As Single    sum = 0    For i = 1 To 12        sum = sum + i    Next i    MsgBox sumEnd Sub

 Private Sub GuessCommand_Click()    Dim guess As String    GuessTimer.Enabled = False    guess = randGuess(Int(Rnd() * 3) + 1)    RandLabel.Caption = guess    If guess = "石頭" Then        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'石頭' 雙方平"            Draw = Draw + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'布' 電腦出'石頭' 玩家贏"            Win = Win + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'剪刀' 電腦出'石頭' 電腦贏"            Own = Own + 1        End If    ElseIf guess = "剪刀" Then        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'剪刀' 玩家贏"            Win = Win + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'剪刀' 電腦出'剪刀' 雙方平"            Draw = Draw + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'布' 電腦出'剪刀' 電腦贏"            Own = Own + 1        End If    Else 'guess="布"        If playerGuess = "Rock" Then            TitleLabel.Caption = "玩家出'石頭' 電腦出'布' 電腦贏"            Own = Own + 1        ElseIf playerGuess = "Forfex" Then            TitleLabel.Caption = "玩家出'剪刀' 電腦出'布' 玩家贏"            Win = Win + 1        Else 'playerGuess="Cloth"            TitleLabel.Caption = "玩家出'布' 電腦出'布' 雙方平"            Draw = Draw + 1        End If    End If    ResultLabel.Caption = "贏:" & Win & "場" & "平:" & Draw & "場" & "負:" & Own & "場"End Sub

 Private Sub GuessTimer_Timer()    RandLabel.Caption = randGuess(Int(Rnd() * 3) + 1)End Sub

 Private Sub RockCommand_Click()    playerGuess = "Rock"    GuessTimer.Enabled = True    TitleLabel.Caption = "玩家準備出'石頭'"End Sub

 總結:

       本程式是一個簡單易懂的VB入門程式,通過該程式使剛起步的朋友在興趣中瞭解程式的基本邏輯結構同時拋開了C的機器複雜性。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

11.11 Big Sale for Cloud

Get Unbeatable Offers with up to 90% Off,Oct.24-Nov.13 (UTC+8)

Get It Now >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。