批处理之家's Archiver

novaa 发表于 2007-11-26 11:17

读心术P处理版

我测试了,真准! 哈哈
[code]:: 版本一:

@echo off
:: code by jm modified by youxi01 2006-12-3 CMD@XP
:: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=25369
title 读心术P处理版
mode con cols=80 lines=25

:begin
cls
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.
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 通过心灵感应,发现这个图形正是你所想的:%var81%
for /l %%i in (1,1,9) do echo.
echo.
echo.
echo 按任意键再来一次...
pause>nul
goto begin


pause>nul
goto begin


:: 版本二:

@echo off
:: code by jm 2006-12-21 CMD@XP
:: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=25369
title 读心术P处理版

:begin
mode con cols=90 lines=30
cls
echo.
echo   从10~99之间任意选择一个数,把这个数的十位与个位相加,再把任意选择的数减去这个和,
echo 例如:你选的数是23,然后2+3=5,然后23-5=18,在图表中找出与差值对应的符号,并把这个符号
echo 牢记心中,然后进入下一步,你会发现:显示出来的符号就是你刚刚心里记下的那个符号。
echo.
echo _________________________________________________________________________________________
echo.

set str=☆★○●◎◇◆□■△▲※→←↑↓〓@〖〗【】『』≈≡∑∈⊙∵∴¤
set begin_num=9
set end_num=1
set num=0
setlocal enabledelayedexpansion

:loop
for /l %%i in (9,-1,0) do (
for /l %%j in (%begin_num%,-2,%end_num%) do (
set /a num+=1
set /a random_=!random!%%32
set /a ordinal=1%%j%%i-100
if !ordinal! lss 10 set ordinal= !ordinal!
call set var!ordinal!=%%str:~!random_!,1%%
set /a ordinal_mod=!ordinal!%%9
if !num! gtr 1 if !num! lss 100 if !ordinal_mod! equ 0 set var!ordinal!=!var18!
set /a line_mod=!num!%%5
call set var=!var! !ordinal! %%var!ordinal!%%
if !line_mod! equ 0 echo !var!&set var=
)
)
if %num% equ 100 goto end
if %num% equ 50 (
set begin_num=8
set end_num=0
goto loop
)

:end
echo _________________________________________________________________________________________
echo 按任意键进入下一步...
pause>nul
cls
mode con cols=25 lines=10
echo.
echo 你想要的符号是:
echo ╭────╮
echo │ │
echo │ %var18% │
echo │ │
echo ╰────╯
echo.
echo 按任意键再来一次...
pause>nul
goto begin[/code]

smilediao 发表于 2007-11-26 12:43

原理很简单嘛!刚开始我就看出来了,10-19之间的数字按照那个算法得到的数字都是9,20-29之间的数得到的数都是18,30-39之间的数的到的数都是27,。。。。90-99的数得到的数都是81。看结果9,18,27,。。。81,看出来了吧!你再看看这几个数字所代表的图形是不是都一样的!呵呵。。明白了吧!所以这不是读心术,完全是骗懒人的!呵呵。。抱歉,你也要活动活动了!哈哈。。:lol

novaa 发表于 2007-11-26 13:04

哈哈
发现了。。。
我说怎么这么神奇呢
smilodiao好久没出作品了啊

smilediao 发表于 2007-11-26 13:36

关键是我现在还是学生,不能成天的研究批处理啊,呵呵。。我现在在自学vb编程,打算把vb学习得差不多了就自学c++,上学期学校教c++了,可惜啊,只学习到了冒泡排序法的编写,可能以后就不教了,我们的专业和计算机沾边,大学是什么都学,但是不求精,可能连皮毛都没有学习到,难怪大学生都找不到工作!因为奇怪了,大学计算机专业是先学习c++再学习vb,结果呢c++编写的程序还是黑忽忽的界面和dos差不多,连mfc都没学,而vb呢?到了快毕业还不会编写俄罗斯方块!真丢人啊!所以我还是靠自学吧!我现在自学的vb水平比大三的水平还要高好多!不是我聪明!是大学的白痴教育!还吹虚说什么全面教育!屁!什么都学什么都不会!呵呵。。。我的废话好多。。见谅。。

novaa 发表于 2007-11-26 20:46

呵呵我大2呢
其实我觉的大学教育做的比较好了
o(∩_∩)o
毕竟是大学,不是小学不?

随风 发表于 2007-11-27 15:11

@goto start1
楼主啊!  
两个代码为什么不用两个code来扩呢?这样我们还是不好复制啊!!!
这么多 echo  我来整理整理。
:: 版本一:
:start1[code]@echo off&title 读心术P处理版
mode con cols=80 lines=25
:begin
setlocal enabledelayedexpansion
set 4=① 从10~99之间任意选择一个数
set 14=② 把这个数的十位与个位相加
set 24=③ 再把任意选择的数减去这个和
set 34=   例如:你选的数是23
set 44=   然后2+3=5,然后23-5=18
set 54=④ 在图表中找出与差值对应的图形,
set 64=   并把这个图形牢记心中
set 74=⑤ 然后进入下一步
set 84=⑥ 你会发现:
set 94=   显示出来的图形就是你刚刚心里记下的那个图形
echo.
set str=☆★○●◎◇◆□■△▲※→←↑↓〓@〖〗【】『』≈≡∑∈⊙∵∴¤
for /l %%i in (0,1,99) do (
  set /a random_=!random!%%32
  call set var%%i=%%str:~!random_!,1%%
)
for /l %%a in (9 9 117) do set var%%a=!var81!
for /l %%a in (0 1 99) do (
  set /a max+=1&set abc=00%%a
  set abc=!abc:~-2!
  set /p=!abc! !var%%a! <nul
  if !max! equ 5 set /p= ^| !%%a!<nul&echo.&set max=0
  )
echo.&echo  按任意键进入下一步...
pause>nul&cls
for /l %%i in (1,1,18) do (
  echo.&if %%i equ 9 echo  通过心灵感应,发现这个图形正是你所想的:%var117%
)
echo  按任意键再来一次...
endlocal&pause>nul
cls&goto begin[/code]

[[i] 本帖最后由 随风 于 2007-11-27 15:18 编辑 [/i]]

novaa 发表于 2007-11-27 17:11

呵呵
转载的,只注意了功能。

zxr1001 发表于 2008-9-12 10:30

如果这个数的十位是x个位是y
这个数就是10x+y
(10x+y)-(x+y)=9x
永远是9的倍数

acaigg 发表于 2011-1-4 14:56

收藏了,学习一下。谢谢分享。

garyng 发表于 2011-8-23 19:54

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=10047&ptid=220]8#[/url] [i]zxr1001[/i] [/b]


聪明~
所以只要让9的倍数9、18、27...都是同样的图形就可以了~
我玩flash版本的~

凡凡之呗 发表于 2015-2-8 10:10

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=551&ptid=220]1#[/url] [i]novaa[/i] [/b]


    这个算法我完全看不懂

凡凡之呗 发表于 2015-2-8 13:00

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=564&ptid=220]6#[/url] [i]随风[/i] [/b]


    我发现有时候不准,比如我想了个18

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.