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的童鞋一些帮助
完整代码
Dimgame(3,2),i,j,result,num'定义二维数组二维长度3,一维长度2 Dimfso,ws,f,logFileWrite,logFileRead,fileStr,flag,flagFailNum,flagIndex'定义日志文件 setws=CreateObject("wscript.shell") Setfso=CreateObject("scripting.filesystemobject") Iffso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt")Then Else Setf=fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",true) 'Iffso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt")Then 'SetlogFileWrite=fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true) 'logFileWrite.writeLine"数字猜猜猜小游戏-游戏日志" 'endif EndIf Fori=0To2'关卡赋值 Forj=4To5 game(i,j-4)=i*3+j Next Next 'Fori=0To2 'Forj=0To1 'MsgBox"game("&i&","&j&"):"&game(i,j) 'Next 'Next '选择操作 Dimcnum,failNum,sucFlag,t failNum=0 sucFlag=0 DoWhile1=1 IfsucFlag=1Then ExitDo Endif IffailNum=3Then MsgBox"您有连续三次操作失误,系统将直接退出..." Exitdo endif cnum=InputBox("欢迎来到数字猜猜猜小游戏请选择操作:"&chr(10)&"1.注册2.登录3.退出","数字猜猜猜小游戏") Ifcnum=""Then cnum="-1" Endif SelectCasecnum Case1 '账户注册 Dimjuname,upwd,regStr regStr="" dowhileregStr="" uname=InputBox("请输入注册账号:","数字猜猜猜小游戏-注册") upwd=InputBox("请输入注册密码:","数字猜猜猜小游戏-注册") Ifuname<>""Then Ifupwd<>""Then regStr=uname&"#"&upwd Else regStr="" MsgBox"您输入的注册账号密码有误,请重新输入" EndIf Else regStr="" MsgBox"您输入的注册账号密码有误,请重新输入" EndIf IfregStr<>""Then Iffso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt")Then SetlogFileWrite=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.WriteBlankLines1 logFileWrite.writeLineregStr&""&t logFileWrite.close MsgBox"注册成功!" exitdo else Setf=fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",true) Iffso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt")Then SetlogFileWrite=fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true) logFileWrite.writeLine"数字猜猜猜小游戏-用户数据" logFileWrite.writeLineregStr logFileWrite.close MsgBox"注册成功!" exitdo endif EndIf endif loop 'wscript.sleep1000 case2 '账户登录 Dimstr SetlogFileRead=fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",1) fileStr=logFileRead.ReadAll logFileRead.close str=InputBox("请输入您的账户名与密码,中间以#键隔开:","数字猜猜猜小游戏-登录") ifstr<>""then flagIndex=InStr(fileStr,str) IfflagIndex>0Then flag=1 Else flag=0 DoWhileflagIndex=0 flagFailNum=flagFailNum+1 IfflagFailNum=3Then MsgBox"抱歉,您已连续失败3次,系统退出" wscript.sleep5000'就这样退出吧--缺少wscript对象 flagFailNum=0 endif MsgBox"您的账户与密码输入有误,请查证后再试试...." str=InputBox("请输入您的账户名与密码,中间以#键隔开:","数字猜猜猜小游戏-登录") ifstr<>""then flagIndex=InStr(fileStr,str) endif loop flag=1 EndIf Else flag=0 DoWhileflagIndex=0 flagFailNum=flagFailNum+1 IfflagFailNum=3Then MsgBox"抱歉,您已连续失败3次,系统退出" wscript.sleep5000'就这样退出吧--缺少wscript对象 flagFailNum=0 endif MsgBox"您的账户与密码输入有误,请查证后再试试...." str=InputBox("请输入您的账户名与密码,中间以#键隔开:","数字猜猜猜小游戏-登录") ifstr<>""then flagIndex=InStr(fileStr,str) endif loop flag=1 endif '通过登录验证 ifflag=1then SetlogFileWrite=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.WriteBlankLines1 logFileWrite.writeLine"用户登录:"&str&""&t MsgBox"恭喜您成功登录数字猜猜猜小游戏!接下来进入游戏正题:" num=0 fori=0to2 Forj=0To1 result=InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节"&chr(10)&"请输入游戏结果(i*3+j+4):"&chr(10)&"退出按-5","益智小游戏-数字猜猜猜:") Ifresult="-5"Then exitfor endif Ifresult=""Then result="-1" endif Ifcint(result)=i*3+j+4then MsgBox"恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..." Endif DoWhilecint(result)<>i*3+j+4 num=num+1 Ifnum=3Then MsgBox"抱歉,您已连续失败3次,通关失败!"&chr(10)&"游戏进度截止为第"&(i+1)&"关第"&(j+1)&"小节,下次努力哦..." exitDo Endif MsgBox"抱歉,您猜错了!请查证后再试...." result=InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节,请输入游戏结果(i*3+j+4):","答案:") Ifresult=""Then result="-1" endif Ifcint(result)=i*3+j+4then MsgBox"恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..." Exitdo Endif loop Ifnum=3Then exitfor endif Next Ifresult="-5"Then exitfor endif Ifnum=3Then exitfor Endif Ifi=2Then msg="聪明的勇士,恭喜您成功通关本游戏!么么哒..." MsgBoxmsg t=Year(now)&"-"&month(now)&"-"&day(now)&""&Hour(now)&":"&minute(now)&":"&second(now) logFileWrite.writeLine"用户:"&str&"游戏进度:"&msg&""&t sucFlag=1 exitfor EndIf msg="恭喜您成功通关第"&(i+1)&"关卡,接下来进入第"&(i+2)&"关...祝您好运!" MsgBoxmsg t=Year(now)&"-"&month(now)&"-"&day(now)&""&Hour(now)&":"&minute(now)&":"&second(now) logFileWrite.writeLine"用户:"&str&"游戏进度:"&msg&""&t Next endif Case3 MsgBox"系统即将退出..." exitdo caseElse MsgBox"您的选择有误,请重新选择..." failNum=failNum+1 Endselect loop
这篇文章就介绍到这了,希望大家以后多多支持毛票票。