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
这篇文章就介绍到这了,希望大家以后多多支持毛票票。