举例通过VB编写猜拳游戏来讲述条件语句

条件|语句

本文适合读者主要是入门读者和对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的机器复杂性。

时间: 2024-10-30 20:46:20

举例通过VB编写猜拳游戏来讲述条件语句的相关文章

多谢-如何使用VB编写五子棋游戏,我差一部分。(msgbox重新游戏)求完善

问题描述 如何使用VB编写五子棋游戏,我差一部分.(msgbox重新游戏)求完善 已经编写一部分还差一部分.(msgbox重新游戏) Option Base 1 Dim n% Const bk As Integer = 240 Dim gridH%, gridW% Dim flag As Integer Dim nw%, nb% Dim arr(7, 7) As Integer Private Sub chess_MouseDown(Button As Integer, Shift As Int

游戏开发-用vb.net编写五子棋游戏代码详解

问题描述 用vb.net编写五子棋游戏代码详解 vb.net初学者,求五子棋游戏编写步骤详解代码解释还有ai算法的构建 解决方案 http://download.csdn.net/detail/winter_ling/2469095http://download.csdn.net/detail/jinsenianhua2012/4286183http://download.csdn.net/detail/qwciyuan/3362601 解决方案二: 五子棋的核心算法 五子棋是一种受大众广泛喜爱

用VB编写ActiveX DLL实现ASP编程

ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境.他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到一定的影响,更为关键的是,使用ASP来开发完成一个项目之后,整个项目在交付客户使用的时候,是会连带所有的ASP脚本源代码的,也就无法将商业程序保密了,源代码泄漏会给自己造

如何利用VB编写NT服务程序

程序 一.NT服务程序    所谓NT服务,实际上就是一个可以在系统启动时自动在一定身份下启动的伴随系统长时间存在的进程.象FTP server.HTTP server.脱机打印等都是采用NT服务的形式提供的.这实际上类似Unix的root daemon进程.NT服务归纳起来,NT服务又以下几个特征:1.可以自启动,不需要交互启动.这对于服务器来说是一个重要的特征.当然,你可以决定服务是否自启动,甚至可以屏蔽某个服务.    2.NT服务没有用户界面,基本上类似一个DOS 程序,因为NT服务必须

用VB编写的刷QQ等级的工具

我今天用了www.cn90.net原创的一个刷QQ等级的工具.感觉这样软件它的编写很无聊,也不难,因此我就试着用VB也编写一个吧! ========================================================Option ExplicitPrivate Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) A

使用VB编写纯ASP程序

程序 前几天大哥对我说,使用asp真麻烦,编译环境实在是差劲,他总是在vb里面写好调试好代码然后在把代码粘贴到asp程序中,为此,我在这提出一个解决之道.使用VB接替ASP所有的对象,在VB中编写纯粹的ASP程序. 大家应该都知道,其实asp中的好多组件都是使用VB编写出来的,但是让大家感到很不方便的是如何使用asp固有的几个组件,例如Response,Request,Application,Session等等,如果我要是能够在VB里面直接使用这些组件的话,那么就能够直接使用VB编写asp运用程

以前收集的一些资料---使用VB编写纯ASP程序(献给大哥)

程序             使用VB编写纯ASP程序    前几天大哥对我说,使用asp真麻烦,编译环境实在是差劲,他总是在vb里面写好调试好代码然后在把代码粘贴到asp程序中,为此,我在这提出一个解决之道.使用VB接替ASP所有的对象,在VB中编写纯粹的ASP程序.    大家应该都知道,其实asp中的好多组件都是使用VB编写出来的,但是让大家感到很不方便的是如何使用asp固有的几个组件,例如Response,Request,Application,Session等等,如果我要是能够在VB里

vb编程-vb编写让word文件在AxWebBrowser中打开

问题描述 vb编写让word文件在AxWebBrowser中打开 只能弹出打开,无法在框内显示mypath = Directory.GetCurrentDirectory() AxWebBrowser1.Navigate(mypath & ""章节文件1.docx"")该如何操作

加密解密算法-已知VB编写的加密算法,求破对应解密算法!

问题描述 已知VB编写的加密算法,求破对应解密算法! 求大神编写对应的解密算法!跪谢! Dim Psw As String Dim Key As String Psw = Trim(Text1.Text) Key = StrReverse(Psw) Key = Key & Left(Key, 1) & Right(Key, 1) Key = Key & Key & Key Dim Val As String Dim Idx1 As Integer Dim Idx2 As I