当前位置: 移动技术网 > IT编程>脚本编程>VBScript > vbs 自制数字益智游戏实现代码

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

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

这篇文章就介绍到这了,希望大家以后多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网