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

所属分类: 脚本专栏 / vbs 阅读数: 2145
收藏 0 赞 0 分享

在看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
  

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

更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多