JuliaとPokerで戯れてみた

iam_uk氏(以下、iam_uk):「JuliaとPokerで戯れてみた」というタイトルで発表させていただきます。私植木と申しまして、Julia Tokyo3回目から参加させていただいております。

ただJuliaは大学を卒業してからほとんど書いてなくて、ぜんぜんガチ勢じゃないんですけど。今は仕事でWeb広告周りのことをやっています。Julia1.0が出たということでLTしなきゃと、来ました。

Juliaコミュニティへのささやかな貢献としてましては、職場で「Julia使ってる?」とか、新入社員が入ってきたら「Juliaって知ってる?」とか言ってるくらいなんですけど。一応普及活動はしているという感じです。

今回は、最近AlphaGoが囲碁で世界チャンピオンを倒したとか、いろいろあったと思います。それに近い話題でポーカーのプロにAIが勝ったという論文がScienceに出ていまして。確かカーネギーメロン大学だったと思うんですけれども。

じゃあこれってJuliaを普及させるためにいけるんじゃないかということで、「JuliaでPoker AIを作ろう」というふうに思いました。

今回のルール

ただ普通に作ってしまうと、そもそもゲームを作るのは大変なので(笑)。3枚のカードのポーカーを考えまして、役としてはブタのハイカードとワンペアとスリーカードだけです。

Juliaとの1対1で、最初に1枚ずつ配られて配られたあとに最後に2枚共通カードとしてボードに出てきて勝負するという流れになってます。

BTNとBBというポジションがあるんですが、それは交互に変わりまして。BTNのプレーヤーのみベットすることができるというゲームになってます。BBプレーヤーに関しては降りるかコールするかしかできないという流れで作りました。

イメージとしてはこういう感じなんですけれども。

ディーラーがJuliaでプレーヤーもJulia。そこができていると完全に勝ち目ないんじゃないかという感じなんですけど。

(会場笑)

しかもプレーヤーのJuliaに悪意があると、私のハンドがメモリー上に展開されてしまっているのでそこも見られてしまうんですけど。

(会場笑)

実際にやってみた

ディーラーと書かれているのがBTNというポジションで、親みたいなものなんですけれども。まずカードが配られる前に1ドル、2ドルを出します。

Juliaがレイズしてきたりして、4ドル。

ジャックはそれなりに強いからコールしようという感じでコールして。

2枚出てきて、ポットが8ドルになっていて。最後のベッティングラウンドでJuliaが10(ドル)とか言ってきて。う~ん、どうしようかなみたいな。

今から実際にやってみたいと思います。ここからはただ対戦します。

(実際にゲームをやりながら実況する)

まずは8が配られたのでとりあえずコールして。

15ドル、15ドルで始まっているんですけれども。キングとクイーンが来て。とりあえず1ドル賭けとこう。Juliaは9だったのでブタでも負けてると。

次のターンに入って。

9なのでコールして、う~ん、勝てそうだからコールして。あ~またJulia……。

(会場笑)

ちょっと時間があれなので。500ドル賭けます。

(会場笑)

あ~また。負けると「負けたので寄付してください」みたいなのが出てくるという(笑)。

(会場笑)

以上です!

(会場拍手)