Juliaで作るポーカーAI

JuliaとPokerで戯れてみた

JuliaTokyo #8
に開催

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

(会場笑)

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

(会場笑)

以上です!

(会場拍手)

Published at

JuliaTokyo

プログラミング言語「Julia」の集い

スピーカーをフォロー

関連タグ

人気ログ

人気スピーカー

人気コミュニティ

ピックアップ

編集部のオススメ

ログミーTechをフォローして最新情報をチェックしよう!

人気ログ

人気スピーカー

人気コミュニティ

ピックアップ

編集部のオススメ

そのイベント、ログしないなんて
もったいない!
苦労して企画や集客したイベント「その場限り」になっていませんか?