借用gofox项目代码,整理了一个go管理后端

一 感谢 gofox 项目无私的贡献

技术栈 beego + layui + mysql
https://github.com/pzhen/gofox

二 我自己管理后端的界面

三 这两个月的业余时间,都在整理两个Go开发的telegram机器人游戏,一直缺少一个管理后端,可以直观展示游戏数据。找来找去,感觉gofox看起来比较简洁清晰。

这个管理后端的整理,对于beego的路由树也加深了一些认知。

--the end

接码平台:在线接收手机短信

最近试用了一个可以在线接收短信和租用手机号码的网站,

  • 注册一些需要保护隐私的社交app帐号
  • 或是中国手机帐号不太能注册的社交app帐号,比如whatsapp
  • 支付方式也是支持多种,比如 usdt-trc20,支付宝等

实测,接收短信,美国号码,有效。费用0.48美元 一次。

网站地址 https://sms-man.com 也可以租用手机号码

一 租用号码

二 接收短信

三 余额充值

还提供api接入,可以集成到自己的应用中,实现部分功能的自动化。

四 其他

也有其他的接码平台,提供类似的功能与服务。
--the end

孟姜女走线路线分享[转贴]

文章为telegram群中的图片转换而来。

孟姜女走线路线分享

  • 1:
    6.29 我跟我老公拿提前好几个 月办好的港澳通行证 从罗湖口岸出关,到了香港后,根据谷软地图乘坐 巴士直达香港国际机汤。拿提前准备好的 (去程返 程机票、酒店预订单、旅行计划) 去值机柜台取 票,期间女的工作员仔细核查了我资料的真实性, 没有过多蛊问就给了票。值机顺利。在机场换了2 万泰栋,以便泰国落地签缴费。(香港机场汇率好坑)
  • 2:
    6.29 晚上成功抵达泰国,从机炀坐出租车到达了提 前在 booking 预订的附近的酒店将就一晚。然后在 酒店马上办理了土耳其电子签。并在 Agodα 仔细查 询最近的优惠机票。安排好了 7.6 前往土耳其的机票。6.29~7.6 日在泰国游玩,参观了大皇宫等。
  • 3:
    7.6 旱上 5:00 乘坐地铁前往泰国素万那普机场赶9:00 的飞机,在值机柜台,阿拉伯航空检查我们的资料接近半个小时,机场给出的回复是说他们的电脑系统今天出现了问题,非常对不起。虽然我很紧张,也假装很淡定跟我老公说笑。最后成功值机。
  • 4:
    7.6经过 17小时的飞行,我们抵达了土耳其伊斯坦布尔机扬。在机场尝试用 Uber打到很优惠的车,但上车后司机说要么给20$要么就下车。没办法最后给了,非常疲惫到达了附近的酒店休整一晚。
  • 5:
    7.7 在 Agodα拢了土耳其比较便宣的酒店,开始漫长的逗留时间。经过好几晚上的看票,经过商议最后购买了土耳其航空中转波哥大抵达厄瓜多尔基多的票。安心在土耳其 Avcilα地区从7.7~8.4共呆了29天。期间去参加了土耳其基督家庭聚会,也游览了土耳其海峡等。8.3 开始前往在 Agodα找的地铁附近的酒店,并且提前熟悉去机场的路线。(地铁6:00 运行)
  • 6:
    8.4 早上5:45 开始乘坐地铁前往伊斯坦布尔机场赶早上10:00 的飞机。土耳其并没有看我们准备的任何资料,在 自助值机有工作人员直接拿了我们护照就给我们出了两程的票。然后开始等待值机。成功登上飞机。(飞机上有很多的中国人,接近 1/3 )经 过 13 小时漫长飞行抵达了波哥大,在波哥大休整 3 小时之后再次值机,遇到机场工作人员严格检查中 国人的返程票 (我买的基多-玻利维亚),心里不适(害怕到删掉了telegram) ,配合工作,没有人失败,全部成功登机。
  • 7:
    8.4 晚上 22:40 到达基多【厄瓜多尔】苏克雷元帅国际机场。直接机场出租车 10 $到达附近酒店。非常疲惫,休息一晚。
  • 8:
    8.5搜索了基多北站位置,出租车 30 $ 到达基多北站(旱知道用Uber 了,便宣些) 然后搜索了附近的 酒店,盘算打疫苗的事情。8.5~8.8 在基多休整+游玩,去了基多国家圣殿等地。
  • 9:
    8.9前往疫苗地址,接种了疫苗之后 ,前往了基多北站,7 $ 每人当天 14:20 坐大巴前往了图尔坎【厄瓜多尔】。
  • 10:
    8.9-8.11在图尔坎【厄瓜多尔】休整了2 晚,并提前规划后面的路线,买好了8:14帕斯托~蒙特里亚的机票( 860 每人) 。
  • 11:
    8.11从图尔坎乘坐出租车 4 $ 前往哥伦比亚边境。 在边境上遭遇了国内出发以来最恶心的事情。坐了 边境小店则的车 ,被边境小店联合黑警 、黑车一共 打劫了55 $ ,一直凶悍并且指出他们是骗子 ,最 后他们见戏已被戳穿,还是把我们送到了伊皮亚莱 斯,下车之前没给车费还)中他们怒吼,心里非常气 愤。(建议后人不要在边境小店办理通行证和电话 卡,直接 1$ 坐 白色哥伦比亚出租车到伊皮亚莱斯 车路,车2占可以办理通行证和买电话卡)在车站换了100$哥伦比亚比索。
  • 12:
    8.11在伊皮亚莱斯车站买了到帕斯托【哥伦比亚】的汽车票。
    4 $ 每人,乘坐大约 3小时到达帕斯托【哥伦比亚】汽车站。下车后找到了一个距离购物中心较近的酒店逗留休整。 然后乘坐Uber前往。12.5$每晚,住三晚,8.14 打Uber去机场坐飞机到蒙特里亚【哥伦比亚】。


【编注:文字内容,只是走线的一小部分】

总结:我和我老公一直走得比较慢。从出国那天到现在,两个人总的花销为 54050 RMB。其中两个 人的机票+签证总费用为 35224 RMB。综上,除去 机票和签证,两人总的花销为 482 RMB/天。数据 仅供参考 。按照预算每天 1000,抵达墨西哥蒂华纳 边境预留时间30 天,两人预算 3万元 RMB。抵达 美国共花费 84050 RMB。

--the end

usdt-trc20兑换trx,可以自助兑换的途径

因为近期需要转账usdt-trc20,消耗trx比较快,每一次转账基本上都会消耗14个左右的trx,于是稍微收集了一下,可以自助兑换,没必要去交易所操作。

需要留意一下的是:

  • 转账usdt-trc20的时候,tron钱包中需要有足够的trx才可以转账。所以,第一次是需要去交易所购买的,或者请熟人帮你先行转一点trx,兑换后再归还。
  • 转账兑换usdt-trc20的时候,发送usdt-trc20的钱包[tron钱包]地址和接收trx的钱包[tron钱包]地址是相同的。所以,只需要填写一次钱包地址就好。

一 Telegram兑换机器人

因为使用telegram作为日常交流工具,所以,使用tg机器人操作比较快捷。缺点是兑换的数目稍微偏少一点点。

@XTutrx_bot 夏天TRX兑换自助机器人

预支trx 选项,是必须已经兑换了多少usdt之后的用户才有资质。

https://changenow.io 在线自助兑换

https://changenow.io/zh/exchange?from=usdttrc20&to=trx&amount=10

https://simpleswap.io 在线自助兑换

https://simpleswap.io/cn/exchange?from=usdttrc20&to=trx&amount=10&rate=floating

四 资金操作,自行评估风险

每次自助兑换之前,可以稍微比较,选择一个能换取更多数额的途径操作。

--the end

Inkscape1.3版本,svg转png在Ubuntu Server20.04遇到的问题

一 Inkscape程序

https://inkscape.org/

Inkscape是矢量图形编辑器,以自由软件许可发布与使用。该软件的开发目标是成为强大的绘图软件,且能完全遵循与支持XML、SVG及CSS等开放性的标准格式,而且是跨平台的应用程序,支持Windows、Mac OS X、Linux及类UNIX版等操作系统。[维基百科]

二 开发的后端go程序,需求svg转png,刚好选用Inkscape程序。在Windows10,Ubuntu桌面版[Ubuntu 22.04.2 LTS]运行都是ok的,但是 Ubuntu Server 上运行会出错。

glibmm-WARNING Failed to wrap object of type 'GtkRecentManager'

Ubuntu Server 版本

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:    20.04
Codename:   focal

Ubuntu Server 版本上安装的Inkscape版本是1.3的,错误和这个url地址错误一样 https://gitlab.com/inkscape/inbox/-/issues/6903

Version info
    Inkscape 1.3-dev (8a0d19d550, 2022-05-02, custom) Linux Mint 20
    Inkscape 1.2-beta (0d9a0fea06, 2022-04-08) Linux Mint 20

Doesn't occur in Inkscape 1.1.2 (ccedf6bf22, 2022-02-24) Linux Mint 20

根据这个帖子的内容,所以,卸载1.3新版本,改安装 1.1 版本。

apt purge inkscape  
apt list | grep inkscape 

查看可以安装的版本,选择1.1版本安装。

apt install inkscape=1:1.1+rc+202105240936+c4e8f9ed74~ubuntu20.04.1

安装完成,后端就可以正常从svg转到png了。

Inkscape也支持svg转pdf格式。

--the end

百家乐Baccarat庄闲和胜率统计

一 开发了一个Go程序,来统计百家乐游戏中的庄闲和胜率情况。

  • 运行环境:vscode/ubuntu,32G内存
  • 运行条件:
  • 开启50个goroutine,每个goroutine循环10000次,也就是一共循环50万次
  • 每循环1次就是,牌靴中有8副牌的游戏流程[去掉大小鬼,每副牌52张]
  • 运行时间:2023-07-18 20:06:55
  • 运行时长:6:47(6分47秒)
  • 运行结果:

二 运行结果说明:

图表上的总运行次数代表的是,洗牌之后,每次下发闲家庄家的牌[闲家2张,庄家2张],并完成补牌整个流程,最终获胜的某个下注区域,这样的流程。

看起来,百家乐其实是游戏中,少有的庄闲对赌中,庄家没有占据大优势的游戏类别之一。

为方便记忆,可以简单取整,庄家 46%胜率,闲家45%胜率,和9%胜率。

三 可以参考:

维基百科中的 百家乐词条

https://zh.m.wikipedia.org/zh-cn/%E7%99%BE%E5%AE%B6%E6%A8%82

词条中庄胜率45.8597%,闲家胜率44.6247%,和胜率9.5156%

--the end

德州扑克Texas Holdem中5张公共牌出现的牌型概率

大约2014左右开始接触德州扑克游戏,然后就一直很喜欢德州扑克游戏。还看了很多德州扑克主播的讲解,买了很多德州扑克方面的书籍来看。

最初是在pokerstars这个平台玩,后来转到gg poker,大约2020年左右,慢慢转到打奥马哈[Omaha],先玩的是4张奥马哈,近期基本只玩5张奥马哈。
让人不好意思承认的是,一直是个亏损玩家。XD

一 开发的go程序,用于计算德州扑克,奥马哈游戏中,公共的5张牌,出现的牌型概率,实际上,这个测试结果,适用于任何发的2张,3张,4张,5张牌

  • 运行环境:vscode/ubuntu,32G内存
  • 运行条件:
  • 开启50个goroutine,每个goroutine循环10000次,也就是一共运行50万次
  • 每循环1次就是,牌靴中有1副牌的游戏流程[去掉大小鬼,每副牌52张]
  • 运行时间:2023-07-18 20:16:37
  • 运行时长:2:04(2分4秒)
  • 运行结果:

程序输出的 svg图片

二 运行结果说明

个人觉得比较有用的,就是,5张公共牌中,有49.25%会出现至少一对,也就是,flop后,如果手上有top set的话,其实all in打光应该也是 正ev的。

希望对看到的人有一点帮助。

--the end

德州扑克Texas Holdem中的底池赔率pot odds

一 底池赔率(pot odds)是个很基本的概念

在德州扑克,奥马哈中使用的比较多,其他需要二次下注的游戏中,比如终极德州扑克,应该也可以应用得到。

就我个人接触到的资料来说,很多资料,对于这个底池赔率的解释,都不太容易理解。
所以,再来描述一下。

二 底池赔率是用于更好地描述游戏策略而产生的概念,特别是,当我们需要长期执行正ev(expected value )行动的时候,提供的衡量指标之一。

底池赔率就是筹码的比率,我们需要赢下当前底池,需要投入的筹码,和我们最终将赢得的筹码之间的比值。

场景举例:比如当前底池中数量是2,river圈,玩家a下注1,此时底池筹码是3,我们是否需要call,就应该要考虑

2.1 我们需要投入的筹码是1
2.2 我们最终赢得的筹码是4( 3+1【1是river圈我们自己投入的筹码】)

换算成百分比就是 1/4 = 25%
可以参看 https://www.masterclass.com/articles/poker-101-what-are-poker-odds
Pot odds are the ratio between the size of the pot and the size of the bet.

三 胜率和底池赔率的关系

这里说的胜率,通常是牌型比较胜利次数的百分比,是一个估算值
底池赔率,是筹码之间的比值,是确定的值

胜率和底池赔率之间满足什么样的关系,我们的行动才是可以获利的呢?

接着上面的举例,底池里筹码现在是3,此时我们手里的筹码,看做为一个固定的数字,比如y,如果我们需要跟注call,则必须投入1个筹码【此时我们手头的筹码是y-1】。

假设,我们的胜率是x%,也就是,在100次跟注中,我们有x次可以赢得底池,有100-x次输掉底池。

3.1 x次我们赢,筹码的增量 是 3x,这里需要特别理解一下我们手里的筹码的增量,我觉得这是更好理解 底池赔率和胜率关系的关键。

赢一次,我们的筹码增量是3,而不是4,为什么呢?最后投入的那个1【river圈下注1个筹码后,我们手头的筹码是y-1,赢了底池4之后,我们手头的筹码是y-1+4=y+3】,不算做增量,因为我们投入1个筹码进底池之后,又赢回来这1个筹码。
赢两次,那么筹码的增量就是2x,依次类推。

3.2 100-x次,我们输掉底池,每次输掉1个筹码,我们输掉的筹码的增量,是 -(100-x),负数

3.3 如果我们想要找到这个刚好不输也不赢的临界点,100次投注最后的结果增量为0,也就是 3x + 【-(100-x)】= 0,4x=100,x=25.

也就是说,假设相同的场景下,我们投注100次,有25次赢,有75次输,则,最后 手头的筹码数量 还是 y,我们不输也不赢。

这个25,和底池赔率值相同,是巧合吗?当然不是。我们就是通过筹码的比例来计算,刚好ev值为0的情况时候的胜率。实际上,就是底池赔率。

如果我们在100次里,有26次赢,而只有74次输,我们的获利计算:
26*3 - 74 = 4

用筹码的增量来理解 胜率,我个人觉得更好理解。因为筹码的增量正好是说明了胜负。
胜率为25%的时候,是不输不赢,所以,当胜率大于25%的时候,我们的投注1个筹码的行为,就是正的期望值ev(expected value ),可以获利

胜率大于底池赔率的时候,我们通常就是获利,相反则亏损。

--the end

终极德州扑克Ultimate Texas Holdem,7张牌出现一对的概率

在youtube上常看一个华人朋友在美国赌场里玩这个终极德州扑克游戏,看的多了,总觉得有一个场景是值得深思一下的,所以,才就确认一下概率。

这是 youtube 用户 杨洋 https://www.youtube.com/@payme1314 的赌场视频。有兴趣的朋友可以看看。

一 开发的go程序,用于计算终极德州扑克,在最后一轮river圈下注play的时候,如果自己没有一对的情况下,是否应该下注

  • 运行环境:vscode/ubuntu,32G内存
  • 运行条件:
  • 开启50个goroutine,每个goroutine循环10000次,也就是一共运行50万次
  • 每循环1次就是,牌靴中有1副牌的游戏流程[去掉大小鬼,每副牌52张]
  • 运行时间:2023-07-18 20:35:31
  • 运行时长:3:19(3分19秒)
  • 运行结果:
msg="3,total_item_cnt:500000,牌张数:2, 牌型:至少一对,个数:29666,百分比:5.93"
msg="3,total_item_cnt:500000,牌张数:3, 牌型:至少一对,个数:86543,百分比:17.31"
msg="3,total_item_cnt:500000,牌张数:4, 牌型:至少一对,个数:161674,百分比:32.33"
msg="3,total_item_cnt:500000,牌张数:5, 牌型:至少一对,个数:246208,百分比:49.24"
msg="3,total_item_cnt:500000,牌张数:6, 牌型:至少一对,个数:327822,百分比:65.56"
msg="3,total_item_cnt:500000,牌张数:7, 牌型:至少一对,个数:394692,百分比:78.94"

二 运行结果解释

终极德州扑克是闲家和庄家对赌【和德州扑克 Texas Holdem不同,德州扑克是闲家之间的对赌】,和庄家比大小。庄家2张牌,闲家2张牌,5张公共牌。直到闲家三次下注结束,庄家才会亮牌,在此之前,庄家为暗牌。

终极德州扑克中,闲家会有三次下注机会

2.1 看到自己的2张牌,但没有看到公共牌的时候,pre flop 圈,可以下注3倍或4倍 ante 的筹码
2.2 看到3张公共牌了之后,flop圈,可以下注2倍的 ante筹码
2.3 看到所有5张公共牌之后,river圈,可以下注1倍的ante筹码,或者fold 放弃

这里要讨论的,就是 这个 river圈,第三次下注。

在闲家没有拿到任何对子,也没有比对子更大的牌型的情况下,是否应该下注1倍的ante筹码到play区,和庄家比大小。

根据程序运行10万次的结果,如果自己没有对子,庄家手里的2张牌和5张公共牌,组成对子的概率为78%。

在river圈,还没有下注play的时候,闲家在ante和blind位都会有1倍的筹码。

假设我们下注1倍的ante筹码在play位,
庄家2张牌+5张公共牌组合的最大牌型
闲家2张牌+5张公共牌组合的最大牌型 进行比较

来计算一下底池赔率,我们需要拿1倍的ante筹码下注到play区域,去赢取 play+ante+blind【如果在我们预设的场景下,庄家输了,说明庄家一定是 not qualify,在庄家not qualify的时候,不赔付ante区】,用1倍的筹码去赢取3倍的筹码,底池赔率就是25%

如果胜率大于底池赔率,则长期是 正ev
如果胜率小于底池赔率,则长期是 负ev

所以,闲家需要至少25%的胜率,才可以下注play区。现在来看,闲家胜率最大也就22%,所以,根据理论,
在终极德州扑克中,在river圈,当闲家没有拿到一对的时候,不应该选择下注,而应该fold。

P.S. 如果游戏规则为,没有这个qualify的限制,只要庄家输了,都会赔付ante区域的筹码,那么,闲家在river圈,任何情况下下注play区域都是正ev的。

三 网络上找到的规则链接,原地址

https://www.onlineunitedstatescasinos.com/games/casino-texas-holdem-poker/ultimate-texas-holdem/

--the end

Blackjack-21点 庄家闲家胜率统计

一 最近开发的go程序,用于计算21点游戏,庄家和闲家的胜率统计

  • 运行环境:vscode/ubuntu,32G内存
  • 运行条件:Blackjack基础策略[6副牌,庄家17点stand,闲家可以double,可以surrender,split之后,可以继续hit],参看文档末尾的策略图
  • 开启10个goroutine,每个goroutine循环10000次,也就是一共运行50万次
  • 每循环1次就是,牌靴中有6副牌的游戏流程[去掉大小鬼,每副牌52张],剩余20张的时候,一靴牌结束
  • 最小下注10,最大下注1000,原始筹码10000
  • 投注策略为固定筹码
  • 运行时间:2023-07-18 20:59:21
  • 运行时长:9:37(9分37秒)
  • 运行结果:
sum_deal_times:27501899 运行总发牌次数
sum_hands:28193145 运行总手数
sum_bets:315190090 闲家总下注
sum_profit:-6306785.00 闲家盈利
hands_per_shoe:56.39 每靴牌包含的手数
profit_per_shoe:-12.6136 每靴牌闲家盈利
profit_per_hand:-0.2237 闲家每手盈利
sum_profit/sum_bet:-0.020009 每下注1个筹码的盈利

sum_player_lose_hands:14311078 闲家输的手数
sum_player_push_hands:2224817 闲家和的手数
sum_player_win_hands:11657250 闲家赢的手数
player_lose_hands_ratio:0.5076 闲家输的概率【庄家赢的概率,胜率】
player_push_hands_ratio:0.0789 闲家和的概率【庄家和的概率】
player_win_hands_ratio:0.4135 闲家赢的概率【庄家输的概率】

二 运行结果解释

一共运行了2819.3145万手牌

庄家的胜率是50.76%,和的概率为7.89%,闲家胜率为41.35%

方便记忆的话,可以简单记忆为庄家51%,闲家41%,和8%

三 网络上也有相关的数据可以比对,比如下面的链接

https://www.onlinegambling.com/blackjack/odds/

Odds of Winning Blackjack
The odds of winning at blackjack can be as high as 42.22%. However, this does not mean the house wins 57.78% of the time. That’s because there is a third possible result - a push. An average of 8.48% of blackjack games end in a push, leaving the probability of a loss at 49.10%.

四 golong程序使用svg输出的基本策略图

--the end