Board logo

标题: [其他] [代码咨询]黑白棋 [打印本页]

作者: HOPE2021    时间: 2021-8-9 11:14     标题: [代码咨询]黑白棋

代码:
  1. @echo off
  2. chcp 936 > nul
  3. title 黑白棋
  4. color f0
  5. mode con cols=18 lines=10
  6. ::通关秘籍
  7. ::No.1: 1 3 5 7 9
  8. ::No.2: 3 5 6 7 8
  9. ::No.3: 4 5 6 7 9
  10. ::No.4: 2 4 5 6 8
  11. ::No.5: 2 4 6 7 8
  12. setlocal enabledelayedexpansion
  13. call :Initialization
  14. @goto Start_1
  15. :Initialization
  16. title 黑白棋
  17. mode con cols=18 lines=10
  18. @echo off
  19. for /l %%i in (1,1,9) do (set a%%i=●)
  20. @echo off
  21. title 黑白棋
  22. goto :eof
  23. :Start_1
  24. ::通关秘籍:1 3 5 7 9
  25. set Level=1
  26. cls
  27. echo.
  28. echo.    ^>^>No.1
  29. echo.
  30. echo.    %a1%丨%a2%丨%a3%
  31. echo.    —+—+—
  32. echo.    %a4%丨%a5%丨%a6%
  33. echo.    —+—+—
  34. echo.    %a7%丨%a8%丨%a9%
  35. call :Get_Key
  36. if /i "!a!" equ "1" call :Think 1 2 4
  37. if /i "!a!" equ "2" call :Think 1 2 3 5
  38. if /i "!a!" equ "3" call :Think 2 3 6
  39. if /i "!a!" equ "4" call :Think 1 4 5 7
  40. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  41. if /i "!a!" equ "6" call :Think 3 5 6 9
  42. if /i "!a!" equ "7" call :Think 4 7 8
  43. if /i "!a!" equ "8" call :Think 5 7 8 9
  44. if /i "!a!" equ "9" call :Think 6 8 9
  45. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  46. if "%ReturnKey%" equ "0" (
  47. echo.
  48. goto :Start_1
  49. )
  50. goto Start_1
  51. :Think
  52. for %%i in (%1 %2 %3 %4 %5) do (if /i !a%%i!==● (set a%%i=○) else (set a%%i=●))
  53. goto :eof
  54. :Win
  55. mode con cols=18 lines=17
  56. cls
  57. set /a OldLevel=%Level%
  58. set /a Level=%Level%+1
  59. cls
  60. echo.
  61. echo.    ^>^>No.%OldLevel%
  62. echo.
  63. echo.    %a1%丨%a2%丨%a3%
  64. echo.    —+—+—
  65. echo.    %a4%丨%a5%丨%a6%
  66. echo.    —+—+—
  67. echo.    %a7%丨%a8%丨%a9%
  68. echo.
  69. echo.    ^>^>第%OldLevel%关
  70. echo.    ^>^>通关
  71. echo.
  72. echo.    ^>^>按回车键
  73. echo.    开始第%Level%关
  74. pause>nul
  75. call :Initialization
  76. goto Start_%Level%
  77. :Get_Key
  78. set "ReturnKey=0"
  79. set a=0
  80. set "a="
  81. for /f "delims=" %%a in ('xcopy /w "%~f0" "%~f0" 2^>nul') do if /i not defined a set "a=%%a"
  82. set "a=%a:~-1%"
  83. goto :eof
  84. :Start_2
  85. ::通关秘籍:3 5 6 7 8
  86. set Level=2
  87. cls
  88. echo.
  89. echo.    ^>^>No.2
  90. echo.
  91. echo.    %a1%丨%a2%丨%a3%
  92. echo.    —+—+—
  93. echo.    %a4%丨%a5%丨%a6%
  94. echo.    —+—+—
  95. echo.    %a7%丨%a8%丨%a9%
  96. call :Get_Key
  97. if /i "!a!" equ "1" call :Think 2 5 7 9
  98. if /i "!a!" equ "2" call :Think 1 2 3 5
  99. if /i "!a!" equ "3" call :Think 2 3 6
  100. if /i "!a!" equ "4" call :Think 1 4 5 7
  101. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  102. if /i "!a!" equ "6" call :Think 1 2 4
  103. if /i "!a!" equ "7" call :Think 4 7 8
  104. if /i "!a!" equ "8" call :Think 6 8 9
  105. if /i "!a!" equ "9" call :Think 5 7 8 9
  106. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  107. if "%ReturnKey%" equ "0" (
  108. echo.
  109. goto :Start_2
  110. )
  111. goto Start_2
  112. :Start_3
  113. ::通关秘籍:4 5 6 7 9
  114. set Level=3
  115. cls
  116. echo.
  117. echo.    ^>^>No.3
  118. echo.
  119. echo.    %a1%丨%a2%丨%a3%
  120. echo.    —+—+—
  121. echo.    %a4%丨%a5%丨%a6%
  122. echo.    —+—+—
  123. echo.    %a7%丨%a8%丨%a9%
  124. call :Get_Key
  125. if /i "!a!" equ "1" call :Think 2 5 7 9
  126. if /i "!a!" equ "2" call :Think 1 2 3 5
  127. if /i "!a!" equ "3" call :Think 1 4 5 7
  128. if /i "!a!" equ "4" call :Think 2 3 6
  129. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  130. if /i "!a!" equ "6" call :Think 1 2 4
  131. if /i "!a!" equ "7" call :Think 4 7 8
  132. if /i "!a!" equ "8" call :Think 5 7 8 9
  133. if /i "!a!" equ "9" call :Think 6 8 9
  134. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  135. if "%ReturnKey%" equ "0" (
  136. echo.
  137. goto :Start_3
  138. )
  139. goto Start_3
  140. :Start_4
  141. ::通关秘籍:2 4 5 6 8
  142. set Level=4
  143. cls
  144. echo.
  145. echo.    ^>^>No.4
  146. echo.
  147. echo.    %a1%丨%a2%丨%a3%
  148. echo.    —+—+—
  149. echo.    %a4%丨%a5%丨%a6%
  150. echo.    —+—+—
  151. echo.    %a7%丨%a8%丨%a9%
  152. call :Get_Key
  153. if /i "!a!" equ "1" call :Think 2 5 7 9
  154. if /i "!a!" equ "2" call :Think 2 3 6
  155. if /i "!a!" equ "3" call :Think 1 4 5 7
  156. if /i "!a!" equ "4" call :Think 4 7 8
  157. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  158. if /i "!a!" equ "6" call :Think 1 2 4
  159. if /i "!a!" equ "7" call :Think 7 9 5 6 3
  160. if /i "!a!" equ "8" call :Think 6 8 9
  161. if /i "!a!" equ "9" call :Think 6 7 8 9
  162. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  163. if "%ReturnKey%" equ "0" (
  164. echo.
  165. goto :Start_4
  166. )
  167. goto Start_4
  168. :Start_5
  169. ::通关秘籍:2 4 6 7 8
  170. set Level=5
  171. cls
  172. echo.
  173. echo.    ^>^>No.5
  174. echo.
  175. echo.    %a1%丨%a2%丨%a3%
  176. echo.    —+—+—
  177. echo.    %a4%丨%a5%丨%a6%
  178. echo.    —+—+—
  179. echo.    %a7%丨%a8%丨%a9%
  180. call :Get_Key
  181. if /i "!a!" equ "1" call :Think 2 5 7 9
  182. if /i "!a!" equ "2" call :Think 2 3 6
  183. if /i "!a!" equ "3" call :Think 1 4 5 7
  184. if /i "!a!" equ "4" call :Think 4 7 8
  185. if /i "!a!" equ "5" call :Think 2 6 7 8 9
  186. if /i "!a!" equ "6" call :Think 1 2 4
  187. if /i "!a!" equ "7" call :Think 2 4 5 6 8
  188. if /i "!a!" equ "8" call :Think 6 8 9
  189. if /i "!a!" equ "9" call :Think 6 7 8 9
  190. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto End
  191. if "%ReturnKey%" equ "0" (
  192. echo.
  193. goto :Start_5
  194. )
  195. goto Start_5
  196. :End
  197. mode con cols=18 lines=17
  198. cls
  199. echo.
  200. echo.    ^>^>No.6
  201. echo.
  202. echo.    %a1%丨%a2%丨%a3%
  203. echo.    —+—+—
  204. echo.    %a4%丨%a5%丨%a6%
  205. echo.    —+—+—
  206. echo.    %a7%丨%a8%丨%a9%
  207. echo.
  208. echo.    ^>^>通关
  209. echo.
  210. echo.    ^>^>按回车键
  211. echo.   退出
  212. pause>nul
  213. exit
复制代码
By HOPE2021
LLAP
谢谢。
作者: HOPE2021    时间: 2021-8-9 11:26

新版本:
  1. @echo off
  2. chcp 936 > nul
  3. title 黑白棋
  4. color f0
  5. mode con cols=18 lines=10
  6. ::通关秘籍
  7. ::No.1: 1 3 5 7 9
  8. ::No.2: 3 5 6 7 8
  9. ::No.3: 4 5 6 7 9
  10. ::No.4: 2 4 5 6 8
  11. ::No.5: 2 4 6 7 8
  12. setlocal enabledelayedexpansion
  13. call :Initialization
  14. @goto Start_1
  15. :Initialization
  16. title 黑白棋
  17. mode con cols=18 lines=10
  18. @echo off
  19. for /l %%i in (1,1,9) do (set a%%i=●)
  20. @echo off
  21. title 黑白棋
  22. goto :eof
  23. :Start_1
  24. ::通关秘籍:1 3 5 7 9
  25. set Level=1
  26. cls
  27. echo.
  28. echo.    ^>^>No.1
  29. call :echo
  30. call :Get_Key
  31. if /i "!a!" equ "1" call :Think 1 2 4
  32. if /i "!a!" equ "2" call :Think 1 2 3 5
  33. if /i "!a!" equ "3" call :Think 2 3 6
  34. if /i "!a!" equ "4" call :Think 1 4 5 7
  35. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  36. if /i "!a!" equ "6" call :Think 3 5 6 9
  37. if /i "!a!" equ "7" call :Think 4 7 8
  38. if /i "!a!" equ "8" call :Think 5 7 8 9
  39. if /i "!a!" equ "9" call :Think 6 8 9
  40. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  41. if "%ReturnKey%" equ "0" (
  42. echo.
  43. goto :Start_1
  44. )
  45. goto Start_1
  46. :Think
  47. for %%i in (%1 %2 %3 %4 %5) do (if /i !a%%i!==● (set a%%i=○) else (set a%%i=●))
  48. goto :eof
  49. :Win
  50. mode con cols=18 lines=17
  51. cls
  52. set /a OldLevel=%Level%
  53. set /a Level=%Level%+1
  54. cls
  55. echo.
  56. echo.    ^>^>No.%OldLevel%
  57. call :echo
  58. echo.
  59. echo.    ^>^>第%OldLevel%关
  60. echo.    ^>^>通关
  61. echo.
  62. echo.    ^>^>按回车键
  63. echo.    开始第%Level%关
  64. pause>nul
  65. call :Initialization
  66. goto Start_%Level%
  67. :Get_Key
  68. set "ReturnKey=0"
  69. set a=0
  70. set "a="
  71. for /f "delims=" %%a in ('xcopy /w "%~f0" "%~f0" 2^>nul') do if /i not defined a set "a=%%a"
  72. set "a=%a:~-1%"
  73. goto :eof
  74. :Start_2
  75. ::通关秘籍:3 5 6 7 8
  76. set Level=2
  77. cls
  78. echo.
  79. echo.    ^>^>No.2
  80. call :echo
  81. call :Get_Key
  82. if /i "!a!" equ "1" call :Think 2 5 7 9
  83. if /i "!a!" equ "2" call :Think 1 2 3 5
  84. if /i "!a!" equ "3" call :Think 2 3 6
  85. if /i "!a!" equ "4" call :Think 1 4 5 7
  86. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  87. if /i "!a!" equ "6" call :Think 1 2 4
  88. if /i "!a!" equ "7" call :Think 4 7 8
  89. if /i "!a!" equ "8" call :Think 6 8 9
  90. if /i "!a!" equ "9" call :Think 5 7 8 9
  91. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  92. if "%ReturnKey%" equ "0" (
  93. echo.
  94. goto :Start_2
  95. )
  96. goto Start_2
  97. :Start_3
  98. ::通关秘籍:4 5 6 7 9
  99. set Level=3
  100. cls
  101. echo.
  102. echo.    ^>^>No.3
  103. call :echo
  104. call :Get_Key
  105. if /i "!a!" equ "1" call :Think 2 5 7 9
  106. if /i "!a!" equ "2" call :Think 1 2 3 5
  107. if /i "!a!" equ "3" call :Think 1 4 5 7
  108. if /i "!a!" equ "4" call :Think 2 3 6
  109. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  110. if /i "!a!" equ "6" call :Think 1 2 4
  111. if /i "!a!" equ "7" call :Think 4 7 8
  112. if /i "!a!" equ "8" call :Think 5 7 8 9
  113. if /i "!a!" equ "9" call :Think 6 8 9
  114. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  115. if "%ReturnKey%" equ "0" (
  116. echo.
  117. goto :Start_3
  118. )
  119. goto Start_3
  120. :Start_4
  121. ::通关秘籍:2 4 5 6 8
  122. set Level=4
  123. cls
  124. echo.
  125. echo.    ^>^>No.4
  126. call :echo
  127. call :Get_Key
  128. if /i "!a!" equ "1" call :Think 2 5 7 9
  129. if /i "!a!" equ "2" call :Think 2 3 6
  130. if /i "!a!" equ "3" call :Think 1 4 5 7
  131. if /i "!a!" equ "4" call :Think 4 7 8
  132. if /i "!a!" equ "5" call :Think 2 4 5 6 8
  133. if /i "!a!" equ "6" call :Think 1 2 4
  134. if /i "!a!" equ "7" call :Think 7 9 5 6 3
  135. if /i "!a!" equ "8" call :Think 6 8 9
  136. if /i "!a!" equ "9" call :Think 6 7 8 9
  137. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto Win
  138. if "%ReturnKey%" equ "0" (
  139. echo.
  140. goto :Start_4
  141. )
  142. goto Start_4
  143. :Start_5
  144. ::通关秘籍:2 4 6 7 8
  145. set Level=5
  146. cls
  147. echo.
  148. echo.    ^>^>No.5
  149. call :echo
  150. call :Get_Key
  151. if /i "!a!" equ "1" call :Think 2 5 7 9
  152. if /i "!a!" equ "2" call :Think 2 3 6
  153. if /i "!a!" equ "3" call :Think 1 4 5 7
  154. if /i "!a!" equ "4" call :Think 4 7 8
  155. if /i "!a!" equ "5" call :Think 2 6 7 8 9
  156. if /i "!a!" equ "6" call :Think 1 2 4
  157. if /i "!a!" equ "7" call :Think 2 4 5 6 8
  158. if /i "!a!" equ "8" call :Think 6 8 9
  159. if /i "!a!" equ "9" call :Think 6 7 8 9
  160. if /i %a1%%a2%%a3%%a4%%a5%%a6%%a7%%a8%%a9%==○○○○○○○○○ goto End
  161. if "%ReturnKey%" equ "0" (
  162. echo.
  163. goto :Start_5
  164. )
  165. goto Start_5
  166. :echo
  167. echo.
  168. echo.    %a1%丨%a2%丨%a3%
  169. echo.    —+—+—
  170. echo.    %a4%丨%a5%丨%a6%
  171. echo.    —+—+—
  172. echo.    %a7%丨%a8%丨%a9%
  173. goto :eof
  174. :End
  175. mode con cols=18 lines=17
  176. cls
  177. echo.
  178. echo.    ^>^>No.5
  179. call :echo
  180. echo.
  181. echo.    ^>^>通关
  182. echo.
  183. echo.    ^>^>按回车键
  184. echo.   退出
  185. pause>nul
  186. exit
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2