最中限

最中限API version 2

一昨日くらいにプログラミングシンポジウムでversion 1について発表をして、早速いろいろな問題点が見つかったので修正版のversion 2を作りました。 http://www.nishiohirokazu.org/files/prosym_2009s.pdf あと、以前あった最中限MLは流量がないと消えてし…

強さの定量のためのマッチングについて

問題を簡単にするために、最中限は3人ゲームだが、2者間の勝負に分解して考える。つまりA: +2, B: -1, C: -1のゲームは「A:+1, B:-1」「A:+1, C:-1」「B:0, C:0」の3つの試合の合成だと考える。これによって2人ゲームなどのレーティングと同じ考え方ができる…

ひさしぶり

気がついたら での議論を参考に少し書き直してみた。 class Cards{ public: Cards(vector<int> xs): values(xs),len(xs.size()){} inline int pop(size_t i){ len--; swap(values[i], values[len]); return values[len]; } inline void revert(size_t i){ swap(va</int>…

気がついたら

しばらく最中限をいじれないでいるうちにすごく高速化されていた。 http://shinh.skr.jp/m/?date=20081028 http://homepage1.nifty.com/herumi/diary/0810.html#30「vectorを使ってeraseとかしてるのが遅い」って突っ込まれるのはわかっていたので、それを直…

Haskellで最終ラウンド読み切りプログラムを書いた

C++で書いたやつと結果を照合しよう。http://coderepos.org/share/browser/lang/python/saichugen/haskell/saichugen.hs?rev=22097 - $ time runghc saichugen.hs [237046,205614,261762,230880,189356] real 6m3.271s user 5m52.644s sys 0m3.304sおそっ。C…

さっそくサードパーティAIが登場

9位にid:yowaさん作のボットが! 早いところ人間同士やボット同士の対戦が出来るようにしないと。。http://yowaken.dip.jp/tdiary/20081022.html#p02 「序盤ラウンドの第1ターンでは、手札に集中してるカードを優先的に出す」 生身の僕も全く同じ戦略ですね…

1ラウンドに得られる点数

ランダムな3人が第1ラウンドをプレイしたときに、そのラウンドのスコアの中央値がいくらになるか、10万回試行してみた。0から13までの値を取りうるので14個の数のリストになる。[11144, 836, 3184, 5577, 7927, 10292, 11847, 12491, 11952, 9947, 7439, 457…

最中限オンラインに解説を付けた

「このまま維持すれば勝てる」とか「勝つためには何点取らないと」とか表示するようにした。 一応Playerの属性でON/OFFできるようになっているけど、まだ属性を変更するためのフォームはない。 ゲームスコアを元にアドバイスをする機能を付けて、さてラウン…

かぶせる戦術の例

7があったんだから7を出すべきだった。 なぜなら、6を出したこの状況ではPlayer3が7以上を出すと点を取れないのに対し、7を出してかぶせておけばPlayer3が何を出しても7点取れるし、Player2がターン3を取ってもやっぱり7点取れるから。自分がターンを取らな…

どうすれば強くなるか

最中限オンライン(Saichugen Online)でどうすれば勝てるようになるのかについて書こうと思ったのだけど、まず勘違いをしてほしくないのは「こうすれば勝てる」という戦略はまだ明確にはわかっていないということ。出来てから日が浅いゲームだからね。だから…

最中限オンライン2.0 妄想設計

Google App Engineはやめる ソケット使えないから 人間が操作するクライアントはFlash AIRとかPyGameも検討したけど、インストールレスにしたい プロトコルはXMLベース クライアントがFlashだったらそれが楽 C++とかでAI書く人もlibxmlくらい使えばいいんじ…

運でどれくらい勝てるのか

最近の最中限オンラインのハイスコアによって「最中限がじゃんけんのような運だけのゲームではないことが証明された」と思っていたのだけど、確率論に詳しくない人はピンと来ないんだと気づいたので、60回勝負して36点っていう得点がどれくらい「運ではない…

日記

ランキングがいつの間にか4位になっていたので2位に戻しておいた。 その最後のプレイ。 http://saichugen-online.appspot.com/game/599/人生、あきらめなければいいこともあるさ、と思わせる一戦だった。24点になった時点で勝ち目がないと思ったけど運がよく…

ゲームサーバのAI

いまランダムにプレイするAIしかいないのだけど、これの成績がプラスになっている。つまり、人間は「こうなってくれたらうれしいな」という「都合のいいシチュエーション」が起こる確率を過大評価してプレイしている。典型的なのが「このターンは絶対取りた…

「最中限オンライン」をリリースしました

三人用トランプゲームの「最中限」をウェブ上でプレイできるサービスです。まだランキングはないですが、プレイ履歴とスコアは記録されます。http://saichugen-online.appspot.com/昨日の段階で遊べる程度にはなっていたのですけど、まあ日本人しか使わない…

ゲームサーバ作り日記

飽きてきた(ぉ)というのも、いまだにGoogle App Engineの認証が終わらず、サーバに公開できるめどが立っていないから。Google App EngineのBooleanPropertyとかIntegerPropertyとか、defaultを指定しないとNoneになるんだな。Falseや0になると思ってた。 - p…

ゲームサーバ作り日記

create_roomみたいな粒度の細かい命令も将来的にBOT対戦とかやるには必要だけどとりあえず今週末のうちに人間がプレイを出来るようにすることを考えて最短パスを通りたい。今日は東急ハンズに行くし(ぉ start_single_game(/player_id/password) create_room…

ゲームサーバ作り日記2

いけない、遊んでいたら日付が変わってしまった。とりあえず見栄えを良くしてやる気を出すか、とりあえず見栄えはさておきゲームが出来るようにしてやる気を出すかどっちがいいか(ぉとりあえずテンプレートだな。 - TemplateSyntaxError at /game/22/ 'saich…

週末にサーバ作るかな

作って公開することに意義があるのでずるずる先延ばしにしてないでこん週末だけで完成させられるくらいにやることを削る。 人間がGUIで遊べるようなサーバを作る Twistedで接続方法を抽象化してソケットつなぎっぱなしでのアクセスでも人間がブラウザでHTTP…

Google App Engine日記

とりあえずGoogle App Engine詳解:さっそくHello Worldから作ってみた - builder by ZDNet Japanを読んだ。DjangoをGoogle App Engineで動かす | スパムとかとGoogle App EngineでDjango[HW]経由でDjango on Google App Engine in 13 simple stepsとを読ん…

並列

HogeBOFに来ている。最中限の読み切りにVerilogで計算すると並列にががっと出来て速くなるんじゃないかと今まで思っていたけど、Erlangではどう?とかErlangの計算はけっして速くないので実はHaskellが並列にめちゃくちゃ強いよ、とかそういう話を聞いた。ふ…

読み切りコスト

id:Voluntasに出された宿題。最中限を読み切るのにかかるコストを計算する。最終ラウンド、自分の手札は5枚、そしてまだオープンされていないカードが11枚ある。自分の手の出し方が 5P3 通り。自分以外の手の出し方が 11P6通り。 >>> def p(n, m): ... resul…

最中限のルール解説

最中限は3人でプレイするトランプゲームです。http://www.nishiohirokazu.org/saichugen/saichugen_photo.pdfフライング日記でルール解説なしにプレイ記録だけ載せてみたのは、本当は情報科学若手の会での発表後すぐ載せるつもりだったのでした。だけど発表…

フライング日記

ルールは後で書く。土曜日の発表が終わったらPDFを公開する。最中限はトランプを使う3人ゲーム。中央値だと勝てる。1人で遊ぶためにPythonで133行ほど書いたコードがCodeReposにコミットしてある。まず17枚配る。 ****BEGIN GAME **BEGIN ROUND 0 YOUR HAND:…