vbs 自制数字益智游戏实现代码
程序员文章站
2022-06-17 22:09:56
在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡;
1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项,
2.注册: 注册成功会将用户账户与密...
在看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
这篇文章就介绍到这了,希望大家以后多多支持。
上一篇: VBS数组深入浅出
下一篇: VBS基础篇 - vbscript队列