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

[游戏娱乐] 神奇读心术批处理版[2006-12-21]

  本人2006年发表在cn-dos里的一个小游戏,原帖地址:http://www.cn-dos.net/forum/viewthread.php?tid=25369。转帖于此,是希望做为资料留存备用,更希望后来者能从中得到一些有益的提示,或发现其中的不足并完善之。

  以前9527曾在群里发过吉普赛人祖传的神奇读心术的网址,它能测算出你的内心感应。当时为它的神准所震慑,只觉得自己内心所想全被一股神秘的力量所洞悉。后来转念一想,网络非神物,一定有什么技巧隐藏在里面,一时兴起,稍加推演,找到了原因所在——原来所谓的读心术,只不过如魔术一般,使用的是障眼法而已。
  昨天在群里,又旧事重提,于是有了写个批处理版读心术的念头。12.3抽空写了个代码(版本一),张贴如下,各位可以抱着测试的态度先玩几次,玩过之后再想原理,想不通再看代码(版本二由版本一演变而来):

  版本一:
  1. @echo off
  2. :: code by jm modified by youxi01 2006-12-3 CMD@XP
  3. title 读心术P处理版
  4. mode con cols=80 lines=25
  5. :begin
  6. cls
  7. setlocal enabledelayedexpansion
  8. set str=☆★○●◎◇◆□■△▲※→←↑↓〓@〖〗【】『』≈≡∑∈⊙∵∴¤
  9. for /l %%i in (0,1,99) do (
  10.     set /a random_=!random!%%32
  11.     call set var%%i=%%str:~!random_!,1%%
  12. )
  13. echo.
  14. echo      99 %var99%  79 %var79%  59 %var59%  39 %var39%  19 %var19%    ^|    ① 从10~99之间任意选择一个数
  15. echo      98 %var98%  78 %var78%  58 %var58%  38 %var38%  18 %var81%    ^|
  16. echo      97 %var97%  77 %var77%  57 %var57%  37 %var37%  17 %var17%    ^|    ② 把这个数的十位与个位相加
  17. echo      96 %var96%  76 %var76%  56 %var56%  36 %var81%  16 %var16%    ^|
  18. echo      95 %var95%  75 %var75%  55 %var55%  35 %var35%  15 %var15%    ^|    ③ 再把任意选择的数减去这个和
  19. echo      94 %var94%  74 %var74%  54 %var81%  34 %var34%  14 %var14%    ^|
  20. echo      93 %var93%  73 %var73%  53 %var53%  33 %var33%  13 %var13%    ^|      例如:你选的数是23
  21. echo      92 %var92%  72 %var81%  52 %var52%  32 %var32%  12 %var12%    ^|
  22. echo      91 %var91%  71 %var71%  51 %var51%  31 %var31%  11 %var11%    ^|      然后2+3=5,然后23-5=18
  23. echo      90 %var90%  70 %var70%  50 %var50%  30 %var30%  10 %var10%    ^|
  24. echo      89 %var89%  69 %var69%  49 %var49%  29 %var29%   9 %var81%    ^|    ④ 在图表中找出与差值对应的图形
  25. echo      88 %var88%  68 %var68%  48 %var48%  28 %var28%   8 %var8%    ^|
  26. echo      87 %var87%  67 %var67%  47 %var47%  27 %var81%   7 %var7%    ^|     并把这个图形牢记心中
  27. echo      86 %var86%  66 %var66%  46 %var46%  26 %var26%   6 %var6%    ^|
  28. echo      85 %var85%  65 %var65%  45 %var81%  25 %var25%   5 %var5%    ^|   ⑤ 然后进入下一步
  29. echo      84 %var84%  64 %var64%  44 %var44%  24 %var24%   4 %var4%    ^|
  30. echo      83 %var83%  63 %var81%  43 %var43%  23 %var23%   3 %var3%    ^|   ⑥ 你会发现:显示出来的图形
  31. echo      82 %var82%  62 %var62%  42 %var42%  22 %var22%   2 %var2%    ^|
  32. echo      81 %var81%  61 %var61%  41 %var41%  21 %var21%   1 %var1%    ^|     就是你刚刚心里记下的那个图形
  33. echo      80 %var80%  60 %var60%  40 %var40%  20 %var20%   0 %var0%    ^|
  34. echo                                           ^|
  35. echo _______________________________________________________________________________
  36. echo                               按任意键进入下一步...
  37. pause>nul
  38. cls
  39. for /l %%i in (1,1,9) do echo.
  40. echo                 通过心灵感应,发现这个图形正是你所想的:%var81%
  41. for /l %%i in (1,1,9) do echo.
  42. echo.
  43. echo.
  44. echo                                               按任意键再来一次...
  45. pause>nul
  46. goto begin
  47. pause>nul
  48. goto begin
复制代码
  版本二:
  1. @echo off
  2. title 读心术P处理版
  3. :begin
  4. mode con cols=90 lines=30
  5. cls
  6. echo.
  7. echo   从10~99之间任意选择一个数,把这个数的十位与个位相加,再把任意选择的数减去这个和,
  8. echo 例如:你选的数是23,然后2+3=5,然后23-5=18,在图表中找出与差值对应的符号,并把这个符号
  9. echo 牢记心中,然后进入下一步,你会发现:显示出来的符号就是你刚刚心里记下的那个符号。
  10. echo.
  11. echo _________________________________________________________________________________________
  12. echo.
  13. set str=☆★○●◎◇◆□■△▲※→←↑↓〓@〖〗【】『』≈≡∑∈⊙∵∴¤
  14. set begin_num=9
  15. set end_num=1
  16. set num=0
  17. setlocal enabledelayedexpansion
  18. :loop
  19. for /l %%i in (9,-1,0) do (
  20.     for /l %%j in (%begin_num%,-2,%end_num%) do (
  21.         set /a num+=1
  22.         set /a random_=!random!%%32
  23.         set /a ordinal=1%%j%%i-100
  24.         if !ordinal! lss 10 set ordinal= !ordinal!
  25.         call set var!ordinal!=%%str:~!random_!,1%%
  26.         set /a ordinal_mod=!ordinal!%%9
  27.         if !num! gtr 1 if !num! lss 100 if !ordinal_mod! equ 0 set var!ordinal!=!var18!
  28.         set /a line_mod=!num!%%5
  29.         call set var=!var! !ordinal! %%var!ordinal!%%
  30.         if !line_mod! equ 0 echo                        !var!&set var=
  31.     )
  32. )
  33. if %num% equ 100 goto end
  34. if %num% equ 50 (
  35.     set begin_num=8
  36.     set end_num=0
  37.     goto loop
  38. )
  39. :end
  40. echo _________________________________________________________________________________________
  41. echo                                                                    按任意键进入下一步...
  42. pause>nul
  43. cls
  44. mode con cols=25 lines=10
  45. echo.
  46. echo      你想要的符号是:
  47. echo        ╭────╮
  48. echo        │        │   
  49. echo        │   %var18%   │
  50. echo        │        │
  51. echo        ╰────╯
  52. echo.
  53. echo   按任意键再来一次...
  54. pause>nul
  55. goto begin
复制代码
2

评分人数

    • wxcute: 如果你不想,乱按几次就知道其中奥秘了。哈PB + 18
    • 523066680: 好东东!PB + 30 技术 + 1
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

本帖最后由 LJY4.0 于 2022-4-25 18:48 编辑

破解版,读不了心术:
@echo off
:: code by jm modified by youxi01 2006-12-3 CMD@XP
title 读心术P处理版
mode con cols=80 lines=25
:begin
cls
@echo off
set num=%random%
set /a  num=num%%10+1
setlocal enabledelayedexpansion
set str=☆★○●◎◇◆□■△▲※→←↑↓〓@〖〗【】『』≈≡∑∈⊙∵∴¤
for /l %%i in (0,1,99) do (
    set /a random_=!random!%%32
    call set var%%i=%%str:~!random_!,1%%
)
echo %num%
echo.
echo      99 %var99%  79 %var79%  59 %var59%  39 %var39%  19 %var19%    ^|    ① 从10~99之间任意选择一个数
echo      98 %var98%  78 %var78%  58 %var58%  38 %var38%  18 %var81%    ^|
echo      97 %var97%  77 %var77%  57 %var57%  37 %var37%  17 %var17%    ^|    ② 把这个数的十位与个位相加
echo      96 %var96%  76 %var76%  56 %var56%  36 %var81%  16 %var16%    ^|
echo      95 %var95%  75 %var75%  55 %var55%  35 %var35%  15 %var15%    ^|    ③ 再把任意选择的数减去这个和
echo      94 %var94%  74 %var74%  54 %var81%  34 %var34%  14 %var14%    ^|
echo      93 %var93%  73 %var73%  53 %var53%  33 %var33%  13 %var13%    ^|      例如:你选的数是23
echo      92 %var92%  72 %var81%  52 %var52%  32 %var32%  12 %var12%    ^|
echo      91 %var91%  71 %var71%  51 %var51%  31 %var31%  11 %var11%    ^|      然后2+3=5,然后23-5=18
echo      90 %var90%  70 %var70%  50 %var50%  30 %var30%  10 %var10%    ^|
echo      89 %var89%  69 %var69%  49 %var49%  29 %var29%   9 %var81%    ^|    ④ 在图表中找出与差值对应的图形
echo      88 %var88%  68 %var68%  48 %var48%  28 %var28%   8 %var8%    ^|
echo      87 %var87%  67 %var67%  47 %var47%  27 %var81%   7 %var7%    ^|     并把这个图形牢记心中
echo      86 %var86%  66 %var66%  46 %var46%  26 %var26%   6 %var6%    ^|
echo      85 %var85%  65 %var65%  45 %var81%  25 %var25%   5 %var5%    ^|   ⑤ 然后进入下一步
echo      84 %var84%  64 %var64%  44 %var44%  24 %var24%   4 %var4%    ^|
echo      83 %var83%  63 %var81%  43 %var43%  23 %var23%   3 %var3%    ^|   ⑥ 你会发现:显示出来的图形
echo      82 %var82%  62 %var62%  42 %var42%  22 %var22%   2 %var2%    ^|
echo      81 %var81%  61 %var61%  41 %var41%  21 %var21%   1 %var1%    ^|     就是你刚刚心里记下的那个图形
echo      80 %var80%  60 %var60%  40 %var40%  20 %var20%   0 %var0%    ^|
echo                                           ^|
echo _______________________________________________________________________________
echo                               按任意键进入下一步...
pause>nul
cls
for /l %%i in (1,1,9) do echo.
echo                 通过心灵感应,发现这个图形正是你所想的:!var%num%!
for /l %%i in (1,1,9) do echo.
echo.
echo.
echo                                               按任意键再来一次...
pause>nul
goto begin

pause>nul
goto begin

TOP

高手就是高手,端的与众不同.

TOP

原帖由 wxcute 于 2008-10-12 10:39 发表
在联盟,一开始玩觉得心事被猜中那还了得。

于是“恼羞成怒”,乱按一通;这才真相大白也。


同感!同感!同感!

TOP

我觉得很神奇地  我就不信 然就开了两个一起试试。
嘿嘿  排列不是每次都一样啊  而且跟数字的计算有关
70开头的 70-7=63  71-8=63 72-9=63…… 嘿嘿

TOP

牵着人鼻子走的数字游戏。发明这个游戏的人真聪明。
心绪平和,眼藏静谧。

TOP

keyword:
9


这个就有点那个了...

TOP

在联盟,一开始玩觉得心事被猜中那还了得。

于是“恼羞成怒”,乱按一通;这才真相大白也。

TOP

回复 1楼 的帖子

咦  好神奇啊

TOP

返回列表