经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » ASP/ADO/VBScript » 查看文章
vbs 自制数字益智游戏实现代码
来源:jb51  时间:2019/4/18 8:25:29  对本文有异议

在看vb开发,看到二维数组时突发奇想用二维数组作为游戏关卡;

1. 选择操作: 游戏开始时会提示选择注册, 登录, 退出三种选项,

2.注册: 注册成功会将用户账户与密码存入用户数据txt文档中,连续三次输入 空值会直接退出游戏;

3. 登录: 登录时会将输入数据与用户数据文档内容进行比对, 存在该用户则登 录成功, 同样失败三次后退出游戏;

4. 开始游戏: 登录成功后,会直接进入游戏,游戏暂定为三个关卡, 每个关卡三 个小节,游戏通过规则为以关卡作为二维数组的二维数组下标(下标),小 节作为 一位数组下标(下标+4)...文件里有具体实现,不啰嗦额;

5. 用户登录,通关每关游戏都会写入游戏日志文档game _log.txt ,记录用户,操 作,通关进度, 通关时间等

ps: 文件下载后,双击即可运行, 游戏的用户文档game_user.txt和日志文档game_log.txt是按照我桌面路径创建的,如果不喜欢可以直接修改为d:\game\game_user.txt等等,游戏不在乎多好玩, 希望能给想学习vbs的童鞋一些帮助

完整代码

  1. Dim game(3,2),i,j,result,num '定义二维数组 二维长度3, 一维长度2
  2. Dim fso ,ws,f ,logFileWrite,logFileRead, fileStr,flag,flagFailNum, flagIndex ' 定义日志文件
  3. set ws = CreateObject("wscript.shell")
  4. Set fso = CreateObject("scripting.filesystemobject")
  5. If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then
  6. Else
  7. Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",true)
  8. 'If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_log.txt") Then
  9. ' Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)
  10. ' logFileWrite.writeLine "数字猜猜猜小游戏-游戏日志"
  11. ' end if
  12. End If
  13.  
  14. For i=0 To 2 ' 关卡赋值
  15. For j=4 To 5
  16. game(i,j-4)= i*3+j
  17. Next
  18. Next
  19.  
  20. 'For i=0 To 2
  21. ' For j=0 To 1
  22. 'MsgBox "game("&i&","&j&"): "& game(i,j)
  23. 'Next
  24. 'Next
  25.  
  26. ' 选择操作
  27. Dim cnum, failNum, sucFlag,t
  28. failNum =0
  29. sucFlag =0
  30. Do While 1=1
  31.  
  32. If sucFlag=1 Then
  33. Exit Do
  34. End if
  35.  
  36. If failNum =3 Then
  37. MsgBox "您有连续三次操作失误,系统将直接退出..."
  38. Exit do
  39. end if
  40. cnum = InputBox( "欢迎来到 数字猜猜猜小游戏 请选择操作:"&chr(10)&" 1.注册 2.登录 3.退出","数字猜猜猜小游戏")
  41. If cnum ="" Then
  42. cnum = "-1"
  43. End if
  44. Select Case cnum
  45. Case 1
  46. ' 账户注册
  47. Dim juname, upwd,regStr
  48. regStr = ""
  49. do while regStr = ""
  50. uname = InputBox("请输入注册账号: ","数字猜猜猜小游戏-注册")
  51. upwd = InputBox("请输入注册密码: ","数字猜猜猜小游戏-注册")
  52. If uname <> "" Then
  53. If upwd <> "" Then
  54. regStr = uname&"#"&upwd
  55. Else
  56. regStr =""
  57. MsgBox "您输入的注册账号密码有误,请重新输入"
  58. End If
  59. Else
  60. regStr =""
  61. MsgBox "您输入的注册账号密码有误,请重新输入"
  62. End If
  63. If regStr <>"" Then
  64. If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
  65. Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
  66. t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
  67. 'logFileWrite.WriteBlankLines 1
  68. logFileWrite.writeLine regStr &" "&t
  69. logFileWrite.close
  70. MsgBox "注册成功!"
  71. exit do
  72. else
  73. Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",true)
  74. If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
  75. Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
  76. logFileWrite.writeLine "数字猜猜猜小游戏-用户数据"
  77. logFileWrite.writeLine regStr
  78. logFileWrite.close
  79. MsgBox "注册成功!"
  80. exit do
  81. end if
  82. End If
  83. end if
  84. loop
  85.  
  86. 'wscript.sleep 1000
  87.  
  88. case 2
  89. ' 账户登录
  90. Dim str
  91. Set logFileRead = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",1)
  92. fileStr = logFileRead.ReadAll
  93. logFileRead.close
  94. str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
  95. if str <> "" then
  96. flagIndex = InStr(fileStr,str)
  97. If flagIndex>0 Then
  98. flag =1
  99. Else
  100. flag = 0
  101. Do While flagIndex =0
  102. flagFailNum = flagFailNum +1
  103. If flagFailNum = 3 Then
  104. MsgBox "抱歉, 您已连续失败3次,系统退出"
  105. wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
  106. flagFailNum =0
  107. end if
  108. MsgBox "您的账户与密码输入有误,请查证后再试试...."
  109. str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
  110. if str <> "" then
  111. flagIndex = InStr(fileStr,str)
  112. end if
  113. loop
  114. flag = 1
  115. End If
  116. Else
  117. flag = 0
  118. Do While flagIndex =0
  119. flagFailNum = flagFailNum +1
  120. If flagFailNum = 3 Then
  121. MsgBox "抱歉, 您已连续失败3次,系统退出"
  122. wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
  123. flagFailNum =0
  124. end if
  125. MsgBox "您的账户与密码输入有误,请查证后再试试...."
  126. str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
  127. if str <> "" then
  128. flagIndex = InStr(fileStr,str)
  129. end if
  130. loop
  131. flag = 1
  132. end if
  133.  
  134.  
  135. ' 通过登录验证
  136. if flag =1 then
  137. Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)
  138. t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
  139. 'logFileWrite.WriteBlankLines 1
  140. logFileWrite.writeLine "用户登录: "&str &" "&t
  141.  
  142. MsgBox "恭喜您成功登录 数字猜猜猜小游戏! 接下来进入游戏正题: "
  143. num =0
  144. for i=0 to 2
  145. For j=0 To 1
  146. result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节"&chr(10)&" 请输入游戏结果(i*3+j+4): "&chr(10)&"退出按-5","益智小游戏-数字猜猜猜: ")
  147. If result ="-5" Then
  148. exit for
  149. end if
  150. If result ="" Then
  151. result = "-1"
  152. end if
  153. If cint(result) = i*3+j+4 then
  154. MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."
  155. End if
  156. Do While cint(result) <> i*3+j+4
  157. num =num+1
  158. If num =3 Then
  159. MsgBox "抱歉, 您已连续失败3次,通关失败!"&chr(10)&" 游戏进度截止为第"&(i+1)&"关第"&(j+1)&"小节,下次努力哦..."
  160. exit Do
  161. End if
  162. MsgBox "抱歉,您猜错了!请查证后再试...."
  163. result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节, 请输入游戏结果(i*3+j+4): ","答案: ")
  164. If result ="" Then
  165. result = "-1"
  166. end if
  167. If cint(result) = i*3+j+4 then
  168. MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."
  169. Exit do
  170. End if
  171. loop
  172. If num =3 Then
  173. exit for
  174. end if
  175. Next
  176. If result ="-5" Then
  177. exit for
  178. end if
  179. If num =3 Then
  180. exit for
  181. End if
  182. If i=2 Then
  183. msg = "聪明的勇士,恭喜您成功通关本游戏!么么哒..."
  184. MsgBox msg
  185. t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
  186. logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &" "&t
  187. sucFlag =1
  188. exit for
  189. End If
  190. msg = "恭喜您成功通关第"&(i+1)&"关卡, 接下来进入第"&(i+2)&"关...祝您好运!"
  191. MsgBox msg
  192. t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
  193. logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &" "&t
  194.  
  195. Next
  196.  
  197. end if
  198.  
  199. Case 3
  200. MsgBox "系统即将退出..."
  201. exit do
  202. case Else
  203. MsgBox "您的选择有误,请重新选择..."
  204. failNum = failNum +1
  205. End select
  206.  
  207. loop

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号