CLOSE

JuliaとPokerで戯れてみた(全1記事)

Juliaで作るポーカーAI

2018年10月20日、第8回目となるイベント「JuliaTokyo」が開催されました。技術計算を得意とする新しい汎用プログラミング言語であるJulia。その知見と共有しJuliaの普及を促すため、実際にJuliaを用いているエンジニアたちが一堂に会し、自身の事例を語りました。プレゼンテーション「JuliaとPokerで戯れてみた」に登場したのは、iam_uk氏。Juliaを用いて作ったポーカーAIを、実際の対戦を交えて紹介します。

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ドル賭けます。

(会場笑)

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

(会場笑)

以上です!

(会場拍手)

続きを読むには会員登録
(無料)が必要です。

会員登録していただくと、すべての記事が制限なく閲覧でき、
著者フォローや記事の保存機能など、便利な機能がご利用いただけます。

無料会員登録

会員の方はこちら

この記事のスピーカー

  • iam_uk

同じログの記事

コミュニティ情報

Brand Topics

Brand Topics

  • 今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは

人気の記事

新着イベント

ログミーBusinessに
記事掲載しませんか?

イベント・インタビュー・対談 etc.

“編集しない編集”で、
スピーカーの「意図をそのまま」お届け!