vbs 自制数字益智游戏实现代码

在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡;

1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项,

2.注册: 注册成功会将用户账户与密码存入用户数据txt文档中,连续三次输入 空值会直接退出游戏;

3. 登录: 登录时会将输入数据与用户数据文档内容进行比对, 存在该用户则登 录成功, 同样失败三次后退出游戏;

4. 开始游戏: 登录成功后,会直接进入游戏,游戏暂定为三个关卡, 每个关卡三 个小节,游戏通过规则为以关卡作为二维数组的二维数组下标(下标),小 节作为 一位数组下标(下标+4)...文件里有具体实现,不啰嗦额;

5. 用户登录,通关每关游戏都会写入游戏日志文档game _log.txt ,记录用户,操 作,通关进度, 通关时间等

ps: 文件下载后,双击即可运行, 游戏的用户文档game_user.txt和日志文档game_log.txt是按照我桌面路径创建的,如果不喜欢可以直接修改为d:\game\game_user.txt等等,游戏不在乎多好玩, 希望能给想学习vbs的童鞋一些帮助

完整代码

Dim game(3,2),i,j,result,num '定义二维数组 二维长度3, 一维长度2
Dim fso ,ws,f ,logFileWrite,logFileRead, fileStr,flag,flagFailNum, flagIndex ' 定义日志文件
  set ws = CreateObject("wscript.shell")
  Set fso = CreateObject("scripting.filesystemobject")
  If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then
    Else
    Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",true)
      'If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then
       ' Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)
       '    logFileWrite.writeLine "数字猜猜猜小游戏-游戏日志"
     ' end if 

  End If 

  For i=0 To 2 ' 关卡赋值
   For j=4 To 5
    game(i,j-4)= i*3+j
   Next
 Next

 'For i=0 To 2
  ' For j=0 To 1
  'MsgBox "game("&i&","&j&"): "& game(i,j)
  'Next
 'Next

' 选择操作
Dim cnum, failNum, sucFlag,t
   failNum =0
   sucFlag =0
 Do While 1=1

 If sucFlag=1 Then
   Exit Do
  End if 

 If failNum =3 Then
  MsgBox "您有连续三次操作失误,系统将直接退出..."
  Exit do
 end if
 cnum = InputBox( "欢迎来到 数字猜猜猜小游戏 请选择操作:"&chr(10)&" 1.注册  2.登录   3.退出","数字猜猜猜小游戏")
  If cnum ="" Then
     cnum = "-1"
  End if
 Select Case cnum
 Case 1
' 账户注册
Dim juname, upwd,regStr
  regStr = ""
 do while regStr = ""
  uname = InputBox("请输入注册账号:  ","数字猜猜猜小游戏-注册")
  upwd = InputBox("请输入注册密码:  ","数字猜猜猜小游戏-注册")
  If uname <> "" Then
    If upwd <> "" Then
     regStr = uname&"#"&upwd
    Else
     regStr =""
     MsgBox "您输入的注册账号密码有误,请重新输入"
    End If
  Else
    regStr =""
     MsgBox "您输入的注册账号密码有误,请重新输入"
  End If

 If regStr <>"" Then
  If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
      Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
      t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
      'logFileWrite.WriteBlankLines 1
      logFileWrite.writeLine regStr &"   "&t
      logFileWrite.close
      MsgBox "注册成功!"
      exit do
    else
    Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",true)
      If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
       Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
          logFileWrite.writeLine "数字猜猜猜小游戏-用户数据"
          logFileWrite.writeLine regStr
           logFileWrite.close
          MsgBox "注册成功!"
          exit do
     end if
  End If
 end if
 loop

 'wscript.sleep 1000 

case 2
 ' 账户登录
Dim str
  Set logFileRead = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",1)
  fileStr = logFileRead.ReadAll
  logFileRead.close
  str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
  if str <> "" then
   flagIndex = InStr(fileStr,str)
    If flagIndex>0 Then
      flag =1
    Else
      flag = 0
    Do While flagIndex =0
     flagFailNum = flagFailNum +1
     If flagFailNum = 3 Then
     MsgBox "抱歉, 您已连续失败3次,系统退出"
     wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
     flagFailNum =0
    end if
      MsgBox "您的账户与密码输入有误,请查证后再试试...."
     str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
     if str <> "" then
     flagIndex = InStr(fileStr,str)
     end if
     loop
     flag = 1
   End If
  Else
     flag = 0
    Do While flagIndex =0
     flagFailNum = flagFailNum +1
     If flagFailNum = 3 Then
     MsgBox "抱歉, 您已连续失败3次,系统退出"
     wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
     flagFailNum =0
    end if
      MsgBox "您的账户与密码输入有误,请查证后再试试...."
     str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
     if str <> "" then
     flagIndex = InStr(fileStr,str)
     end if
     loop
     flag = 1
  end if 

' 通过登录验证
if flag =1 then
  Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)
      t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
      'logFileWrite.WriteBlankLines 1
      logFileWrite.writeLine "用户登录: "&str &"   "&t

  MsgBox "恭喜您成功登录 数字猜猜猜小游戏! 接下来进入游戏正题:  "
  num =0
  for i=0 to 2
    For j=0 To 1
     result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节"&chr(10)&" 请输入游戏结果(i*3+j+4): "&chr(10)&"退出按-5","益智小游戏-数字猜猜猜: ")
     If result ="-5" Then
     exit for
     end if
     If result ="" Then
     result = "-1"
     end if
     If cint(result) = i*3+j+4 then
      MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."
     End if
     Do While  cint(result) <> i*3+j+4
      num =num+1
    If num =3 Then
      MsgBox "抱歉, 您已连续失败3次,通关失败!"&chr(10)&" 游戏进度截止为第"&(i+1)&"关第"&(j+1)&"小节,下次努力哦..."
      exit Do
    End if
      MsgBox "抱歉,您猜错了!请查证后再试...."
       result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节, 请输入游戏结果(i*3+j+4): ","答案: ")
     If result ="" Then
     result = "-1"
     end if
     If cint(result) = i*3+j+4 then
      MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."
      Exit do
     End if
     loop
    If num =3 Then
      exit for
    end if
    Next
    If result ="-5" Then
     exit for
    end if
    If num =3 Then
      exit for
    End if
    If i=2 Then
     msg = "聪明的勇士,恭喜您成功通关本游戏!么么哒..."
     MsgBox msg
     t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
     logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &"   "&t
     sucFlag =1
    exit for
    End If
     msg = "恭喜您成功通关第"&(i+1)&"关卡, 接下来进入第"&(i+2)&"关...祝您好运!"
    MsgBox msg
     t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
     logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &"   "&t

  Next 

end if

Case 3
 MsgBox "系统即将退出..."
 exit do
case Else
  MsgBox "您的选择有误,请重新选择..."
 failNum = failNum +1
End select

loop
  

这篇文章就介绍到这了,希望大家以后多多支持我们。

(0)

相关推荐

  • vbs 自制数字益智游戏实现代码

    在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡; 1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项, 2.注册: 注册成功会将用户账户与密码存入用户数据txt文档中,连续三次输入 空值会直接退出游戏; 3. 登录: 登录时会将输入数据与用户数据文档内容进行比对, 存在该用户则登 录成功, 同样失败三次后退出游戏; 4. 开始游戏: 登录成功后,会直接进入游戏,游戏暂定为三个关卡, 每个关卡三 个小节,游戏通过规则为以关卡作为二维数组的二维数组下标(下标),小 节作为

  • 为输入框加入数字js校验代码分享

    js限制只能数字输入,并且在把输入的"非法字符"清除掉之后将焦点停留在输入非法字符的位置,参考如下: html部分: <input value="" type="text" onkeyup="javascript:RepNumber(this)"> JavaScript部分: function RepNumber(obj) { var reg = /^[\d]+$/g; if (!reg.test(obj.valu

  • 纯JS实现只能输入数字的简单代码

    只能输入数字 <!DOCTYPE html> <html lang="en"> <head> <title></title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link href=&quo

  • 限制只能输入数字的实现代码

    当我们在一些网站注册账号.填写信息是,不小心将电话号码填写成汉字或其他英文字母了,这显然是不正确的.为了帮助用户更好地纠正输入时的错误,在表单中填写信息时,需要限制手机号.邮编.电话号码这类文本框不能输入其他字符,只能是数字. 通过使用正则匹配输入的时候只是数字: var numRegex = /\D/g再通过JavaScript的 onblur 事件: 定义和用法 onblur 事件会在对象失去焦点时发生. Onblur 经常用于Javascript验证代码,一般用于表单输入框 语法 HTML

  • 文本框只能输入数字的js代码(含小数点)

    只能输入0-9多包括小数点 <html> <head> <meta http-equiv="content-Type" content="text/html;charset=gb2312"> <title>js 只能输入数字和小数点</title> <script language="JavaScript" type="text/javascript">

  • Java中数字黑洞实现代码

    给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有"数字黑洞"之称的6174,这个神奇的数字也叫Kaprekar常数. 例,我们从6767开始,将得到 7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532 - 2358 = 6174 7641 - 1467 = 6174 现给定任意4位正整数,请

  • 世界上最短的数字判断js代码

    我们知道JavaScript提供了typeof运算符,因此最容易想到的是用typeof来判断是否是number类型 function isNumber(obj) { return typeof obj === 'number' } 这个函数对于整数和浮点数都没有问题,但对于NaN值也返回true这让人感到不爽,毕竟用isNumber判断通过后谁也不会用NaN去做算术运算. 那改进一下,用Object.prototype.toString试试 function isNumber(obj) { re

  • 易语言将日期时间转换成纯数字格式的代码

    将时间转换到纯数字格式的代码 .版本 2 .程序集 窗口程序集1 .程序集变量 年, 文本型 .程序集变量 月, 文本型 .程序集变量 日, 文本型 .程序集变量 时, 文本型 .程序集变量 分, 文本型 .程序集变量 秒, 文本型 .子程序 获取时间 年 = 到文本 (取年份 (取现行时间 ())) .判断开始 (取月份 (取现行时间 ()) < 10) 月 = 到文本 ("0") + 到文本 (取月份 (取现行时间 ())) .默认 月 = 到文本 (取月份 (取现行时间 (

  • Python递归调用实现数字累加的代码

    我就废话不多说了,直接上代码吧! def sum_numbers(num): # 1.出口 if num == 1: return 1 # 2.数组累加 temp = sum_numbers(num - 1) return num + temp result = sum_numbers(3) print(result) 输出: 6 补充拓展:python递归计数及结束递归 题目:搜索旋转排序数组 class Solution: TOTAL = 0 RUN = True def search(se

  • JavaScript 中判断变量是否为数字的示例代码

    简介 JavaScript 是一种动态类型语言,这意味着解释器在运行时确定变量的类型.实际上,这也允许我们在相同的代码中使用相同的变量来存储不同类型的数据.如果没有文档和一致性,我们在使用代码时并不总是知道变量的类型. 当我们期望一个变量是数字时,对字符串或数组进行操作可能会在代码中导致奇怪的结果.在本文中,我们将会介绍一些判断变量是否为数字的函数. 像"10"之类的数字的字符串不应被接受.在JavaScript中,诸如NaN,Infinity和-Infinity之类的特殊值也是数字类

随机推荐