bupticybee / TexasSolver

🚀 A very efficient Texas Holdem GTO solver :spades::hearts::clubs::diamonds:
https://bupticybee.github.io/texassolver_page
GNU Affero General Public License v3.0
1.71k stars 304 forks source link

代码小白求问,生成的json文件怎么变得可读。。 #50

Closed yuwenyang0617 closed 2 years ago

yuwenyang0617 commented 3 years ago

一般在线的json格式排版器会爆炸。。需要自己写脚本嘛

bupticybee commented 3 years ago

哈哈,你有俩选择,一是用firefox的json浏览器,二是自己撸一个

当然,你还可以选择等我下一个UI版本的更新,不过那个就不知道是什么时候了,我还在摸鱼

yuwenyang0617 commented 3 years ago

哈哈,你有俩选择,一是用firefox的json浏览器,二是自己撸一个

当然,你还可以选择等我下一个UI版本的更新,不过那个就不知道是什么时候了,我还在摸鱼

哈哈,感谢你~已用firefox解决。但是遇到了新的问题,从第二的childrens开始,便没有了call和fold的解法,只会存在raise或者allin两种方案的后续解法。

比如:当oop玩家在flop进行了check raise后。solver只会展示ip玩家的reraise或者allin,并不会展示fold或者call,连fold和call的概率都没有。下面是我使用的测试tree文件。

commandline_sample_input.txt

bupticybee commented 3 years ago

哈哈,你有俩选择,一是用firefox的json浏览器,二是自己撸一个 当然,你还可以选择等我下一个UI版本的更新,不过那个就不知道是什么时候了,我还在摸鱼

哈哈,感谢你~已用firefox解决。但是遇到了新的问题,从第二的childrens开始,便没有了call和fold的解法,只会存在raise或者allin两种方案的后续解法。

比如:当oop玩家在flop进行了check raise后。solver只会展示ip玩家的reraise或者allin,并不会展示fold或者call,连fold和call的概率都没有。下面是我使用的测试tree文件。

commandline_sample_input.txt

好的,我有时间会检查这个问题,不过大致我和pio对过最优策略,至少前几步是差不多的,你要是不用太担心

bupticybee commented 3 years ago

我已经·检查了这个问题,首先,你提供的txt文件是river的:

set_board Qc,9c,3h,6h,4c

所以我不确定你说的flop情况是怎样

然后,在你提供的river里,我找到了类似你描述的情况:

image

我猜测你说的是这里图中画红线处没有flod和allin,但是这里的这个情况不是一个bug,而是一个feature,因为如果你在这个时候选择fold那后面就没有任何决策的必要了,所以后续不会有children

然后我并没有找到任何一个节点没有allin的情况

如果你仍然认为程序有bug,欢迎提供更多信息,截图或者其他形式。

yuwenyang0617 commented 3 years ago

我已经·检查了这个问题,首先,你提供的txt文件是river的:

set_board Qc,9c,3h,6h,4c

所以我不确定你说的flop情况是怎样

然后,在你提供的river里,我找到了类似你描述的情况:

image

我猜测你说的是这里图中画红线处没有flod和allin,但是这里的这个情况不是一个bug,而是一个feature,因为如果你在这个时候选择fold那后面就没有任何决策的必要了,所以后续不会有children

然后我并没有找到任何一个节点没有allin的情况

如果你仍然认为程序有bug,欢迎提供更多信息,截图或者其他形式。

非常感谢你的耐心讲解,可能是我没有使用solver的经验,可能理解有误,所以想请教一些基本问题

  1. 在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?所有的stratergy是当第五张牌打开后动作吗?(我不这样认为,我认为是从flop开始,行动到river,否则是怎么看到完整的行动路线呢?
  2. deal_number & dealcards是什么意思呢 image

如果[1]的问题果真是按river开始后行动的话,我可以理解你的上述答复

JohnnyLeung996 commented 3 years ago

board都发5张牌了,肯定是从河牌开始,要从翻牌开始就只输入3张牌 ----- 原始邮件 ----- 发件人:yuwenyang0617 @.> 收件人:bupticybee/TexasSolver @.> 抄送人:Subscribed @.***> 主题:Re:_[bupticybee/TexasSolver]代码小白求问,生成的json文件怎么变得可读。。(#50) 日期:2021年09月13日 12点28分

我已经·检查了这个问题,首先,你提供的txt文件是river的: set_board Qc,9c,3h,6h,4c 所以我不确定你说的flop情况是怎样 然后,在你提供的river里,我找到了类似你描述的情况:

我猜测你说的是这里图中画红线处没有flod和allin,但是这里的这个情况不是一个bug,而是一个feature,因为如果你在这个时候选择fold那后面就没有任何决策的必要了,所以后续不会有children 然后我并没有找到任何一个节点没有allin的情况 如果你仍然认为程序有bug,欢迎提供更多信息,截图或者其他形式。

非常感谢你的耐心讲解,可能是我没有使用solver的经验,可能理解有误,所以想请教一些基本问题

在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?所有的stratergy是当第五张牌打开后动作吗?(我不这样认为,我认为是从flop开始,行动到river,否则是怎么看到完整的行动路线呢?)

2.deal_number & dealcards是什么意思呢

如果[1]的问题果真是按river开始后行动的话,我可以理解你的上述答复

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

bupticybee commented 3 years ago

在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?

  1. "在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?" 是的,solver会根据board自动识别在哪一轮,3张牌是flop,4张牌是turn,5张是river
  2. “完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。
  3. deal_number不用管,dealcards指在发公共牌具体是那张,因为要分情况讨论,所以是一个数组
yuwenyang0617 commented 3 years ago

在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?

  1. "在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?" 是的,solver会根据board自动识别在哪一轮,3张牌是flop,4张牌是turn,5张是river
  2. “完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。
  3. deal_number不用管,dealcards指在发公共牌具体是那张,因为要分情况讨论,所以是一个数组

有关tree的问题明白了,非常感谢你的解释。但是延伸了另一个问题

“完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。

image 这张图中,我重新把tree文件设置为Qc,9c,3h,那么我认为dealcards是不是[2]回答中的新路径呢(turn为5d的新路径)?但是在截图中没办法向下执行了,river的路径如何查看或设置呢?

bupticybee commented 2 years ago

在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?

  1. "在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?" 是的,solver会根据board自动识别在哪一轮,3张牌是flop,4张牌是turn,5张是river
  2. “完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。
  3. deal_number不用管,dealcards指在发公共牌具体是那张,因为要分情况讨论,所以是一个数组

有关tree的问题明白了,非常感谢你的解释。但是延伸了另一个问题

“完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。

image 这张图中,我重新把tree文件设置为Qc,9c,3h,那么我认为dealcards是不是[2]回答中的新路径呢(turn为5d的新路径)?但是在截图中没办法向下执行了,river的路径如何查看或设置呢?

“那么我认为dealcards是不是[2]回答中的新路径呢(turn为5d的新路径)?” 是的

“但是在截图中没办法向下执行了,river的路径如何查看或设置呢?” 你观察的很仔细,river默认是计算但是不保存的,你的输入文件中有一行:

set_dump_rounds 2

这代表只存储flop和turn的结果到json文件,river是不存的,如果你想要把river的也存下来,需要改成:

set_dump_rounds 3

因为有时候树太大,存到river的策略文件会过于庞大,甚至有可能在保存中把内存占满,所以默认只存到turn

yuwenyang0617 commented 2 years ago

在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?

  1. "在tree的建立过程中board如果输入了5张牌,solver意味着是从river开始吗?" 是的,solver会根据board自动识别在哪一轮,3张牌是flop,4张牌是turn,5张是river
  2. “完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。
  3. deal_number不用管,dealcards指在发公共牌具体是那张,因为要分情况讨论,所以是一个数组

有关tree的问题明白了,非常感谢你的解释。但是延伸了另一个问题

“完整的行动路线” 并不准确,solver从原理上必须考虑所有发牌情况,否则无法达到纳什均衡,所以你如果想知道比如在flop是 Qc,9c,3h的情况下,后续两张公共牌分别是6h,4c的这样怎么打,那么你应该是如 set_board Qc,9c,3h ,然后在结果文件里找相应的6h,4c的路径,而不是直接将公共牌全部输入。

image 这张图中,我重新把tree文件设置为Qc,9c,3h,那么我认为dealcards是不是[2]回答中的新路径呢(turn为5d的新路径)?但是在截图中没办法向下执行了,river的路径如何查看或设置呢?

“那么我认为dealcards是不是[2]回答中的新路径呢(turn为5d的新路径)?” 是的

“但是在截图中没办法向下执行了,river的路径如何查看或设置呢?” 你观察的很仔细,river默认是计算但是不保存的,你的输入文件中有一行:

set_dump_rounds 2

这代表只存储flop和turn的结果到json文件,river是不存的,如果你想要把river的也存下来,需要改成:

set_dump_rounds 3

因为有时候树太大,存到river的策略文件会过于庞大,甚至有可能在保存中把内存占满,所以默认只存到turn

Orz,看了下确实如此,变为rounds 3后,json文件有5G大小,悲伤:(

再次感谢你的耐心解答,gl and god bless you :P

bupticybee commented 2 years ago

Closing because the issue has been solved.