Board logo

标题: [其他] 彩票走势图绘制 [打印本页]

作者: happy886rr    时间: 2016-6-7 20:25     标题: 彩票走势图绘制

彩票种类很多,先来一个福彩3d走势图的批处理。数据源来自乐彩网
代码经过极度优化,几乎可在3秒内就能绘制完全部十几年的3D走势图,txt打开禁用自动换行,效果蛮不错,提供了试机号、销售详情、和值、路线等多种参考数值。
  1. @echo off&title
  2. setlocal enabledelayedexpansion
  3. mode con cols=45 lines=12
  4. color 0f
  5. :main
  6. echo 福彩·3D 走势绘制
  7. echo ...
  8. ::开始计时
  9. set t1=!time:~-5!
  10. ::设置走势图变量
  11. set "0=0                  "
  12. set "1=■1                "
  13. set "2=■■2              "
  14. set "3=■■■3            "
  15. set "4=■■■■4          "
  16. set "5=■■■■■5        "
  17. set "6=■■■■■■6      "
  18. set "7=■■■■■■■7    "
  19. set "8=■■■■■■■■8  "
  20. set "9=■■■■■■■■■9"
  21. (
  22. echo  _________________________________________________________________________________________________________________________________________________________________________________________________________
  23. echo 丨     期号     丨   日期   丨 试机号丨 机丨   开奖号  丨            百位          丨            十位          丨            个位          丨和值 丨  路线 丨    销售金额    丨         中奖详情         
  24. echo  _________________________________________________________________________________________________________________________________________________________________________________________________________
  25. echo  _________________________________________________________________________________________________________________________________________________________________________________________________________
  26. for /f "tokens=1-17" %%h in (3d.TXT) do (
  27. set "dis= "
  28. set "sdis=  "
  29. set "ye=%%i"
  30. set/a "num=%%u+%%w,sum=%%j+%%k+%%l,pan=(%%j-%%k)*(%%k-%%l)*(%%l-%%j),span=%%j+%%k-2*%%l,sin1=%%j%%2,sin2=%%k%%2,sin3=%%l%%2,road1=%%j%%3,road2=%%k%%3,road3=%%l%%3,pan2=sin1+sin2-2*sin3"
  31. if !sum! lss 10 (set "sum= !sum!")
  32. if !pan! equ 0 (set "dis=*" &if !span! equ 0 (set "sdis=豹"))
  33. if !pan2! equ 0 (if !sin1! equ 0 (set nis=偶) else (set nis=奇)) else (set "nis=  ")
  34. if "!ye:~5,1!"=="0" (set "mon= !ye:~6,1!") else (set "mon=!ye:~5,2!")
  35. if "!ye:~-2,1!"=="0" (set "da= !ye:~-1!") else (set "da=!ye:~-2!")
  36. if %%r lss 100000 (set "x1="&set "x2="&set "x3=") else (set x1=总计%%r元 &set x2=单选%%s注 &set x3=组选!num!注)
  37. echo 丨第  %%h 期丨 !mon!月!da!日 丨(%%m%%n%%o)丨%%p-%%q丨!nis!!sdis! %%j%%k%%l  !dis!丨百!%%j!     丨十!%%k!     丨个!%%l!     丨和 !sum!丨 !road1!,!road2!,!road3! 丨 !x1!    !x2!    !x3!
  38. )
  39. echo  _________________________________________________________________________________________________________________________________________________________________________________________________________
  40. )>3db
  41. for /f %%a in ('find /c /v ""^<3d.TXT') do (set/a i=%%a,l=i-1)
  42. for /f "tokens=1" %%a in ('more +!l! 3d.TXT') do (set/a head2=%%a)
  43. (set /p head1=)<3d.TXT
  44. (
  45. echo 福彩3D开奖数据
  46. echo;
  47. echo  第!head1:~0,7!期 ~ 第!head2!期    共计!i!期         *代表组三
  48. )>3dh &copy /b 3dh+3db 福彩3D走势图.txt  1>NUL 2>NUL
  49. ::毫秒计时器
  50. set t2=!time:~-5! &set/a "t=1!t2:.=!-1!t1:.=!" &if !t! lss 0 (t+=6000)
  51. echo 用时!t:~0,-2!秒!t:~-2!0毫秒
  52. start 福彩3D走势图.txt
  53. del 3dh &del 3db
  54. set/p=
复制代码
绘制完的走势图过于庞大,不便查询,于是用批处理模拟数据库,实现了包括关键字查询、子查询等功能。
  1. @echo off
  2. title 3D Speed
  3. setlocal enabledelayedexpansion
  4. mode con cols=45 lines=12
  5. color 0f
  6. :main
  7. set i=0
  8. set tp=%0
  9. set ctp=%0
  10. set "tx="
  11. :mainA
  12. cls
  13. echo   ■■   ■■        %date%   
  14. echo      ■   ■  ■   
  15. echo    ■     ■  ■              
  16. echo      ■   ■  ■ ____________________
  17. echo   ■■  D■■   丨Copyright2016~2018
  18. echo ________________!tx!
  19. set "str="
  20. set /a i+=1
  21. set /p str=第!i!级查询:
  22. if "!str!"=="sys" (
  23.                    echo [系统信息]        %date%>.\sysinfo.ini
  24.                    echo __________________________________________________________________________________>>.\sysinfo.ini
  25.                    systeminfo>>.\sysinfo.ini
  26.                    start .\sysinfo.ini
  27.                    goto main
  28.                     )
  29. if "!str!"=="" goto main
  30. set "tp=!ctp!"
  31. set "tx=!tx!!str!’"
  32. if "!str!"=="0" (goto main)
  33. if "!str!"=="." (set "str=奇"&goto search)
  34. if "!str!"==".." (set "str=偶"&goto search)
  35. if "!str!"=="..." (set "str=豹"&goto search)
  36. if "!str:~1,1!"=="," (goto search)
  37. if "!str:~0,1!"=="." (set "str=(!str:~1,3!)"&goto search)
  38. if "!str:~1,1!"=="." (set "str=和  !str:~0,1!"&goto search)
  39. if "!str:~2,1!"=="." (set "str=和 !str:~0,2!"&goto search)
  40. if "!str:~1,1!"=="" (set "str=!str!月"&goto search)
  41. if "!str:~2,1!"=="" (set "str=!str!月"&goto search)
  42. if "!str:~3,1!"=="" (set "str= !str! "&goto search)
  43. if "!str:~7,1!"=="" (set "str=第  !str!"&goto search)
  44. :search
  45. if not exist .\logs (md .\logs)
  46. set ctp=.\logs\"!i!Src!str!.txt"
  47. if exist !ctp! (if "!i!"=="1" (goto last))
  48. echo  !i!级查询:"!str!">!ctp!
  49. echo  ___________________________________________________________________________________________________________________________________________________________  _________________________________>>!ctp!
  50. echo 丨     期号     丨   日期   丨 试机号丨 机丨   开奖号  丨            百位          丨            十位          丨            个位          丨和值 丨  路线 丨丨 销售金额    丨     中出        >>!ctp!
  51. echo  ___________________________________________________________________________________________________________________________________________________________  _________________________________>>!ctp!
  52. echo  ___________________________________________________________________________________________________________________________________________________________  _________________________________>>!ctp!
  53. find "!str!" <!tp!>>!ctp!
  54. echo  ___________________________________________________________________________________________________________________________________________________________  _________________________________>>!ctp!
  55. :last
  56. start !ctp!
  57. goto mainA
  58. 丨第  2002001 期丨  1月 1日 丨(526)丨2-2丨     073   丨百0                       丨十■■■■■■■7         丨个■■■3                 丨和 10丨 0,1,0 丨
  59. 丨第  2002002 期丨  1月 2日 丨(203)丨1-1丨     237   丨百■■2                   丨十■■■3                 丨个■■■■■■■7         丨和 12丨 2,0,1 丨
  60. REM 后边省略5000行数据,可由上一个批处理得到。
  61. ...
复制代码
这个查询的大致用法是
  1. 3D速查用法,查期数、年数、月数、开奖号码等直接输入数字即可查询;
  2. 查试机号需要在前面加个点,比如需要查询试机号为315的期数,应输入 ".315"  
  3. 查和值在数字后加个.比如需要查询和值为9的期数,应输入 "9."
  4. 查全奇号输入"."
  5. 查全偶号输入".."
  6. 查豹子号输入"..."
  7. 3D速查(自动递归)版,无需回车直接层层递归查询,无内容回车直接回到一级查询
  8. 3D速查则需要输入回车才能进入下一级查询,输入0才能回到一级查询
  9. 输入"sys"可以查看当前系统信息
复制代码
最后照猫画虎,改出双色球走势图的绘制bat
  1. @echo off&title
  2. setlocal enabledelayedexpansion
  3. mode con lines=12 cols=50
  4. color 0f
  5. :main
  6. echo 福彩·双色球 走势绘制
  7. echo ...
  8. ::开始计时
  9. set t1=!time:~-5!
  10. ::设置走势图变量
  11. set "b01=  "
  12. set "b02=  "
  13. set "b03=  "
  14. set "b04=  "
  15. set "b05=  "
  16. set "b06=  "
  17. set "b07=  "
  18. set "b08=  "
  19. set "b09=  "
  20. set "b10=  "
  21. set "b11=  "
  22. set "b12=  "
  23. set "b13=  "
  24. set "b14=  "
  25. set "b15=  "
  26. set "b16=  "
  27. set "b17=  "
  28. set "b18=  "
  29. set "b19=  "
  30. set "b20=  "
  31. set "b21=  "
  32. set "b22=  "
  33. set "b23=  "
  34. set "b24=  "
  35. set "b25=  "
  36. set "b26=  "
  37. set "b27=  "
  38. set "b28=  "
  39. set "b29=  "
  40. set "b30=  "
  41. set "b31=  "
  42. set "b32=  "
  43. set "b33=  "
  44. (
  45. echo  ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  46. echo 丨     期号     丨   日期   丨         开奖号         丨  和 丨                                                           走势图                                                                 丨        出球顺序        丨                        销售详情                          
  47. echo  ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  48. echo  ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  49. ::以空格作为分隔符,从数据源文件截取元素
  50. for /f "tokens=1-19" %%h in (ssq.TXT) do (
  51. ::求和
  52. set /a "sum=10%%j+10%%k+10%%l+10%%m+10%%n+10%%o-6000"
  53. set "su= !sum!"
  54. ::绘制走势图
  55. set b%%j=%%j
  56. set b%%k=%%k
  57. set b%%l=%%l
  58. set b%%m=%%m
  59. set b%%n=%%n
  60. set b%%o=%%o
  61. ::优化日月的显示
  62. set "ye=%%i"
  63. if "!ye:~5,1!"=="0" (set "mon= !ye:~6,1!") else (set "mon=!ye:~5,2!")
  64. if "!ye:~8,1!"=="0" (set "da= !ye:~9,1!") else (set "da=!ye:~8,2!")
  65. ::销售详情,剔除投注为零的显示
  66. if %%y equ 0 (set "tx=总计%%w元,奖池%%x元    头奖%%y注") else (set "tx=总计%%w元,奖池%%x元    头奖%%y注,每注%%z元")
  67. if %%w equ 0 (set "tx=")
  68. ::表格输出
  69. echo 丨第  %%h 期丨 !mon!月!da!日 丨 %%j-%%k-%%l-%%m-%%n-%%o---%%p 丨 !su:~-3!.丨!b01!丨!b02!丨!b03!丨!b04!丨!b05!丨!b06!丨!b07!丨!b08!丨!b09!丨!b10!丨!b11!丨!b12!丨!b13!丨!b14!丨!b15!丨!b16!丨!b17!丨!b18!丨!b19!丨!b20!丨!b21!丨!b22!丨!b23!丨!b24!丨!b25!丨!b26!丨!b27!丨!b28!丨!b29!丨!b30!丨!b31!丨!b32!丨!b33!丨* %%q~%%r~%%s~%%t~%%u~%%v丨!tx!
  70. ::初始化变量
  71. set "b%%j=  "
  72. set "b%%k=  "
  73. set "b%%l=  "
  74. set "b%%m=  "
  75. set "b%%n=  "
  76. set "b%%o=  "
  77. )
  78. echo  ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
  79. )>tdb
  80. for /f %%a in ('find /c /v ""^<ssq.TXT') do (set/a i=%%a,l=i-1)
  81. for /f "tokens=1" %%a in ('more +!l! ssq.TXT') do (set/a head2=%%a)
  82. (set /p head1=)<ssq.TXT
  83. (
  84. echo 福彩·双色球开奖数据
  85. echo;
  86. echo  第!head1:~0,7!期 ~ 第!head2!期    共计!i!期         *代表出球顺序
  87. )>tdh &copy /b tdh+tdb 双色球走势图.txt 1>NUL 2>NUL
  88. ::结束计时
  89. set t2=!time:~-5! &set/a "t=1!t2:.=!-1!t1:.=!" &if !t! lss 0 (t+=6000)
  90. echo 用时!t:~0,-2!秒!t:~-2!0毫秒
  91. start .\双色球走势图.txt
  92. del tdb &del tdh
  93. set/p=
复制代码

作者: codegay    时间: 2016-6-7 20:43

太NB           。
作者: pcl_test    时间: 2016-6-7 20:43

把数据也一并下了
  1. mshta http://bathome.net/s/hta/ web('http://www.17500.cn/getData/3d.TXT')>3d.TXT
  2. mshta http://bathome.net/s/hta/ web('http://www.17500.cn/getData/ssq.TXT')>ssq.TXT
复制代码

作者: happy886rr    时间: 2016-6-7 20:53

回复 3# codegay
献丑之作,研究好久彩票,就是不中大奖,没事干随便写了个走势图,网页在线走势图反应慢,这个txt图能展示所有期数。
作者: happy886rr    时间: 2016-6-7 20:57

回复 3# pcl_test
恩,更好,数据每天都在更新。
作者: codegay    时间: 2016-6-7 21:00

回复 4# happy886rr


    彩票本来就多黑幕,网络彩票被整治之前两个月,那时支付宝什么的都可以直接买,我每天都买几个块钱消解焦虑,虽然理智上知道不太可能中大奖,知道会亏。
作者: happy886rr    时间: 2016-6-7 21:05

回复 6# codegay
3d中奖率还是蛮高的,只是奖金小,我玩双色球、大乐透比较多,但是中奖率都在数千万分之一,真的是看命了。
作者: /zhqsystem/zhq    时间: 2016-6-7 21:52

有这么无聊吗汗,不过正需要哈哈,已收藏




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