Board logo

标题: [其他] [分享]读心术批处理版(不一样的哦!) [打印本页]

作者: garyng    时间: 2011-8-28 18:41     标题: [分享]读心术批处理版(不一样的哦!)

本帖最后由 garyng 于 2011-8-29 19:29 编辑

看了读心术P处理版
发现到:批处理也可以这样!
所以在我有限的批处理和数学的知识下,
写了这程序
不一样的哦!


------------------------------------------------------------------------------------------------
  1. @echo off
  2. ::因为看了http://bbs.bathome.net/viewthread.php?tid=2140&highlight=%B6%C1%D0%C4%CA%F5
  3. ::一时激动写了这程序~
  4. ::跟别的不一样哦~
  5. ::原理想想看吧!
  6. :main
  7. color 0C
  8. setlocal enabledelayedexpansion
  9. mode con: cols=100 lines=50
  10. echo                              ┌───────────────┐
  11. echo                              │      读心术批处理版          │
  12. echo                              │    GaryNg呕心沥血制作        │
  13. echo                              └───────────────┘
  14. echo 请想一个小于128的数(不包括128)
  15. set 退格键=
  16. for /l %%a in (3 -1 1) do (set /p =!退格键!%%a秒的时间... <nul&ping -n 2 127.1 >nul)
  17. cls&set num=
  18. ::1+2
  19. :loop
  20. for /l %%a in (1 2 127) do (
  21. set /p=%%a <nul
  22. )  
  23. echo/
  24. echo/
  25. echo 请问这里有你想的数吗?
  26. set /p y=【有=y,没有=n】
  27. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop
  28. if /i "!y!"=="y" (set /a num=1) else (set /a num=0)
  29. ::2+3
  30. cls
  31. set a=2
  32. set b=3
  33. :loop1
  34. for /l %%b in (!a! 1 !b!) do (
  35. set /p=%%b <nul
  36. set /a a=a+2
  37. set /a b=b+2
  38. )
  39. if !b! lss 128 goto loop1
  40. echo/
  41. echo/
  42. echo 请问这里有你想的数吗?
  43. set /p y=【有=y,没有=n】
  44. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop1
  45. if /i "!y!"=="y" (set /a num=num+2) else (set /a num=num+0)
  46. cls
  47. ::4+5
  48. set c=4
  49. set d=7
  50. :loop2
  51. for /l %%c in (!c! 1 !d!) do (
  52. set /p=%%c <nul
  53. set /a c=c+2
  54. set /a d=d+2
  55. )
  56. if !d! lss 128 goto loop2
  57. echo/
  58. echo/
  59. echo 请问这里有你想的数吗?
  60. set /p y=【有=y,没有=n】
  61. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop2
  62. if /i "!y!"=="y" (set /a num=num+4) else (set /a num=num+0)
  63. cls
  64. ::8+9
  65. set e=8
  66. set f=15
  67. :loop3
  68. for /l %%d in (!e! 1 !f!) do (
  69. set /p=%%d <nul
  70. set /a e=e+2
  71. set /a f=f+2
  72. )
  73. if !f! lss 128 goto loop3
  74. echo/
  75. echo/
  76. echo 请问这里有你想的数吗?
  77. set /p y=【有=y,没有=n】
  78. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop3
  79. if /i "!y!"=="y" (set /a num=num+8) else (set /a num=num+0)
  80. cls
  81. ::16+17
  82. set g=16
  83. set h=31
  84. :loop4
  85. for /l %%e in (!g! 1 !h!) do (
  86. set /p=%%e <nul
  87. set /a g=g+2
  88. set /a h=h+2
  89. )
  90. if !g! lss 128 goto loop4
  91. echo/
  92. echo/
  93. echo 请问这里有你想的数吗?
  94. set /p y=【有=y,没有=n】
  95. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop4
  96. if /i "!y!"=="y" (set /a num=num+16) else (set /a num=num+0)
  97. cls
  98. ::32+33
  99. set i=32
  100. set j=63
  101. :loop5
  102. for /l %%f in (!i! 1 !j!) do (
  103. set /p=%%f <nul
  104. set /a i=i+2
  105. set /a j=j+2
  106. )
  107. if !j! lss 128 goto loop5
  108. echo/
  109. echo/
  110. echo 请问这里有你想的数吗?
  111. set /p y=【有=y,没有=n】
  112. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop5
  113. if /i "!y!"=="y" (set /a num=num+32) else (set /a num=num+0)
  114. cls
  115. ::64+65
  116. set k=64
  117. set l=127
  118. :loop6
  119. for /l %%g in (!k! 1 !l!) do (
  120. set /p=%%g <nul
  121. set /a k=k+2
  122. set /a l=l+2
  123. )
  124. if !l! lss 128 goto loop6
  125. echo/
  126. echo/
  127. echo 请问这里有你想的数吗?
  128. set /p y=【有=y,没有=n】
  129. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop6
  130. if /i "!y!"=="y" (set /a num=num+64) else (set /a num=num+0)
  131. cls
  132. :last
  133. echo 电脑透过复杂的计算后
  134. echo 得出你脑里想的那个数
  135. echo 那个数是:
  136. echo                 ┌──────────┐
  137. echo                             !num!
  138. echo                 └──────────┘
  139. echo 按任意键继续...
  140. pause>nul
  141. cls
  142. echo 厉害吧?原理自己想想吧!
  143. echo 提示:二进制
  144. echo 按任意键重来...
  145. pause>nul
  146. goto main
复制代码
为什么能猜出想的数字呢?
原理是: 赫赫,不告诉你,想想吧!
提示:二进制
动动脑想想吧!

作者: garyng    时间: 2011-8-28 18:54

本帖最后由 garyng 于 2011-8-29 19:30 编辑

不止怎么的,楼上那个改不了:
重发:
注意:请把{tab}换成真实的TAB键
  1. [size=4]看了[url=http://bbs.bathome.net/viewthread.php?tid=2140&highlight=%B6%C1%D0%C4%CA%F5]读心术P处理版[/url]
  2. 发现到:批处理也可以这样!
  3. 所以在我有限的批处理和数学的知识下,
  4. 写了这程序
  5. 不一样的哦!
  6. [color=Red][size=5]注意:请把{tab}换成真实的TAB键[/size][/color][/size]
  7. ------------------------------------------------------------------------------------------------[code]@echo off
  8. ::因为看了http://bbs.bathome.net/viewthread.php?tid=2140&highlight=%B6%C1%D0%C4%CA%F5
  9. ::一时激动写了这程序~
  10. ::跟别的不一样哦~
  11. ::原理想想看吧!
  12. :main
  13. color 0C
  14. setlocal enabledelayedexpansion
  15. mode con: cols=100 lines=50
  16. echo                              ┌───────────────┐
  17. echo                              │      读心术批处理版          │
  18. echo                              │    GaryNg呕心沥血制作        │
  19. echo                              └───────────────┘
  20. echo 请想一个小于128的数(不包括128)
  21. set 退格键=
  22. for /l %%a in (3 -1 1) do (set /p =!退格键!%%a秒的时间... <nul&ping -n 2 127.1 >nul)
  23. cls&set num=
  24. ::1+2
  25. :loop
  26. for /l %%a in (1 2 127) do (
  27. set /p=%%a <nul
  28. )  
  29. echo/
  30. echo/
  31. echo 请问这里有你想的数吗?
  32. set /p y=【有=y,没有=n】
  33. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop
  34. if /i "!y!"=="y" (set /a num=1) else (set /a num=0)
  35. ::2+3
  36. cls
  37. set a=2
  38. set b=3
  39. :loop1
  40. for /l %%b in (!a! 1 !b!) do (
  41. set /p=%%b <nul
  42. set /a a=a+2
  43. set /a b=b+2
  44. )
  45. if !b! lss 128 goto loop1
  46. echo/
  47. echo/
  48. echo 请问这里有你想的数吗?
  49. set /p y=【有=y,没有=n】
  50. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop1
  51. if /i "!y!"=="y" (set /a num=num+2) else (set /a num=num+0)
  52. cls
  53. ::4+5
  54. set c=4
  55. set d=7
  56. :loop2
  57. for /l %%c in (!c! 1 !d!) do (
  58. set /p=%%c <nul
  59. set /a c=c+2
  60. set /a d=d+2
  61. )
  62. if !d! lss 128 goto loop2
  63. echo/
  64. echo/
  65. echo 请问这里有你想的数吗?
  66. set /p y=【有=y,没有=n】
  67. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop2
  68. if /i "!y!"=="y" (set /a num=num+4) else (set /a num=num+0)
  69. cls
  70. ::8+9
  71. set e=8
  72. set f=15
  73. :loop3
  74. for /l %%d in (!e! 1 !f!) do (
  75. set /p=%%d <nul
  76. set /a e=e+2
  77. set /a f=f+2
  78. )
  79. if !f! lss 128 goto loop3
  80. echo/
  81. echo/
  82. echo 请问这里有你想的数吗?
  83. set /p y=【有=y,没有=n】
  84. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop3
  85. if /i "!y!"=="y" (set /a num=num+8) else (set /a num=num+0)
  86. cls
  87. ::16+17
  88. set g=16
  89. set h=31
  90. :loop4
  91. for /l %%e in (!g! 1 !h!) do (
  92. set /p=%%e <nul
  93. set /a g=g+2
  94. set /a h=h+2
  95. )
  96. if !g! lss 128 goto loop4
  97. echo/
  98. echo/
  99. echo 请问这里有你想的数吗?
  100. set /p y=【有=y,没有=n】
  101. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop4
  102. if /i "!y!"=="y" (set /a num=num+16) else (set /a num=num+0)
  103. cls
  104. ::32+33
  105. set i=32
  106. set j=63
  107. :loop5
  108. for /l %%f in (!i! 1 !j!) do (
  109. set /p=%%f <nul
  110. set /a i=i+2
  111. set /a j=j+2
  112. )
  113. if !j! lss 128 goto loop5
  114. echo/
  115. echo/
  116. echo 请问这里有你想的数吗?
  117. set /p y=【有=y,没有=n】
  118. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop5
  119. if /i "!y!"=="y" (set /a num=num+32) else (set /a num=num+0)
  120. cls
  121. ::64+65
  122. set k=64
  123. set l=127
  124. :loop6
  125. for /l %%g in (!k! 1 !l!) do (
  126. set /p=%%g <nul
  127. set /a k=k+2
  128. set /a l=l+2
  129. )
  130. if !l! lss 128 goto loop6
  131. echo/
  132. echo/
  133. echo 请问这里有你想的数吗?
  134. set /p y=【有=y,没有=n】
  135. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop6
  136. if /i "!y!"=="y" (set /a num=num+64) else (set /a num=num+0)
  137. cls
  138. :last
  139. echo 电脑透过复杂的计算后
  140. echo 得出你脑里想的那个数
  141. echo 那个数是:
  142. echo                 ┌──────────┐
  143. echo                             !num!
  144. echo                 └──────────┘
  145. echo 按任意键继续...
  146. pause>nul
  147. cls
  148. echo 厉害吧?原理自己想想吧!
  149. echo 提示:二进制
  150. echo 按任意键重来...
  151. pause>nul
  152. goto main
复制代码
为什么能猜出想的数字呢?
原理是: 赫赫,不告诉你,想想吧!
提示:二进制
动动脑想想吧!
[/code]
作者: Batcher    时间: 2011-8-28 18:57

回复 2# garyng


论坛程序会自动把tab改成空格
作者: garyng    时间: 2011-8-28 19:03

回复 3# Batcher


    为什么会这样呢?发代码很麻烦勒~
作者: raymai97    时间: 2011-8-28 19:15

这个…… 真的太强了,试了2次,真的猜中我心中的数!( ⊙ o ⊙ )!可以去做读心大师了!
作者: raymai97    时间: 2011-8-28 19:18

刚发现,你的批处理程序放错部分做得不好,我乱乱输入东西都照样接受
作者: Batcher    时间: 2011-8-28 19:39

回复 4# garyng


DZ论坛就是这个德行
作者: garyng    时间: 2011-8-28 19:42

回复 6# raymai97


    好的~谢谢测试~改改~
作者: CUer    时间: 2011-8-28 19:47

回复 5# raymai97


甭大惊小怪的,数学计算而已。骗骗小盆友
作者: qc5111    时间: 2011-8-29 03:24

回复 6# raymai97


这只是用了二进制的特点,其实就是7位的二进制数,最后生成出来的。如128的二进制就是10000000,127就是1111111,所以是128以内啊,超级简单的代码啊,木有技术含量,就是把二进制转成10进制,只是他有一个随机生成而已,你别大惊小怪了。
作者: garyng    时间: 2011-8-29 12:02

本帖最后由 garyng 于 2011-8-29 19:30 编辑

回复 6# raymai97


    重写了~可以了~
一样的把{tab}改为真实的TAB键
————————————————————————————————————————
  1. @echo off
  2. ::因为看了http://bbs.bathome.net/viewthread.php?tid=2140&highlight=%B6%C1%D0%C4%CA%F5
  3. ::一时激动写了这程序~
  4. ::跟别的不一样哦~
  5. ::原理想想看吧!
  6. :main
  7. color 0C
  8. setlocal enabledelayedexpansion
  9. mode con: cols=100 lines=50
  10. echo                              ┌───────────────┐
  11. echo                              │      读心术批处理版          │
  12. echo                              │    GaryNg呕心沥血制作        │
  13. echo                              └───────────────┘
  14. echo 请想一个小于128的数(不包括128)
  15. set 退格键=
  16. for /l %%a in (3 -1 1) do (set /p =!退格键!%%a秒的时间... <nul&ping -n 2 127.1 >nul)
  17. cls&set num=
  18. ::1+2
  19. :loop
  20. for /l %%a in (1 2 127) do (
  21. set /p=%%a <nul
  22. )  
  23. echo/
  24. echo/
  25. echo 请问这里有你想的数吗?
  26. set /p y=【有=y,没有=n】
  27. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop
  28. if /i "!y!"=="y" (set /a num=1) else (set /a num=0)
  29. ::2+3
  30. cls
  31. set a=2
  32. set b=3
  33. :loop1
  34. for /l %%b in (!a! 1 !b!) do (
  35. set /p=%%b <nul
  36. set /a a=a+2
  37. set /a b=b+2
  38. )
  39. if !b! lss 128 goto loop1
  40. echo/
  41. echo/
  42. echo 请问这里有你想的数吗?
  43. set /p y=【有=y,没有=n】
  44. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop1
  45. if /i "!y!"=="y" (set /a num=num+2) else (set /a num=num+0)
  46. cls
  47. ::4+5
  48. set c=4
  49. set d=7
  50. :loop2
  51. for /l %%c in (!c! 1 !d!) do (
  52. set /p=%%c <nul
  53. set /a c=c+2
  54. set /a d=d+2
  55. )
  56. if !d! lss 128 goto loop2
  57. echo/
  58. echo/
  59. echo 请问这里有你想的数吗?
  60. set /p y=【有=y,没有=n】
  61. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop2
  62. if /i "!y!"=="y" (set /a num=num+4) else (set /a num=num+0)
  63. cls
  64. ::8+9
  65. set e=8
  66. set f=15
  67. :loop3
  68. for /l %%d in (!e! 1 !f!) do (
  69. set /p=%%d <nul
  70. set /a e=e+2
  71. set /a f=f+2
  72. )
  73. if !f! lss 128 goto loop3
  74. echo/
  75. echo/
  76. echo 请问这里有你想的数吗?
  77. set /p y=【有=y,没有=n】
  78. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop3
  79. if /i "!y!"=="y" (set /a num=num+8) else (set /a num=num+0)
  80. cls
  81. ::16+17
  82. set g=16
  83. set h=31
  84. :loop4
  85. for /l %%e in (!g! 1 !h!) do (
  86. set /p=%%e <nul
  87. set /a g=g+2
  88. set /a h=h+2
  89. )
  90. if !g! lss 128 goto loop4
  91. echo/
  92. echo/
  93. echo 请问这里有你想的数吗?
  94. set /p y=【有=y,没有=n】
  95. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop4
  96. if /i "!y!"=="y" (set /a num=num+16) else (set /a num=num+0)
  97. cls
  98. ::32+33
  99. set i=32
  100. set j=63
  101. :loop5
  102. for /l %%f in (!i! 1 !j!) do (
  103. set /p=%%f <nul
  104. set /a i=i+2
  105. set /a j=j+2
  106. )
  107. if !j! lss 128 goto loop5
  108. echo/
  109. echo/
  110. echo 请问这里有你想的数吗?
  111. set /p y=【有=y,没有=n】
  112. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop5
  113. if /i "!y!"=="y" (set /a num=num+32) else (set /a num=num+0)
  114. cls
  115. ::64+65
  116. set k=64
  117. set l=127
  118. :loop6
  119. for /l %%g in (!k! 1 !l!) do (
  120. set /p=%%g <nul
  121. set /a k=k+2
  122. set /a l=l+2
  123. )
  124. if !l! lss 128 goto loop6
  125. echo/
  126. echo/
  127. echo 请问这里有你想的数吗?
  128. set /p y=【有=y,没有=n】
  129. for /f "delims=yn" %%i in ('echo !y!') do cls&goto loop6
  130. if /i "!y!"=="y" (set /a num=num+64) else (set /a num=num+0)
  131. cls
  132. :last
  133. echo 电脑透过复杂的计算后
  134. echo 得出你脑里想的那个数
  135. echo 那个数是:
  136. echo                 ┌──────────┐
  137. echo                             !num!
  138. echo                 └──────────┘
  139. echo 按任意键继续...
  140. pause>nul
  141. cls
  142. echo 厉害吧?原理自己想想吧!
  143. echo 提示:二进制
  144. echo 按任意键重来...
  145. pause>nul
  146. goto main
复制代码





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