[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[特效代码] 【本人无聊时制作】自制无聊游戏:打地鼠

这是本人的第一个成功的游戏,方法是游戏中的三个表格分别对应
┌─┐┌─┐┌─┐
│1││2││3│
│4││5││6│
│7││8││9│
└─┘└─┘└─┘
其中地鼠为实心圆圈,空地是空心圆圈,地鼠位置变量是%ds%(应该能看清东西就能过吧,也没啥用,毕竟是无聊时写出来的)比如%ds%=5时,屏幕显示
┌─┐┌─┐┌─┐
│○││○││○│
│○││●││○│
│○││○││○│
└─┘└─┘└─┘
然后输入数字1-9来打地鼠
如果你像我一样无聊,请复制粘贴下面的代码,开始游戏吧

  1. @echo off
  2. title 打地鼠3×3^|Made by 晃就左扔【SDS】1.0
  3. color 1F
  4. set score=0
  5. set line0=┌─┐┌─┐┌─┐
  6. set line4=└─┘└─┘└─┘
  7. mode con:cols=50 lines=20
  8. for %%i in (●10%% ●●20%% ●●●30%% ●●●●40%% ●●●●●50%% ●●●●●●60%% ●●●●●●●70%% ●●●●●●●●80%% ●●●●●●●●●90%% ●●●●●●●●●●OK) do (
  9. cls
  10. echo %%i
  11. timeout /t 1 /nobreak>nul
  12. )
  13. :kcdh
  14. cls
  15. rem 设置地鼠位置
  16. echo Loading......
  17. :xh
  18. set ds=%random%
  19. if %ds% GTR 9 goto xh
  20. if %ds% EQU 0 goto xh
  21. if %ds% == 1 goto ds1
  22. if %ds% == 2 goto ds2
  23. if %ds% == 3 goto ds3
  24. if %ds% == 4 goto ds4
  25. if %ds% == 5 goto ds5
  26. if %ds% == 6 goto ds6
  27. if %ds% == 7 goto ds7
  28. if %ds% == 8 goto ds8
  29. if %ds% == 9 goto ds9
  30. :ds1
  31. set line1=│●││○││○│
  32. set line2=│○││○││○│
  33. set line3=│○││○││○│
  34. goto play
  35. :ds2
  36. set line1=│○││●││○│
  37. set line2=│○││○││○│
  38. set line3=│○││○││○│
  39. goto play
  40. :ds3
  41. set line1=│○││○││●│
  42. set line2=│○││○││○│
  43. set line3=│○││○││○│
  44. goto play
  45. :ds4
  46. set line1=│○││○││○│
  47. set line2=│●││○││○│
  48. set line3=│○││○││○│
  49. goto play
  50. :ds5
  51. set line1=│○││○││○│
  52. set line2=│○││●││○│
  53. set line3=│○││○││○│
  54. goto play
  55. :ds6
  56. set line1=│○││○││○│
  57. set line2=│○││○││●│
  58. set line3=│○││○││○│
  59. goto play
  60. :ds7
  61. set line1=│○││○││○│
  62. set line2=│○││○││○│
  63. set line3=│●││○││○│
  64. goto play
  65. :ds8
  66. set line1=│○││○││○│
  67. set line2=│○││○││○│
  68. set line3=│○││●││○│
  69. goto play
  70. :ds9
  71. set line1=│○││○││○│
  72. set line2=│○││○││○│
  73. set line3=│○││○││●│
  74. goto play
  75. :play
  76. cls
  77. echo 得分:%score%
  78. echo %line0%
  79. echo %line1%
  80. echo %line2%
  81. echo %line3%
  82. echo %line4%
  83. set /p input=请输入地鼠位置(从左到右,从上到下依次为1-9)
  84. if %input% EQU %ds% goto dui
  85. if %input% NEQ %ds% goto cuo
  86. :dui
  87. set /a score=%score%+1
  88. echo 你猜对了!地鼠就在第%ds%格!
  89. echo 2秒后继续。
  90. timeout /t 2 /nobreak>nul
  91. goto kcdh
  92. :cuo
  93. echo 你猜错了!地鼠在第%ds%格!
  94. echo 2秒后继续。
  95. timeout /t 2 /nobreak>nul
  96. goto kcdh
复制代码
2

评分人数

TOP

这个程序还有许多需要修补的地方,比如生成随机数好像可以用%random%%%什么什么的方法(具体的忘了,这个bug会导致Loading时间延长)

TOP

如果代码复制后变成了一行,请用下面的链接下载:
pan.baidu.com/s/19BFY9annLHRFnTGjYvBnmQ

TOP

此为更新楼:
游戏版本号:1.995
设置菜单版本号:1.000000

改动内容:
1:为了迎接元旦,颜色更改为背景浅红,字体白色
2:增加设置菜单
3:增加作弊(别轻易用)
4:增加启动和退出界面
5:增加存档读档

下面代码
  1. @echo off
  2. title 打地鼠3×3^|Made by 晃就左扔【SDS】1.0
  3. color CF
  4. set score=0
  5. set line0=┌─┐┌─┐┌─┐
  6. set line4=└─┘└─┘└─┘
  7. mode con:cols=50 lines=20
  8. rem 启动界面
  9. echo.
  10. echo.
  11. echo      HIT THE MOUSE     1.995
  12. echo   打 地 鼠 元 旦 版
  13. echo    正在启动中……
  14. echo.
  15. echo ┌───┐
  16. for %%i in (1 1 100) do (
  17. set /p=●<nul
  18. timeout /t 1 /nobreak>nul
  19. )
  20. echo.
  21. echo └───┘
  22. timeout /t 2 /nobreak>nul
  23. :kcdh
  24. cls
  25. rem 设置地鼠位置
  26. echo Loading......
  27. :xh
  28. set ds=%random%
  29. if %ds% GTR 9 goto xh
  30. if %ds% EQU 0 goto xh
  31. if %ds% == 1 goto ds1
  32. if %ds% == 2 goto ds2
  33. if %ds% == 3 goto ds3
  34. if %ds% == 4 goto ds4
  35. if %ds% == 5 goto ds5
  36. if %ds% == 6 goto ds6
  37. if %ds% == 7 goto ds7
  38. if %ds% == 8 goto ds8
  39. if %ds% == 9 goto ds9
  40. :ds1
  41. set line1=│●││○││○│
  42. set line2=│○││○││○│
  43. set line3=│○││○││○│
  44. goto play
  45. :ds2
  46. set line1=│○││●││○│
  47. set line2=│○││○││○│
  48. set line3=│○││○││○│
  49. goto play
  50. :ds3
  51. set line1=│○││○││●│
  52. set line2=│○││○││○│
  53. set line3=│○││○││○│
  54. goto play
  55. :ds4
  56. set line1=│○││○││○│
  57. set line2=│●││○││○│
  58. set line3=│○││○││○│
  59. goto play
  60. :ds5
  61. set line1=│○││○││○│
  62. set line2=│○││●││○│
  63. set line3=│○││○││○│
  64. goto play
  65. :ds6
  66. set line1=│○││○││○│
  67. set line2=│○││○││●│
  68. set line3=│○││○││○│
  69. goto play
  70. :ds7
  71. set line1=│○││○││○│
  72. set line2=│○││○││○│
  73. set line3=│●││○││○│
  74. goto play
  75. :ds8
  76. set line1=│○││○││○│
  77. set line2=│○││○││○│
  78. set line3=│○││●││○│
  79. goto play
  80. :ds9
  81. set line1=│○││○││○│
  82. set line2=│○││○││○│
  83. set line3=│○││○││●│
  84. goto play
  85. :play
  86. cls
  87. echo 得分:%score%
  88. echo 【0】菜单
  89. echo %line0%
  90. echo %line1%
  91. echo %line2%
  92. echo %line3%
  93. echo %line4%
  94. set /p input=请输入地鼠位置(从左到右,从上到下依次为1-9)
  95. if %input% EQU 0 goto menu
  96. if %input% EQU %ds% goto dui
  97. if %input% NEQ %ds% goto cuo
  98. :menu
  99. cls
  100. echo 操作界面(V1.000000)
  101. echo 【1】存档 【2】读档 【3】退出【4】作弊 【5】返回
  102. set /p input=请输入菜单编号:
  103. if %input% == 1 goto save
  104. if %input% == 2 goto read
  105. if %input% == 3 goto exit
  106. if %input% == 4 goto zb
  107. if %input% == 5 goto play
  108. goto menu
  109. :dui
  110. set /a score=%score%+1
  111. echo 你猜对了!地鼠就在第%ds%格!
  112. echo 2秒后继续。
  113. timeout /t 2 /nobreak>nul
  114. goto kcdh
  115. :cuo
  116. echo 你猜错了!地鼠在第%ds%格!
  117. echo 2秒后继续。
  118. timeout /t 2 /nobreak>nul
  119. goto kcdh
  120. :save
  121. set /p name=请输入存档名:
  122. echo %score% >>%name%.save
  123. echo 存档成功!2秒后返回
  124. timeout /t 2 /nobreak>nul
  125. goto play
  126. :read
  127. set /p name=请输入存档名(不用加后缀名):
  128. set /p score=<%name%.save
  129. echo 读档成功!2秒后返回
  130. timeout /t 2 /nobreak>nul
  131. goto play
  132. :zb
  133. set /p score=请输入分数:
  134. goto play
  135. :exit
  136. cls
  137. echo.
  138. echo.
  139. echo      HIT THE MOUSE     1.995
  140. echo   打 地 鼠 元 旦 版
  141. echo    正在退出中……
  142. echo.
  143. timeout /t 2 /nobreak>nul
  144. exit
复制代码
网盘链接:https://pan.baidu.com/s/1wSGuZHgkTA3oSvFUYI1QtA?pwd=efbk
1

评分人数

TOP

一些字符例如制表符 在win10/11里面的显示方式已经不同于以前的系统

TOP

回复 6# hnfeng


    有的时间会做一个不用制表符的版本

TOP

回复 6# hnfeng


    将所有制表符改为空格,再试试能不能对齐
  1. @echo off
  2. title 打地鼠3×3^|Made by 晃就左扔【SDS】1.0
  3. color CF
  4. set score=0
  5. mode con:cols=50 lines=20
  6. rem 启动界面
  7. echo.
  8. echo.
  9. echo      HIT THE MOUSE     1.995
  10. echo   打 地 鼠 元 旦 版
  11. echo    正在启动中……
  12. echo.
  13. echo ┌───┐
  14. for %%i in (1 1 100) do (
  15. set /p=●<nul
  16. timeout /t 1 /nobreak>nul
  17. )
  18. echo.
  19. echo └───┘
  20. timeout /t 2 /nobreak>nul
  21. :kcdh
  22. cls
  23. rem 设置地鼠位置
  24. echo Loading......
  25. :xh
  26. set ds=%random%
  27. if %ds% GTR 9 goto xh
  28. if %ds% EQU 0 goto xh
  29. if %ds% == 1 goto ds1
  30. if %ds% == 2 goto ds2
  31. if %ds% == 3 goto ds3
  32. if %ds% == 4 goto ds4
  33. if %ds% == 5 goto ds5
  34. if %ds% == 6 goto ds6
  35. if %ds% == 7 goto ds7
  36. if %ds% == 8 goto ds8
  37. if %ds% == 9 goto ds9
  38. :ds1
  39. set line1= ●  ○  ○
  40. set line2= ○  ○  ○
  41. set line3= ○  ○  ○
  42. goto play
  43. :ds2
  44. set line1= ○  ●  ○
  45. set line2= ○  ○  ○
  46. set line3= ○  ○  ○
  47. goto play
  48. :ds3
  49. set line1= ○  ○  ●
  50. set line2= ○  ○  ○
  51. set line3= ○  ○  ○
  52. goto play
  53. :ds4
  54. set line1= ○  ○  ○
  55. set line2= ●  ○  ○
  56. set line3= ○  ○  ○
  57. goto play
  58. :ds5
  59. set line1= ○  ○  ○
  60. set line2= ○  ●  ○
  61. set line3= ○  ○  ○
  62. goto play
  63. :ds6
  64. set line1= ○  ○  ○
  65. set line2= ○  ○  ●
  66. set line3= ○  ○  ○
  67. goto play
  68. :ds7
  69. set line1= ○  ○  ○
  70. set line2= ○  ○  ○
  71. set line3= ●  ○  ○
  72. goto play
  73. :ds8
  74. set line1= ○  ○  ○
  75. set line2= ○  ○  ○
  76. set line3= ○  ●  ○
  77. goto play
  78. :ds9
  79. set line1= ○  ○  ○
  80. set line2= ○  ○  ○
  81. set line3= ○  ○  ●
  82. goto play
  83. :play
  84. cls
  85. echo 得分:%score%
  86. echo 【0】菜单
  87. echo %line1%
  88. echo %line2%
  89. echo %line3%
  90. set /p input=请输入地鼠位置(从左到右,从上到下依次为1-9)
  91. if %input% EQU 0 goto menu
  92. if %input% EQU %ds% goto dui
  93. if %input% NEQ %ds% goto cuo
  94. :menu
  95. cls
  96. echo 操作界面(V1.000000)
  97. echo 【1】存档 【2】读档 【3】退出【4】作弊 【5】返回
  98. set /p input=请输入菜单编号:
  99. if %input% == 1 goto save
  100. if %input% == 2 goto read
  101. if %input% == 3 goto exit
  102. if %input% == 4 goto zb
  103. if %input% == 5 goto play
  104. goto menu
  105. :dui
  106. set /a score=%score%+1
  107. echo 你猜对了!地鼠就在第%ds%格!
  108. echo 2秒后继续。
  109. timeout /t 2 /nobreak>nul
  110. goto kcdh
  111. :cuo
  112. echo 你猜错了!地鼠在第%ds%格!
  113. echo 2秒后继续。
  114. timeout /t 2 /nobreak>nul
  115. goto kcdh
  116. :save
  117. set /p name=请输入存档名:
  118. echo %score% >>%name%.save
  119. echo 存档成功!2秒后返回
  120. timeout /t 2 /nobreak>nul
  121. goto play
  122. :read
  123. set /p name=请输入存档名(不用加后缀名):
  124. set /p score=<%name%.save
  125. echo 读档成功!2秒后返回
  126. timeout /t 2 /nobreak>nul
  127. goto play
  128. :zb
  129. set /p score=请输入分数:
  130. goto play
  131. :exit
  132. cls
  133. echo.
  134. echo.
  135. echo      HIT THE MOUSE     1.995
  136. echo   打 地 鼠 元 旦 版
  137. echo    正在退出中……
  138. echo.
  139. timeout /t 2 /nobreak>nul
  140. exit
复制代码
网盘下载:https://pan.baidu.com/s/1Tk8XX0L3OnK61DYijlUPug?pwd=ddsx
如果遇到制表符对不齐问题,请下载这个版本

TOP

回复  hnfeng


    将所有制表符改为空格,再试试能不能对齐网盘下载:
如果遇到制表符对不齐问题,请 ...
sds 发表于 2024-1-1 17:23



    嗯……我之前研究过,其实只需要在这些特殊字符后面添加一个半角空格就可以正常显示了。为了能新(win10/11) 旧(之前的)系统都能正常显示,就需要分开处理
  1. @echo off
  2. ver | find " 10." >nul && (
  3.   echo 当前系统是win10/11
  4.   echo;
  5.   echo ┌ ─ ┬ ─ ┐
  6.   echo │ ab│ 12│
  7.   echo ├ ─ ┼ ─ ┤
  8.   echo │ 中│ 文│
  9.   echo └ ─ ┴ ─ ┘
  10.   echo;&pause
  11. ) || (
  12.   echo 当前系统是较旧系统
  13.   echo;
  14.   echo ┌─┬─┐
  15.   echo │ab│12│
  16.   echo ├─┼─┤
  17.   echo │中│文│
  18.   echo └─┴─┘
  19.   echo;&pause
  20. )
复制代码

TOP

返回列表