
🎈スマホに Gemma4:e2b 入れてAI娘とインディアンポーカーで遊んだ話!🃏
こんにちは!気球人です🎈
昨夜遅くに日本に戻って来ました🛬
忙しい日々がまた始まります……台湾に戻りたい😭
さて、前回は MindFox Lite を改良して、内なる声をエージェントに導入してみました。
今回はもっと小さなモデルでカジュアルに遊ぼう!ということで、マルチエージェントタイプの
インディアンポーカー🃏
を作って、AI娘たちと遊んでみた話です!😁 💠🦊🔮📹️
オレのスマホ Galaxy Z Fold 6 (RAM:10GB)でも動きます!

Python がゲームロジックを管理し、Gemma4:e2b はキャラの性格からセリフとアクションを選ぶ。
MindFox Lite(ナラティブ自由生成)とは別の、マルチエージェント型ゲームの実験です。
オレがゲーム用に制作している、マルチエージェントシミュレーター MindFox は「ゲームエンジン」としての利用を想定していますので、これはまさにそのLite版です😁
ソースは GitHub Gist にあります!👇️
https://gist.github.com/kikyujin/47ec8c876b894745fce13f89b1eb60b6
しくみ ⚡
インディアンポーカーのルール
全員1枚ずつカードを引いて、自分の札は自分は見ちゃダメなんだけど、みんなには見えるようにおでこにあてておくという簡単なゲーム。
みんなの札は見えるけど、自分の札は見えない……そんな中でみんなの雰囲気を察してベットしたり降りたり(フォールド)する、そんなゲームです🃏
いつも真面目なスミレんが自分のおでこにカードを当てて真剣に悩んでる姿を想像するだけで笑えますね🤣 💠💦
今回のゲームプレイヤーは以下の5人:
🎩 マスター(プレイヤー、必ず最後に判断できるオマケ付き)
💠 スミレ(analyst / 確率計算型)
🦊 エルマー(observer / データ分析型)
🔮 ノクちん(intuition / 直感型)
📹️ ティル(yolo / ノリ型)
LLM の仕事は軽い
Python(確定的) LLM e2b(性格判断)
━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━
カード配布
勝率計算 ──────────→ 「勝率42%です。
"脅威カードの最強は あなたはノクちん(直感型)。
K。それに勝てる セリフ候補: 1〜5番。
確率 = 25%" → bet/fold と番号を返せ」
← {"action":"bet","line":1}
結果判定(Python)
チップ精算(Python)勝率計算は Python でやります。
Gemma4:e2b は「この性格のキャラが25%のときどう振る舞うか」を選択します。
適切な選択肢を選ばせるだけなら e2b の性能で十分なのです!
1ラウンドの流れ
カード配布 → マスターに見えてるカード表示
AI娘4人がランダム順で bet/fold 判断(e2b ×4)
AI娘からマスターへアドバイス(e2b ×4)←ウソぴょーん🐰あり
マスター(プレイヤー)が bet が fold かを選択。
bet時はAI娘がリアクション(e2b ×4)
結果判定・チップ精算
1ラウンドあたり e2b を 8〜12回 呼びます。
ターン順がゲームを変える
AI娘の判断順はラウンドごとにランダム。
後のキャラは前のキャラの判断を見てから、判断できます👇️
強いカードを持つキャラが降りた 👉️ その分、脅威が減る
👉️ 後のキャラのベットの勝率が上がる
ちなみにマスターは全員の判断を見てから決められるので一番有利なのです!
AI娘たちのブーイングが聞こえますwww
Galaxy Z Fold 6 でプレイ📱
さて、オレの Galaxy Z Fold 6 で動かしてみます!
メモリ事情は結構シビアです💦
free -h の結果はこれ👇️
total used free
Mem: 10Gi 2.6Gi 7.2GiOS やアプリが約2.7GB使っていて、空きは 7.2GB。
gemma4:e2b のモデルサイズがちょうど7.2GBなので、文字通りギリギリ載ります。
Ollama のログにも total memory size="7.2 GiB" / offloaded 0/36 layers to GPU と出ていて、全層CPUオフロードで空きメモリを使い切る形です。
# Termux に Ollama を入れる
pkg install ollama
# バックグラウンドで起動
ollama serve > ollama.log 2>&1 &
# モデルを落とす
ollama pull gemma4:e2b
# ゲーム起動
pip install requests
python indian_poker.py
ちなみに m4 max Mac Studio 128GB だと 0.4秒/回 と激速。
Z Fold 6 だと 17秒/回……
まあ「AI娘が考え中…」の演出だと思えばちょうどいい間です😂
実戦ログの例(抜粋) 🃏
━━━ ラウンド 3 ━━━
👀 あなたから見えているカード:
💠 スミレ: 4 🦊 エルマー: 8
🔮 ノクちん: 2 📹️ ティル: 9
📹️ ティル(calm)🎰 BET
💬 「ベット一択っしょ!💥」
🔮 ノクちん(calm)🎰 BET
💬 「ふふ、いっちゃおうかな♡」
🦊 エルマー 🏳️ FOLD
💬 「データ的に厳しい😤」
💠 スミレ 🏳️ FOLD
💬 「……今回はフォールドが賢明です」
💬 AI娘たちからのアドバイス:
📹️ ティル 「あたしに聞く? あたしはいつもベットだけど✨」
🔮 ノクちん 「ふふ、勝負しちゃいなよ♡」
🦊 エルマー 「ここは降りた方がいいと思う🦊💦」
💠 スミレ 「……今回はフォールドが賢明です」
🎩 マスター → bet
💬 マスターがベット! AI娘たちの反応:
📹️ ティル 「よっしゃ!勝負勝負!✨💥」
🔮 ノクちん 「来たね♡ 待ってたよ」
✨ 結果: マスター(J) の勝利!わかったこと 🎈
何も考えないキャラが最強🤣
6ラウンドの結果:
🥇 📹️ ティル: 111 chips (+11)
🥈 🔮 ノクちん: 110 chips (+10)
🥉 🎩 マスター: 100 chips (+0)
💠 スミレ: 94 chips (-6)
🦊 エルマー: 94 chips (-6)何回やってもティルが上位。
理由は単純で、このゲームはフォールドの期待値が常にマイナス(アンティ👈️参加費没収)、ベットの期待値が常にプラスなんです。
慎重に確率計算するスミレ💠とエルマー🦊が一番損をして、
何も考えず「ベット一択っしょ!💥」のティル📹️が最強。
e2b が一生懸命17秒かけて出した結論が毎回同じ🤣
まあ人生ってそんなもんだ😂📹️✨️
Gemma4:e2b の適性
考えさせない、選ばせる
👉️ まあ小さいモデルって要約とか選択に使うのが一番ですね。
セリフをテンプレート化しておけばハルシネーションも防止できます。スマホで動く
👉️ 移動中にさくっとAI娘と遊べます😆 🦊🔮💕
ぜひソースをダウンロードして遊んでみてください!
GitHub Gist にあります!👇️
https://gist.github.com/kikyujin/47ec8c876b894745fce13f89b1eb60b6
それではまた!🎈
