• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 姬7089 | 发布时间: 2025-8-14 03:31| 查看数: 81| 评论数: 0|帖子模式

    在看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.    
    13.   End If

    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. 'For i=0 To 2
    20.   ' For j=0 To 1
    21.   'MsgBox "game("&i&","&j&"): "& game(i,j)
    22.   'Next
    23. 'Next

    24. ' 选择操作
    25. Dim cnum, failNum, sucFlag,t
    26.    failNum =0
    27.    sucFlag =0
    28. Do While 1=1

    29. If sucFlag=1 Then
    30.    Exit Do
    31.   End if

    32. If failNum =3 Then
    33.   MsgBox "您有连续三次操作失误,系统将直接退出..."
    34.   Exit do
    35. end if
    36. cnum = InputBox( "欢迎来到 数字猜猜猜小游戏 请选择操作:"&chr(10)&" 1.注册  2.登录   3.退出","数字猜猜猜小游戏")
    37.   If cnum ="" Then
    38.      cnum = "-1"
    39.   End if
    40. Select Case cnum
    41. Case 1
    42. ' 账户注册
    43. Dim juname, upwd,regStr
    44.   regStr = ""
    45. do while regStr = ""
    46.   uname = InputBox("请输入注册账号:  ","数字猜猜猜小游戏-注册")
    47.   upwd = InputBox("请输入注册密码:  ","数字猜猜猜小游戏-注册")
    48.   If uname <> "" Then
    49.     If upwd <> "" Then
    50.      regStr = uname&"#"&upwd
    51.     Else
    52.      regStr =""
    53.      MsgBox "您输入的注册账号密码有误,请重新输入"
    54.     End If
    55.   Else
    56.     regStr =""
    57.      MsgBox "您输入的注册账号密码有误,请重新输入"
    58.   End If

    59. If regStr <>"" Then
    60.   If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
    61.       Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
    62.       t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
    63.       'logFileWrite.WriteBlankLines 1
    64.       logFileWrite.writeLine regStr &"   "&t
    65.       logFileWrite.close
    66.       MsgBox "注册成功!"
    67.       exit do
    68.     else
    69.     Set f = fso.createtextfile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",true)
    70.       If fso.fileexists("C:\Users\18190\Desktop\vbs\测试\game_user.txt") Then
    71.        Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",8,true)
    72.           logFileWrite.writeLine "数字猜猜猜小游戏-用户数据"
    73.           logFileWrite.writeLine regStr
    74.            logFileWrite.close
    75.           MsgBox "注册成功!"
    76.           exit do
    77.      end if
    78.   End If
    79. end if   
    80. loop

    81. 'wscript.sleep 1000

    82. case 2
    83. ' 账户登录
    84. Dim str
    85.   Set logFileRead = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_user.txt",1)
    86.   fileStr = logFileRead.ReadAll
    87.   logFileRead.close
    88.   str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
    89.   if str <> "" then
    90.    flagIndex = InStr(fileStr,str)
    91.     If flagIndex>0 Then
    92.       flag =1
    93.     Else
    94.       flag = 0
    95.     Do While flagIndex =0
    96.      flagFailNum = flagFailNum +1
    97.      If flagFailNum = 3 Then
    98.      MsgBox "抱歉, 您已连续失败3次,系统退出"
    99.      wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
    100.      flagFailNum =0
    101.     end if
    102.       MsgBox "您的账户与密码输入有误,请查证后再试试...."
    103.      str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
    104.      if str <> "" then
    105.      flagIndex = InStr(fileStr,str)
    106.      end if
    107.      loop
    108.      flag = 1
    109.    End If
    110.   Else
    111.      flag = 0
    112.     Do While flagIndex =0
    113.      flagFailNum = flagFailNum +1
    114.      If flagFailNum = 3 Then
    115.      MsgBox "抱歉, 您已连续失败3次,系统退出"
    116.      wscript.sleep 5000 ' 就这样退出吧 -- 缺少wscript 对象
    117.      flagFailNum =0
    118.     end if
    119.       MsgBox "您的账户与密码输入有误,请查证后再试试...."
    120.      str = InputBox("请输入您的账户名与密码,中间以#键隔开: "," 数字猜猜猜小游戏-登录")
    121.      if str <> "" then
    122.      flagIndex = InStr(fileStr,str)
    123.      end if
    124.      loop
    125.      flag = 1
    126.   end if


    127. ' 通过登录验证
    128. if flag =1 then
    129.   Set logFileWrite = fso.OpenTextFile("C:\Users\18190\Desktop\vbs\测试\game_log.txt",8,true)
    130.       t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
    131.       'logFileWrite.WriteBlankLines 1
    132.       logFileWrite.writeLine "用户登录: "&str &"   "&t

    133.   MsgBox "恭喜您成功登录 数字猜猜猜小游戏! 接下来进入游戏正题:  "
    134.   num =0
    135.   for i=0 to 2
    136.     For j=0 To 1
    137.      result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节"&chr(10)&" 请输入游戏结果(i*3+j+4): "&chr(10)&"退出按-5","益智小游戏-数字猜猜猜: ")
    138.      If result ="-5" Then
    139.      exit for
    140.      end if
    141.      If result ="" Then
    142.      result = "-1"
    143.      end if
    144.      If cint(result) = i*3+j+4 then
    145.       MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."   
    146.      End if
    147.      Do While  cint(result) <> i*3+j+4
    148.       num =num+1
    149.     If num =3 Then
    150.       MsgBox "抱歉, 您已连续失败3次,通关失败!"&chr(10)&" 游戏进度截止为第"&(i+1)&"关第"&(j+1)&"小节,下次努力哦..."
    151.       exit Do
    152.     End if
    153.       MsgBox "抱歉,您猜错了!请查证后再试...."
    154.        result = InputBox("现在是游戏第"&(i+1)&"关第"&(j+1)&"小节, 请输入游戏结果(i*3+j+4): ","答案: ")
    155.      If result ="" Then
    156.      result = "-1"
    157.      end if
    158.      If cint(result) = i*3+j+4 then
    159.       MsgBox "恭喜您,成功通过第"&(i+1)&"关第"&(j+1)&"小节,继续加油哦..."  
    160.       Exit do
    161.      End if
    162.      loop
    163.     If num =3 Then
    164.       exit for
    165.     end if
    166.     Next
    167.     If result ="-5" Then
    168.      exit for
    169.     end if
    170.     If num =3 Then
    171.       exit for
    172.     End if
    173.     If i=2 Then
    174.      msg = "聪明的勇士,恭喜您成功通关本游戏!么么哒..."
    175.      MsgBox msg
    176.      t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
    177.      logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &"   "&t
    178.      sucFlag =1
    179.     exit for
    180.     End If
    181.      msg = "恭喜您成功通关第"&(i+1)&"关卡, 接下来进入第"&(i+2)&"关...祝您好运!"
    182.     MsgBox msg
    183.      t= Year(now)&"-"&month(now)&"-"&day(now)&" "& Hour(now)&":"&minute(now)&":"&second(now)
    184.      logFileWrite.writeLine "用户: "&str&"游戏进度: "&msg &"   "&t

    185.   Next

    186. end if

    187. Case 3
    188. MsgBox "系统即将退出..."
    189. exit do
    190. case Else
    191.   MsgBox "您的选择有误,请重新选择..."
    192. failNum = failNum +1
    193. End select

    194. loop
    195.   
    复制代码
    这篇文章就介绍到这了,希望大家以后多多支持脚本之家。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表