{"id":268,"date":"2006-06-10T05:47:39","date_gmt":"2006-06-10T05:47:39","guid":{"rendered":""},"modified":"2007-01-07T18:22:10","modified_gmt":"2007-01-08T02:22:10","slug":"poker-bot","status":"publish","type":"post","link":"https:\/\/znark.com\/blog\/2006\/06\/poker-bot\/","title":{"rendered":"Poker Bot"},"content":{"rendered":"<p>Today, I won a (small) tournament of poker bots against coworkers.  The bots played one-card poker.  One coworker wrote the server in [Ocaml](http:\/\/caml.inria.fr\/).  We had the tournament\/party has my coworker Aaron&#8217;s house.<\/p>\n<p>I wrote a client in [Ruby](http:\/\/www.ruby-lang.org\/) which could be used to make bots with different strategies.  I came up with four acceptable strategies.  The one that I entered and won calculated the optimum bet from the pot odds.  The best strategy, which I didn&#8217;t enter, estimated the other bot&#8217;s card from its bet.  That bot beats one counter-strategy bot which the optimum had trouble with.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, I won a (small) tournament of poker bots against coworkers. The bots played one-card poker. One coworker wrote the server in [Ocaml](http:\/\/caml.inria.fr\/). We had the tournament\/party has my coworker Aaron&#8217;s house. I wrote a client in [Ruby](http:\/\/www.ruby-lang.org\/) which could be used to make bots with different strategies. I came up with four acceptable strategies. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54],"tags":[],"class_list":["post-268","post","type-post","status-publish","format-standard","hentry","category-ruby"],"_links":{"self":[{"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/posts\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/comments?post=268"}],"version-history":[{"count":0,"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/posts\/268\/revisions"}],"wp:attachment":[{"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/categories?post=268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/znark.com\/blog\/wp-json\/wp\/v2\/tags?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}