|
很多平台都有机器人的,这确实是事实,PS ipoker都爆过机器人,像ps 的plo 200都有机器人赢了好像大概200w刀?不过这机器人肯定不是像另外一个帖子提到的什么翻牌前不管任何牌都跟别人all in,假如这是机器人的话,那写这个程序的程序员肯定是个智障。我贴的这个程序去年以前大概能打赢德扑圈的1-2不带anti的级别,总体来讲这个程序打得特别的紧弱,spr>6面对flop的raise它能弃掉底set,在天顺,天花面顶set都会弃掉,所以这程序大概赢率是3bb/100h左右吧,比较弱智,以下是部分源码
Function 翻牌(card1, card2, color1, color2, a1, a2, a3, b1, b2, b3, id)
Dim flopface,pairface,flashface,wet,power,draw
flopface = 牌面(a1, a2, a3, b1, b2, b3)
pairface = CInt(Mid(flopface, 1, 1))
flashface = CInt(Mid(flopface, 2, 1))
straightface= CInt(Mid(flopface, 3, 1))
wet=CInt(Mid(flopface, 3, 1))
power=牌力(card1,card2,color1,color2,a1,a2,a3,b1,b2,b3)
draw=Lib.德扑数学.听牌(card1,card2,color1,color2,a1,a2,a3,b1,b2,b3)
if pairface=2 then
if power=12 then
翻牌= "6"+CStr(wet)
ElseIf power = 4 and card1 >= 12 and card1 >= a1 Then
翻牌= "5"+CStr(wet)
elseif power=4 and card1<=11 and card1>=a1 then
翻牌 = "4" + CStr(wet)
ElseIf power >= 1 Then
翻牌 = "2" + CStr(wet)
ElseIf prepower <= 3 Then//AK
翻牌 = "1" + CStr(wet)
else 翻牌= "0"+CStr(wet)
end if
elseif pairface=1 then
if power>=11 then
翻牌= "6"+CStr(wet)
elseif power>=4 then
if power=5 and a1<>14 and a2<>14 and a3<>14 and (card1=14 or card2=14) then
翻牌= "5"+CStr(wet)
elseif card1>=11 and power=4 or power=5 Then
翻牌 = "4" + CStr(wet)
Else 翻牌 = "2" + CStr(wet)
end if
elseif power>=3 or draw>=2 then
翻牌 = "2" + CStr(wet)
ElseIf power = 2 Then
翻牌 = "1" + CStr(wet)
else 翻牌= "0"+CStr(wet)
end if
elseif flashface=1 then
if power=10 and (card1=14 or card2=14) or power=12 then
翻牌= "6"+CStr(wet)
elseif power=10 and (card1>=12 or card2>=12) then
翻牌= "5"+CStr(wet)
elseif power=10 then
翻牌= "4"+CStr(wet)
elseif card1=14 and color1=b1 or card2=14 and color2=b2 or power=7 or power=8 or card1=13 and color1=b1 and Lib.德扑数学.三取大(a1, a2, a3)=14 or card2=13 and color2=b2 and Lib.德扑数学.三取大(a1, a2, a3)=14 then
翻牌= "3"+CStr(wet)
elseif power>=3 then
翻牌 = "2" + CStr(wet)
else 翻牌= "0"+CStr(wet)
end if
elseif straightface>=1 then
If power >= 10 or power = 9 and card1 <> Lib.德扑数学.四取小(card1, a1, a2, a3) and card2 <> Lib.德扑数学.四取小(card2, a1, a2, a3) or power = 9 and Lib.德扑数学.五取大(card1,card2, a1, a2, a3)=14 and Lib.德扑数学.五取小(card1,card2, a1, a2, a3)=10 or power = 9 and Lib.德扑数学.五取大(card1,card2, a1, a2, a3)=14 and Lib.德扑数学.五取小(card1,card2, a1, a2, a3)=5 and card1<>14 and card2<>14 Then
翻牌= "6"+CStr(wet)
elseif power>=7 then
翻牌= "5"+CStr(wet)
ElseIf power >= 4 Then
If card1<=10 and power = 4 Then
翻牌 = "2" + CStr(wet)
Else 翻牌 = "4" + CStr(wet)
End If
elseif draw>=2 then
翻牌= "3"+CStr(wet)
elseif power=3 then
翻牌 = "2" + CStr(wet)
ElseIf power = 2 Then
翻牌 = "1" + CStr(wet)
else 翻牌= "0"+CStr(wet)
end if
else
if power>=8 and card1 <> Lib.德扑数学.四取小(card1, a1, a2, a3) and card2 <> Lib.德扑数学.四取小(card2, a1, a2, a3) or power>=7 and wet>=2 or power=7 and 翻牌两高张()=1 Then
翻牌= "6"+CStr(wet)
elseif power>=6 then
翻牌= "5"+CStr(wet)
elseif power>=4 then
If card1<=10 and power = 4 Then
翻牌 = "2" + CStr(wet)
Else 翻牌 = "4" + CStr(wet)
End If
elseif draw>=2 then
翻牌= "3"+CStr(wet)
elseif power=3 then
翻牌 = "2" + CStr(wet)
elseif power=2 then
翻牌 = "1" + CStr(wet)
else 翻牌= "0"+CStr(wet)
end if
End If
If prepower = 10 Then
翻牌 = "0" + CStr(wet)
dm.WriteFile "排错.txt", " id=" +id+ CStr(session)
End If
dm.WriteFile id+".txt", " 翻牌圈牌力=" + CStr(power)
dm.WriteFile id+".txt", " 翻牌圈听牌=" + CStr(draw)
dm.WriteFile id+".txt", " 翻牌圈成对牌面=" + CStr(pairface)
dm.WriteFile id+".txt", " 翻牌圈同花牌面=" + CStr(flashface)
dm.WriteFile id+".txt", " 翻牌圈湿度=" + CStr(wet)
end function
Function 牌面(a, b, c, x, y, z)
Dim min,mid2,max,flashface,straightface,pairface,wet
min = Lib.德扑数学.三取小(a, b, c)
mid2 = Lib.德扑数学.三取中(a, b, c)
max = Lib.德扑数学.三取大(a, b, c)
flashface = 0
straightface = 0
pairface = 0
wet= 0
if a=b and a=c then
牌面 = "2000"
Exit Function
end if
if max=mid2 or max=min or mid2=min then
pairface=1
end if
if max-min<=3 or max-min=4 and min>=10 then
straightface=1
elseif max-min=4 then
straightface=2
end if
if x=y and y=z then
flashface=1
elseif x=y or x=z or y=z then
flashface=2
end if
if pairface=1 then
if flashface=2 then
wet=1
else wet=0
end if
elseif flashface=1 and straightface>=1 then
wet=4
elseif flashface=1 and straightface=0 then
wet=3
elseif flashface=2 and straightface=1 then
wet=3
elseif flashface=2 then
wet=2
elseif straightface>=1 then
wet=1
end if
牌面= CStr(pairface)+CStr(flashface)+CStr(wet)+CStr(straightface)
end function
function 牌力(c1,c2,r1,r2,a,b,c,x,y,z)
if Lib.德扑数学.同花(r1,r2,x,y,z)=1 and Lib.德扑数学.顺子(c1,c2,a,b,c)=1 or Lib.德扑数学.四条(c1,c2,a,b,c)=1 then
牌力 = 12
ElseIf Lib.德扑数学.带A明三(c1, c2, a, b, c) = 1 Then
MessageBox "有带A明三"
牌力= 12
elseif Lib.德扑数学.葫芦(c1,c2,a,b,c)=1 then
牌力= 11
elseif Lib.德扑数学.同花(r1,r2,x,y,z)=1 then
牌力= 10
elseif Lib.德扑数学.顺子(c1,c2,a,b,c)=1 then
返回值 = Lib.德扑翻牌圈.牌力(c1,c2,r1,r2,a,b,c,x,y,z)
牌力= 9
elseif Lib.德扑数学.暗三(c1,c2,a,b,c)>=2 then
牌力= 8
elseif Lib.德扑数学.暗三(c1,c2,a,b,c)=1 then
牌力= 7
elseif Lib.德扑数学.明三(c1,c2,a,b,c)=1 then
牌力= 5
elseif Lib.德扑数学.顶两对(c1,c2,a,b,c)=1 then
牌力= 6
elseif Lib.德扑数学.中两对(c1,c2,a,b,c)=1 then
牌力= 5
elseif Lib.德扑数学.底两对(c1,c2,a,b,c)=1 then
牌力= 5
elseif Lib.德扑数学.超对(c1,c2,a,b,c)=1 then
牌力= 4
elseif Lib.德扑数学.顶对(c1,c2,a,b,c)=1 then
牌力= 3
elseif Lib.德扑数学.中对(c1,c2,a,b,c)=1 then
牌力= 2
elseif Lib.德扑数学.底对(c1,c2,a,b,c)=1 then
牌力= 1
else 牌力= 0
End If
TracePrint "牌力="+CStr(牌力)
End Function
这是按键精灵写的,我想大部分程序员都可以看懂个大概,看起来像是伪代码,实际上就是源码,想要源码的不用私聊我了,不会回,更不会给的。
|
|