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

[其他] 求1个直接判断2张牌是对子的程序

  1. ::以下是判断是否为两对,三条,四条,葫芦
  2. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  3. for /l %%i in (1,1,5) do (
  4.         if !right%%i! equ 13 set right%%i=A
  5.         if !right%%i! equ 12 set right%%i=K
  6.         if !right%%i! equ 11 set right%%i=Q
  7.         if !right%%i! equ 10 set right%%i=J
  8.         if !right%%i! equ 9 set right%%i=T
  9.         if !right%%i! equ 8 set right%%i=9
  10.         if !right%%i! equ 7 set right%%i=8
  11.         if !right%%i! equ 6 set right%%i=7
  12.         if !right%%i! equ 5 set right%%i=6
  13.         if !right%%i! equ 4 set right%%i=5
  14.         if !right%%i! equ 3 set right%%i=4
  15.         if !right%%i! equ 2 set right%%i=3
  16.         if !right%%i! equ 1 set right%%i=2
  17.         set str=!str!!right%%i!
  18. )
  19. ::把所发的5张牌的右半部分转换了以后放到str中。(这样做方便以后的判断)
  20. for /l %%i in (1,1,4) do (
  21.         set/a w=%%i+1
  22.         for /l %%j in (!w!,1,5) do (
  23.                 if  !right%%i! equ !right%%j! (
  24.                         set e1=!right%%i!
  25.                         set e2=!right%%j!
  26.                         goto 4
  27.                         ::如果5张牌中有两张数字(即右半部分)相等则跳到4。
  28.                 )
  29.         )
  30. )
  31. goto 5
  32. :4
  33. set str=!str:%e1%=0!
  34. ::把str中值等于%e1%的都设为0(这是由于str中本来是没有0的)。
  35. set h1=!str:~0,1!
  36. set h2=!str:~1,1!
  37. set h3=!str:~2,1!
  38. set h4=!str:~3,1!
  39. set h5=!str:~4,1!
  40. ::以上取出了str中的每个元素。
  41. set box=0
  42. for /l %%i in (1,1,5) do (
  43.         if !h%%i! equ 0 set/a box+=1
  44. )
  45. if !box! equ 4 set samefour=1&goto 5
  46. ::box的值等于4就代表,str中有4个数字是相等的,也就是说所发的5张牌中有4张在牌面的数字上是相等的。
  47. ::也就是四条。
  48. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  49. ::当box的值为3时,还有可能是葫芦。以下这一段判断是否是葫芦。
  50. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  51. if !box! equ 3 (
  52.         set str=!str:0=!
  53.         ::把str中的0清除,此时str中就剩下两个元素了。
  54.         set m=!str:~0,1!
  55.         ::把str的第一个值赋值给m。
  56. )
  57. ::此时m就有值了,否则m的值不正确!
  58. if !box! equ 3 (
  59.         set str=!str:%m%=0!
  60.         if !str! equ 00 set hulu=1&goto 5
  61.         ::如果str中剩下的两个元素相等,就是葫芦了。
  62.         set samethree=1&goto 5
  63.         ::如果str中剩下的两个元素不相等,就是三条了。
  64. )
  65. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  66. ::上面的都不符合的话,最多有可能的就只能是葫芦和两对了,下面是否是葫芦或两对。
  67. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  68. set str=!str:0=!
  69. ::清除str中的0。此时,str中就只剩下三个元素了。
  70. set g1=!str:~0,1!
  71. set g2=!str:~1,1!
  72. set g3=!str:~2,1!
  73. ::取出这三个元素。
  74. if !g1! equ !g2! if !g2! equ !g3! set hulu=1&goto 5
  75. ::如果剩下的元素相等,那么就是葫芦了。跳到5。
  76. for /l %%i in (1,1,2) do (
  77.         set/a w=%%i+1
  78.         for /l %%j in (!w!,1,3) do (
  79.                 if !g%%i! equ !g%%j! (
  80.                         set twocouples=1&goto 5
  81.                 )
  82.         )
  83. )
  84. ::如果剩下的三个元素不都相等但其中有两个相等,那么就是两对了。
复制代码
这个是英雄书里的原程序    有哪个高手能帮我 写个直接判断对子 的程序 ???谢谢

不用大家来帮忙像了   我 已经 做出来了

TOP

回复 2楼 的帖子

贴出来给大家分享一下?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

好的   但是这个方法觉得比较苯。。。。。。。。。。。
如果有更好的方法  也希望大家能帖出来下
for /l %%i in (1,1,2) do (
  set/a w=%%i+1
  for /l %%j in (!w!,1,3) do (
  if !right%%i! lss !right%%j! (
    set/a tt=!right%%i!
    set/a right%%i=!right%%j!
    set/a right%%j=!tt!
    )
  )
)
::keep line
set/a n1=%right1%
set/a n2=%right2%
set/a n3=%right3%
if !n1! equ !n2! goto k

for /l %%i in (1,1,2) do (
  set/a w=%%i+1
  for /l %%j in (!w!,1,3) do (
  if !right%%i! lss !right%%j! (
    set/a tt=!right%%i!
    set/a right%%i=!right%%j!
    set/a right%%j=!tt!
    )
  )
)
::keep line
set/a n1=%right1%
set/a n2=%right2%
set/a n3=%right3%
if !n2! equ !n3! goto l

goto 5

:k
for /l %%i in (1,1,2) do (
  set/a w=%%i+1
  for /l %%j in (!w!,1,3) do (
  if !right%%i! lss !right%%j! (
    set/a tt=!right%%i!
    set/a right%%i=!right%%j!
    set/a right%%j=!tt!
    )
  )
)
::keep line
set/a n1=%right1%
set/a n2=%right2%
set/a n3=%right3%
if !n3! lss !n2! set sametwo=1
goto 5


:l
for /l %%i in (1,1,2) do (
  set/a w=%%i+1
  for /l %%j in (!w!,1,3) do (
  if !right%%i! lss !right%%j! (
    set/a tt=!right%%i!
    set/a right%%i=!right%%j!
    set/a right%%j=!tt!
    )
  )
)
::keep line
set/a n1=%right1%
set/a n2=%right2%
set/a n3=%right3%
if !n2! lss !n1! set sametwo=1
::set the sametwo card

TOP

返回列表