文章目录
- 1. 案例介绍
- 2. 准备工作
- 3. 代码汇总
- 4. 运行结果
- 5. 后记
1. 案例介绍
这个案例是我在看*《计算机是怎样跑起来的》—— 矢泽久雄[日]*看到的一个小案例,使用 Visual Basic Scripting Edition 编写的 “剪刀石头布” 小游戏。
VBScript 是 BASIC 语言的一个版本,可以很方便地在目前的 Win 系列操作系统上运行。
玩家可以和计算机进行五轮的石头剪刀布游戏,比赛结束后,会显示玩家获胜的次数。
2. 准备工作
除了代码和 Win 系列电脑,我们什么都不用准备!
之所以想把这个小案例写进来,是因为它真的非常有意思,得益于操作系统上的组件,我们什么都不用准备(当然代码还是要写的),就能够在我们的电脑上运行。
用于执行 VBScript 程序的 WSH 已作为标准组件,被集成进 Windows 98/Me/2000/XP 操作系统。
3. 代码汇总
以下就是来自于书上的代码示例程序,鉴于可能出现的中文编码错误,我已经将出现的中文改为了英文。我们可以在电脑上将下面程序拷贝到记事本中,然后保存为 .vbs 格式,双击运行即可。
' 初始化表示手势的变量
Dim gesture(2)
gesture(0) = " stone "
gesture(1) = " scissors "
gesture(2) = " cloth "
' 初始化对玩家获胜次数计数的变量
wins = 0
' 初始化随机数种子
Randomize
' 显示程序启动信息
MsgBox "Stone & Scissors & Cloth Game. Ver.1.00 by H.Yazawa"
' 进行五轮比试
For i = 1 To 5
' 输入玩家的手势
user = Cint(InputBox(" 0:Stone, 1:Scissors, 2:Cloth "))
' 用随机数决定计算机的手势
computer = Cint(Rnd * 2)
' 生成提示双方出的手势的字符串
s = " Player: " & gesture(user) & " ,Computer: " & gesture(computer)
' 判定胜负,显示结果
If user = computer Then
MsgBox s & " ...draw! "
ElseIF computer = (user + 1) Mod 3 Then
MsgBox s & " ...player Win! "
wins = wins + 1
Else
MsgBox s & " ...computer Win! "
End If
Next
' 显示玩家的获胜次数
MsgBox " Player wins: " & wins
程序很简单,先是定义变量,然后是五轮循环判断,如果玩家获胜,那么玩家获胜次数加 1,最终统计输出玩家获胜次数。
4. 运行结果
欢迎界面:我们要感谢作者 H.Yazawa。
程序运行界面,告诉我们石头剪刀布分别对应的数字,我们将数字输入到输入框中,然后点击确定即可。
程序会判断电脑获胜还是玩家获胜。此为玩家获胜的提示。
此为电脑获胜的提示。
此为平局的提示。
最后会打印输出玩家获胜的次数。
5. 后记
关于如何统计剪刀石头布的胜负,观察下表,我们可以发现如下规律,首先如果二者不相等,(对应数字+1)mod 3 等于另一个人的结果,那么就说明我获胜,否则失败。
石头:0、剪刀:1、布:2。
0 | 1 | 2 | |
0 | - | x | o |
1 | o | - | x |
2 | x | o | - |
以上就是我们这次关于 VBScript 的尝鲜,如果感兴趣的话,以后咱们可以写如何使用 Python 实现剪刀石头布的小游戏,希望你们喜欢,如果有什么问题,也可以私聊我。