[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
LZ你太好笑了,你斗地主让人输牌,我无语……,给你看看这个可以直接点的斗地主,就是逻辑基本没写,电脑不会出牌:
  1. @echo off&SETLOCAL ENABLEDELAYEDEXPANSION&(CHCP 437 &GRAFTABL 936)>NUL
  2. mode con cols=80 lines=25 >nul
  3. ::斗地主 一个鼠标操控的脚本游戏,用来演示和测试SYBC的鼠标支持
  4. ::开发:SYBN QQ:354324773 E-mail:sybnwork@Gmail.com
  5. ::SVN/HTTP下载地址:http://syxq.googlecode.com/svn/trunk/SYXQ/DDZ/ddz.cmd
  6. ::支持:此脚本已于2010年2月开发结束,未发现显见BUG,未搭载自动更新模块
  7. ::变量初始化
  8. ::玩家1-3 的牌统一使用P1XXX-p3XXX变量 P4XXX保留   玩家出的牌统一使用P5XXX-P6XXX  P7XXX保留  P0XXX 用于临时需要
  9. ::与扑克有关的变量牌统一使用PKXXX   
  10. ::    PKSXX代表各个点数的牌与字符的对应值 pks11=J  pks12=Q
  11. ::    PKHX代表各个花色的数字与字符的对应值 pkh1= (红桃) pkh0=T (王)
  12. ::    PKYX代表各个颜色的数字与字符的对应值 扑克只有红黑2色 pky0=c (红) pky1=0 (黑) (同color命令)
  13. set a=s1=A;s2=2;s3=3;s4=4;s5=5;s6=6;s7=7;s8=8;s9=9;s10=0;s11=J;s12=Q;s13=K;s14=A;s15=2;s16=N;s17=N;h1=;h2=;h3=;h4=;h0=T;y0=c;y1=0;BK=$7f;BK2=$f7;BK3=$37;BK4=$73;NB=$f1;p=1
  14. set pk%a:;=&set pk%
  15. ::载入/生成sybc 变量SYBCOM保存SYBC的16进制数据 V保存DEBUG代码 最后通过管道交由DEBUG执行
  16. SET SYBCOM=A100``80BE BA00 0 88AC ACC4 88AC 80C3 FC`3674 FC80 BEFF 82 4B75 2CBE AC00 C488`86AC 50C4 BE1F 0 3CAC 7553 ACFB 593C`F675 3CAC 7542 ACF1 433C EC75 3CAC 7553`ACE7 3D3C E275 1DEB 1B3 8EE9 B300 E902`89 3CAC 743A 3C0E 740D 3C5B 7400 8357`1EE 83E9 AC00 313C 1874 4A3C DA74 4B3C`DB74 4D3C 4474 6A3C CE74 6B3C CF74 6D3C`3874 D6E8 E800 F0 183C 2A7F C688 CAE8`E800 E4 4F3C 1E7F C288 2B0 E2F6 B050`F6A0 5FE6 C701 AC57 243C 374 EE83 E801`74 D188 38EB 4CB4 21CD B8 CD00 B833`1 33CD 5B8 CD00 A933 3 F174 3B8`CD00 8933 B3C8 F608 EBF3 B0DB CD00 8016`2FB D274 E088 CEEB 815F A0C7 5700 B850`B800 750 295A 88F5 ACCA 243C B174 3B3C`1174 D3C 5174 3C 4D74 233C 875 D783`EB01 E904 FF3C 80AA FA 574 D088 EBAA`83D8 1D7 D3EB 32E8 3C00 7523 8008 23FB`375 B2 38C3 74D8 87F9 3CC3 7E39 402`8009 39FB 37E C380 2409 800F FE3 10B2`E2F6 D800 C288 B4C3 CD4C AC21 203C FB74`D3C F374 3C EF74 C388 3CAC 7420 3CEC`740D 3CE4 7400 C3E0 C387 302C EB80 B430`F60A E4 C3D8``
  17. SET XQCOM=A100``580E 5 8E10 5D0 1000 33A3 EB01 B02A`B1E6 BABE A3C5 56BA 7265 3120 302E 4300`646F 2065 7962 4E20 7465 6562 746E 6E6F`0 0 0 0 BF00 81 3CE8 1E01`8F26 3106 5701 D231 8A26 4725 FC80 750A`EB02 8021 DFC 275 1AEB FC80 7500 EB02`8013 20FC 474 C2FE DEEB FA80 7500 8305`2C4 D1EB FA80 7500 B404 CD4C 2621 3E89`135 515F D189 B6E8 E800 C9 3C80 7400`E803 8 8B26 353E 5901 A9EB 3CAC 7530`E815 7B C688 76E8 8800 52C2 3B4 10CD`B45A CD02 C310 313C 1E75 6806 B800 E807`3F E850 59 C189 E358 470B E2AA 80FC`3C 274 E9EB C307 323C 1C75 6806 B800`E807 1D C488 3CAC 7509 EB02 3CF4 7500`EB02 AB03 F0EB C307 333C 75 343C 75`E8C3 1B C688 16E8 8800 B0C2 F602 88E2`B0C2 F6A0 B6E6 100 89D0 E8C7 1 52C3`3153 ACDB 303C 127C 393C E7F 302C B4`B050 F70A 5BE3 C301 E9EB D889 5A5B 60C3`8A26 3C05 7C61 3C09 7F7A 2C05 2620 588`E247 61ED BEC3 10 5751 A6F3 875 3C80`753D 4603 12EB 8046 3C 274 F8EB 8046`3C 474 595F E0EB 595F 60C3 26BE 1E00`4858 1F50 3B40 7404 8B04 EB04 3F4 306`5000 831F 13E 0 375 EB40 61F0 C3C3``
  18. SET SYBCV=`A80`DB FF``RCX`200`G`Q
  19. SET V=`RCX`200`N SYBC.COM`W`Q
  20. (ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:`=&ECHO.%)|DEBUG>NUL
  21. ::保存刷新块坐标 游戏界面中间部分(出牌的位置),每次需要局部刷新,变量DEBUGQK保存要刷新的内存地址起止点
  22. set DEBUGQK=1F8 267;298 307;338 3a7;3D8 447;478 4e7;518 587;5B8 627;658 6c7;6F8 767;798 807;838 8a7;8D8 947;978 9e7;A18 a87;AB8 b27
  23. set kh=                                                                                ;
  24. for /l %%a in (1,1,6) do set kh=!kh!%KH%
  25. ::初始信息
  26. color 3e
  27. echo 斗地主 {注释版} 2010-3-20
  28. echo.
  29. echo 目前没有AI,电脑不会出牌.你可以随便出牌,出完自动发牌.
  30. echo.
  31. echo 按键模式功能:M(鼠标模式) F2(从新发牌) F5(刷新) 方向键(控制扑克) 空格(出牌)
  32. echo.
  33. echo 鼠标模式功能:键盘按钮(键盘模式) 扑克(选择/取消选择 一张扑克) 出牌(出牌)
  34. echo.
  35. echo 注意:由于CMD.exe键盘事件机制问题,键盘模式下连续按键可能导致窗口卡死。此问题将在SYXQ中谋求解决。鼠标模式需要生成SYBC实体文件,其他情况无需SYBC实体文件。
  36. echo.
  37. echo 按任意键开始测试...
  38. echo.
  39. call :SYBC
  40. (echo.Q)|DEBUG>NUL
  41. echo 测试失败.请关闭游戏.并联系SYBN QQ:354324773
  42. call :SYBC 11300$0A测试成功.请再按任意键以开始游戏,祝您游戏愉快.
  43. echo.
  44. echo win 2003以后系统无法正常运行SYBC,所以会看到"测试失败"字样.
  45. echo [win 2003 R2]系统测试通过  [win XP SP2]系统测试通过
  46. pause>NUL
  47. :2
  48. ::调用发牌模块
  49. call :FP
  50. :1
  51. ::变量CBXX统一用于颜色背景信息  
  52. set cB0=$f
  53. cls
  54. ::计时1
  55. set t1=%time%
  56. ::显示顶部栏
  57. SET SYBCS=10000%CB0%0 :::│%CB0%C积%CB0%9  电脑左  %CB0%00  %CB0%2+0%CB0%C=%CB0%00  %CB0%0│%CB0%C 斗地主 V0.1 [稳定版] %CB0%0│%CB0%0  [庄家]  %CB0%0│ 底 牌 │:::
  58. SET SYBCS=%SYBCS%;:10100%CB0%0  ::│%CB0%C分%CB0%9  电脑右  %CB0%00  %CB0%2+0%CB0%C=%CB0%00  %CB0%0│%CB0%9开发: SYBN QQ:354324773 %CB0%0│%CB0%9  电脑左  %CB0%0│       │::  
  59. SET SYBCS=%SYBCS%;:10200%CB0%0   :│%CB0%C榜%CB0%9 玩家SYBN %CB0%00  %CB0%2+0%CB0%C=%CB0%00  %CB0%0│%CB0%22010-3-20  按F1查看帮助%CB0%0│%CB0%D 叫分 3分 %CB0%0│       │:   
  60. SET SYBCS=%SYBCS%;:10168%CB0%%PDI1Y%%PDI1S% %CB0%%PDI2Y%%PDI2S% %CB0%%PDI3Y%%PDI3S%;%CB0%%PDI1Y%%PDI1H% %CB0%%PDI2Y%%PDI2H% %CB0%%PDI3Y%%PDI3H%
  61. set SYBCS0=%SYBCS%
  62. ::显示3人的名称框
  63. SET SYBCS=%SYBCS%;:10300$4c☉$4c▄▄▄▄$4c☉;$c4▌$c9 电脑左 $4c▌;$c4▌$ce余牌11张$4c▌;$4c☉$c4▄▄▄▄$4c☉
  64. SET SYBCS=%SYBCS%;:10368$4c☉$4c▄▄▄▄$4c☉;$c4▌$c9 电脑右 $4c▌;$c4▌$ce余牌7 张$4c▌;$4c☉$c4▄▄▄▄$4c☉
  65. SET SYBCS=%SYBCS%;:11400$4c☉$4c▄▄▄▄$4c☉;$c4▌$c9玩家SYBN$4c▌;$c4▌$ce余牌17张$4c▌;$4c☉$c4▄▄▄▄$4c☉
  66. ::显示电脑的牌背
  67. call :pb 10701
  68. call :pb 10769
  69. set SYBCS1=%SYBCS%
  70. CALL :SYBCS
  71. ::P11显示玩家的牌
  72. set kzms=sb
  73. call :p11
  74. ::计时2
  75. set t2=%time%
  76. ::计算时差并显示
  77. call :timec
  78. goto :%kzms%
  79. :GB
  80. :SB
  81. title 请用鼠标选择您要出的牌...
  82. :SB1
  83. set kzms=sb
  84. sybc M
  85. set err=%errorlevel%
  86. set /a GBSvv=err-8,GBSvm=17+p2z*3,GBS=GBSvv/3
  87. if %err% gtr %GBSvm% (goto chupai) else (if %err% == 10 (goto chupai) else (if %err% lss 10 set kzms=jp&&call :p11&&goto :GBJ))
  88. if %GBs% gtr %p2z% set GBs=%P2z%
  89. if !p2w%GBs%! == 0 (set /a p2w%GBs%=1&&call :p11 1 %GBs%&&goto :SB1) else (set /a p2w%GBs%=0&&call :p11 0 %GBs%&&goto :SB1)
  90. goto :SB1
  91. :GBJ
  92. title 请选用键盘择您要出的牌...
  93. ::初始化选牌指针 变量GBy为原指针位置
  94. set /a GBy=12212,GBs=1
  95. :GB1
  96. set kzms=jp
  97. ::定位选牌指针 变量GBW为新指针位置
  98. set /a GBW=12209+GBs*3
  99. ::显示选牌指针并擦除原指针
  100. call :sybc %GBy%f1  ;
  101. call :sybc %GBw%f1↑
  102. ::无参数的SYBC功能类似CHOICE,暂停脚本并获取一个按键
  103. call :sybc
  104. ::下一行,显示所按的键
  105. ::title sybc-%errorlevel%-
  106. ::根据不同的按键执行相应的操作
  107. ::  左右键移动光标
  108. if %errorlevel% == 75 set /a GBs-=1
  109. if %errorlevel% == 77 set /a GBs+=1
  110. ::  上下键拉起/放下扑克 并刷新玩家的牌
  111. if %errorlevel% == 72 if !p2w%GBs%! == 0 set /a p2w%GBs%=1&&call :p11 1 %GBs%
  112. if %errorlevel% == 80 if !p2w%GBs%! == 1 set /a p2w%GBs%=0&&call :p11 0 %GBs%
  113. ::  空格 出牌
  114. if %errorlevel% == 57 goto chupai
  115. ::  F2 重新发牌
  116. if %errorlevel% == 60 goto 2
  117. ::  F5 刷新
  118. if %errorlevel% == 63 goto 1
  119. ::
  120. if %errorlevel% == 50 goto :SB
  121. ::指针超出高低极限则恢复
  122. if %GBs% lss 1 set gbs=%p2z%
  123. if %GBs% gtr %p2z% set gbs=1
  124. ::保存原指针等待擦除
  125. set /a GBy=GBw
  126. goto :GB1
  127. :chupai
  128. ::出牌
  129. set /a p6s=0,p6h=0,p6y=0,p6z=0,p0s=0,p0h=0,p0y=0,p0z=0,p2zBF=%p2z%
  130. set p2sBF=%p2s%
  131. set p2hBF=%p2h%
  132. set p2yBF=%p2y%
  133. for /l %%a in (1,1,%p2z%) do if !p2w%%a! == 1 (set /a p6z=p6z+1&&set p6s=!p6s!!p2s:~%%a,1!&&set p6h=!p6h!!p2h:~%%a,1!&&set p6y=!p6y!!p2y:~%%a,1!&&set p6js=农 民) else (set /a p0z=p0z+1&&set p0s=!p0s!!p2s:~%%a,1!&&set p0h=!p0h!!p2h:~%%a,1!&&set p0y=!p0y!!p2y:~%%a,1!)
  134. for /l %%a in (1,1,%p0z%) do (set /a p2z=p0z&&set p2s=!p0s!&&set p2h=!p0h!&&set p2y=!p0y!)
  135. :yanzheng
  136. set px=违规&set pxs=0&set pxz={违规了!}&set ps=---34567890JQKA02N$
  137. ::初始化
  138. for /l %%a in (0,1,4) do set pss%%a=0
  139. for %%a in (3 4 5 6 7 8 9 0 J Q K A 2 N) do set ps%%a=0&set p6zs%%a=0
  140. ::计算各中点数的牌的数量
  141. for /l %%a in (1,1,20) do for /f %%b in ("!p6s:~%%a,1!") do set /a ps%%b+=1
  142. ::计算牌的数量
  143. set /a p6zs=%ps3%+%ps4%+%ps5%+%ps6%+%ps7%+%ps8%+%ps9%+%ps0%+%psj%+%psq%+%psk%+%psa%+%ps2%+%psn%
  144. ::获取标记字符串%p6ss%
  145. set p6ss=---%ps3%%ps4%%ps5%%ps6%%ps7%%ps8%%ps9%%ps0%%psj%%psq%%psk%%psa%0%ps2%%psn%$
  146. ::提取最大的单张,2张,3张,4张
  147. for /l %%a in (3,1,17) do set pss!p6ss:~%%a,1!=%%a
  148. ::提取最小的单张,2张,3张,4张
  149. for /l %%a in (17,-1,3) do set psx!p6ss:~%%a,1!=%%a
  150. ::单牌
  151. if %p6zs% == 1 set px=一张&set pxz=一张{!ps:~%pss1%,1!}&set pxs=%pss1%
  152. set p=%p6ss%&set q=%p6zs%
  153. ::3张和飞机
  154. ::解释:  %p:3=.% == %p%  表示%p%中没有3则if生效,加上not表示有3则if生效
  155. if %q% == 6 if not %p:33=.% == %p% set px=飞机
  156. if %q% == 8 if not %p:33=.% == %p% set px=飞机带单
  157. if %q% == 10 if not %p:33=.% == %p% if %p:1=.% == %p% set px=飞机带对
  158. if not %px:飞机=.% == %px% set pxs=%pss3%&set pxz=%px%
  159. if %q% == 9 if not %p:333=.% == %p% set px=三顺
  160. if %q% == 12 if not %p:333=.% == %p% set px=三顺带单
  161. if %q% == 15 if not %p:333=.% == %p% if %p:1=.% == %p% set px=三顺带对
  162. if %q% == 12 if not %p:3333=.% == %p% set px=三大顺
  163. if %q% == 16 if not %p:3333=.% == %p% set px=三大顺带单
  164. set p3=%p:3333=.%
  165. if %q% == 20 if not %p:3333=.% == %p% if %p:1=.% == %p% if %p3:3=.% == %p3% set px=三大顺带对
  166. if %q% == 15 if not %p:33333=.% == %p% set px=三巨顺
  167. if %q% == 20 if not %p:33333=.% == %p% set px=三巨顺带单
  168. if %q% == 18 if not %p:333333=.% == %p% set px=三神顺
  169. if not %px:三=.% == %px% set pxs=%pss3%&set pxz=%px%
  170. if %q% == 3 if not %p:3=.% == %p% set px=三张&set pxz=三张!ps:~%pss3%,1!
  171. if %q% == 4 if not %p:3=.% == %p% set px=三带一&set pxz=三张!ps:~%pss3%,1!带一张!ps:~%pss1%,1!
  172. if %q% == 5 if not %p:3=.% == %p% if not %p:2=.% == %p% set px=三带对&set pxz=三张!ps:~%pss3%,1!带一对!ps:~%pss2%,1!
  173. ::对子和兄弟
  174. if %q% == 2 if %p:1=.% == %p% set px=对子&set pxz=一对!ps:~%pss2%,1!&set pxs=%pss2%
  175. if %q% == 6 if not %p:222=.% == %p% set px=3兄弟
  176. if %q% == 8 if not %p:2222=.% == %p% set px=4兄弟
  177. if %q% == 10 if not %p:22222=.% == %p% set px=5兄弟
  178. if %q% == 12 if not %p:222222=.% == %p% set px=6兄弟
  179. if %q% == 14 if not %p:2222222=.% == %p% set px=7兄弟
  180. if %q% == 16 if not %p:22222222=.% == %p% set px=8兄弟
  181. if %q% == 18 if not %p:222222222=.% == %p% set px=9兄弟
  182. if %q% == 20 if not %p:2222222222=.% == %p% set px=10兄弟
  183. ::顺子
  184. if %q% == 5 if not %p:11111=.% == %p% set px=5张顺子
  185. if %q% == 6 if not %p:111111=.% == %p% set px=6张顺子
  186. if %q% == 7 if not %p:1111111=.% == %p% set px=7张顺子
  187. if %q% == 8 if not %p:11111111=.% == %p% set px=8张顺子
  188. if %q% == 9 if not %p:111111111=.% == %p% set px=9张顺子
  189. if %q% == 10 if not %p:1111111111=.% == %p% set px=10张顺子
  190. if %q% == 11 if not %p:11111111111=.% == %p% set px=11张顺子
  191. if %q% == 12 if not %p:111111111111=.% == %p% set px=12张顺子
  192. ::炸弹
  193. if %q% == 4 if not %p:4=.% == %p% set px=炸弹&set pxz=炸弹{四张!ps:~%pss4%,1!}&set pxs=%pss4%&set pxs=%pss4%
  194. if %q% == 2 if not %p:2$=.% == %p% set px=王炸&set pxz=王炸{无敌}&set pxs=%pss2%
  195. ::提取有效牌(顺子和兄弟里的最大一张,3张里的不含带牌的最大一张)
  196. if not %px:顺子=.% == %px% set pxs=%pss1%&set pxz=%px%!ps:~%psx1%,1!到!ps:~%pss1%,1!
  197. if not %px:兄弟=.% == %px% set pxs=%pss2%&set pxz=%px%!ps:~%psx2%,1!到!ps:~%pss2%,1!
  198. call :sybc 11468$30您出的牌:   ;            ;:11568$3C%pxz%
  199. if "%px%" == "违规" (set p2s=%p2sBF%&&set p2h=%p2hBF%&&set p2y=%p2yBF%&&set p2z=%p2zBF%
  200. for /l %%a in (1,1,20) do set p2w%%a=0
  201. call :p11
  202. call :sybc 11668$30不能这样出.;请重新出牌!
  203. goto :GB)
  204. (ECHO.fB800:%DEBUGQK:;= 20 3e&ECHO.fB800:% 20 3e&ECHO.q%)|DEBUG>NUL
  205. for /l %%a in (1,1,%P6z%) do set /a wz=11220+%%a*3&&call :pa !wz! !p6y:~%%a,1! !p6s:~%%a,1! !p6h:~%%a,1! %p6js%
  206. call :sybcs
  207. for /l %%a in (1,1,20) do set p2w%%a=0
  208. SET SYBCS=%SYBCS%;:10350$30  ▁▁▁▁▁▁  ;$03▉$30      ▏;$03▉$3e 俺懒得要!$30▏;$03▉$3e      $30╲;  $03▇▇▇▇▇▇▇
  209. call :sybcs
  210. SET SYBCS=%SYBCS%;:10713$30  ▁▁▁▁▁▁  ;$03▉$30      ▏;$03▉$3e 俺要不起!$30▏;╱$3e      $30▏;$03▇▇▇▇▇▇▇$30  
  211. call :sybcs
  212. if %p6z% == %p2zBF% goto :win
  213. call :p11
  214. call :sybc 11606$ce  ;:11606$ce%p2z%
  215. call :sybc 11668$30没人要得起.;请继续出牌!
  216. goto :GB
  217. :p1
  218. if "%2" == "" goto :P11
  219. :P11
  220. set SYBCS=11800$3e%KH%:12000$3E按M键切换;到鼠标模式;出牌更方便;建议用鼠标;:12070$3EF2重新发牌;F5刷新屏幕;方向键控制;空格键出牌
  221. if "%kzms%" == "sb" set SYBCS=11800$3e%KH%:11900$3E┌───┒;│键  盘┃;┕━━━┛;鼠标模式不;能用功能键;点击用键盘;:11970$3E┌───┒;│出  牌┃;┕━━━┛;鼠标模式下;单击选扑克;然后出牌.
  222. for /l %%a in (1,1,%p2z%) do set /a wz=11908+%%a*3,pz=%%a+1&(if !p2w%%a! == 1 set /a wz=!wz!-100)&call :pa !wz! !p2y:~%%a,1! !p2s:~%%a,1! !p2h:~%%a,1! 农 民
  223. CALL :SYBCS
  224. goto :eof
  225. :pl
  226. set pl=%2
  227. for %%a in (0,1,20) set /a pq1=%%a*7+5,pq2=%%a*7+6 &&call :pa %1
  228. goto :eof
  229. :pb
  230. SET SYBCS=%SYBCS%;:%1%pkBK3%▄▄▄▄▄;%pkbk% %pkNB% {\__/} %pkBK% ; %pkNB% / $fc@@%pkNB% \ %pkBK% ; %pkNB%( ($f0oo%pkNB%) )%pkBK% ; %pkNB% / ~~ \ %pkBK% ;%pkbk% $f2斗 地 主%pkbk% ;%pkBK4%▄▄▄▄▄%pkBK%
  231. goto :eof
  232. :pa
  233. if not "%4" == "" SET SYBCS=%SYBCS%;:%1%pkBK% ▄▄▄▄ ; $f%2%3%pkNB%     %pkBK% ; $f%2%4%pkNB%  %5   %pkBK% ; %pkNB%   %6  $f%2%4%pkBK% ; %pkNB%     $f%2%3%pkBK% ; %pkBK2%▄▄▄▄%pkBK%
  234. goto :eof
  235. :fp
  236. title 发牌中...
  237. for /l %%a in (1,1,20) do set p2w%%a=0
  238. set paid=&set paif=&set paiy=&set /a p1z=17,p2z=17,p3z=17
  239. :FP1
  240. set /a pran+=1,m=0,n=0,d=0
  241. ::随机排序54张牌(洗牌)
  242. for %%a in (3 4 5 6 7 8 9 0 J Q K A 2) do (for %%b in (!pkh1!-!pky0! !pkh2!-!pky0! !pkh3!-!pky1! !pkh4!-!pky1!) do (set p%pran%#!random!!random!.%%a-%%b=1))
  243. set P%pran%#300543001.N-!pkh0!-!pky1!=1&set P%pran%#543001000.N-!pkh0!-!pky0!=1
  244. ::发牌,并留三张底
  245. set he1=&set he2=&set he3=&set Di=
  246. for /f "tokens=2 delims==." %%a in ('set p%pran%#') do set /a m=m%%3+1,n+=1&&if !n! leq 51 (for %%c in (!m!) do set he%%c=!he%%c! %%a) else (set di=!di! %%a)
  247. set a=1s=%di:~1,1%;1h=%di:~3,1%;1y=%di:~5,1%;2s=%di:~7,1%;2h=%di:~9,1%;2y=%di:~11,1%;3s=%di:~13,1%;3h=%di:~15,1%;3y=%di:~17,1%
  248. set pdi%a:;=&set pdi%
  249. ::整理各家手上的牌
  250. for /l %%a in (1,1,3) do (for %%b in (!he%%a!) do (for /f "tokens=1,2,3 delims=-" %%c in ("%%b") do (
  251. set pd%pran%#%%c=!pd%pran%#%%c!%%c
  252. set pf%pran%#%%c=!pf%pran%#%%c!%%d
  253. set py%pran%#%%c=!py%pran%#%%c!%%e))
  254. for %%b in (3 4 5 6 7 8 9 0 J Q K A 2 N) do set paid%pran%#=!paid%pran%#!!pd%pran%#%%b!&set paif%pran%#=!paif%pran%#!!pf%pran%#%%b!&set paiy%pran%#=!paiy%pran%#!!py%pran%#%%b!
  255. for /f "tokens=1,2,3 delims=." %%b in ("!paid%pran%#!.!paif%pran%#!.!paiy%pran%#!") do set p%%as=0%%b&set p%%ah=0%%c&set p%%ay=0%%d
  256. )
  257. if "%pdi3s%" == "" goto FP
  258. goto :eof
  259. :win
  260. (echo.FB800:B40 FFF 20 3E&echo q)|DEBUG>NUL
  261. set sybcs=12030F1╔════════╗;║$FC恭喜你,获得胜利.$F1║;║$F8按任意键从新开局$F1║;╚════════╝
  262. call :SYBCS
  263. pause>nul
  264. goto :2
  265. :timec
  266. IF "%t1%" == "" EXIT /B 0
  267. FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%N IN ("%t1%") DO SET O=1%%O&SET P=1%%P&SET Q=1%%Q&SET /A N=100+%%N
  268. IF "%t2%" == "" SET /A T=N*360000+O*6000+P*100+Q-36610100&&EXIT /B !T!
  269. FOR /F "DELIMS=:. TOKENS=1,2,3,4" %%M IN ("%t2%") DO SET I=1%%N&SET J=1%%O&SET K=1%%P&SET /A H=100+%%M
  270. IF "%t2%" GTR "A" (SET L=%t2%&SET /A T=N*360000+O*6000+P*100+Q-36610100,S=T/100,M=T/6000,H=T/360000) ELSE (SET L=%3&SET /A H=H-N,I=I-O,J=J-P,K=K-Q,T=H*360000+I*6000+J*100+K,S=T/100,M=T/6000,H=T/360000)
  271. IF "%L%" == "" SET L=T
  272. call :sybc 1176831耗时:   厘秒;:11773$3c!%L%!
  273. goto :eof
  274. :SYBCS
  275. echo %SYBCS% >>sybc.txt
  276. (ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%SYBCV:`=&ECHO.%)|DEBUG>NUL
  277. goto :EOF
  278. :SYBC
  279. IF "%1" == "" SET SYBCCD=00&GOTO SYBCC
  280. echo %1 >>sybc.txt
  281. SET SYBCCD=64
  282. set SYBCC=%*
  283. :SYBCC
  284. SET V=`A80`DB %SYBCCD% 00 "%SYBCC%" 0D``RCX`200`G`Q
  285. (ECHO.%SYBCOM:`=&ECHO.DW %&ECHO.%V:`=&ECHO.%)|DEBUG>NUL
  286. EXIT /B %ERRORLEVEL%
复制代码

TOP

怎么没人,那么好的代码

TOP

返回列表