2013年9月7日土曜日

仮面ライダーブレイクジョーカーのデッキについて考えてみた

最近、子どもに遊ばせるために「仮面ライダーBJ(ブレイクジョーカー)」をやってます。

4歳の子どもは「仮面ライダーのゲーム」というだけでうれしいので、まあ、私がレベルを上げておいて、適当に勝てるところで子どもに遊ばせるわけです。

でも、どうせやるならちょっと真剣にやろうかと思い、デッキについて考えてみました。

あ、この話が参考になったかなと思いましたら、よかったらこちらのフレンド ID を登録してギフトをゲットしてください。

フレンドID: 018 734 727

そもそもこのゲーム、12枚のカードで自由に(といっても同じカードは3枚まで)デッキを組み、そのカードでいわゆるブラックジャックをし、勝った方が攻撃できるという仕組み。つまりはそもそもブラックジャックに勝たないと攻撃もできないわけで、攻撃力とかHPとか以前にブラックジャックに強いデッキを組まなければならないのかなと思うわけです。

さて、「カードの種類は A~7」「A は 1 または 11 でカウント(ブラックジャックと同じ)」「同じ数のカードはデッキの中に 3 枚まで」 という条件で 12 枚を選択し、ブラックジャックに強いデッキを考えます。

この条件で数字の組み合わせは 1918 通り。(計算あってるかな…?)

意外と少ない。それなら全組み合わせを計算しちゃいましょう。

でも、相手の手札まで考えると組み合わせが爆発してしまうので、相手のことは考えずに、「自分の手札が18未満の場合はカードを引く(HIT)」「18以上になったらストップ(HOLD)」ということにして、21 になる確率が高い組み合わせと、18~21 になる確率が高い組み合わせを調べます。
(18 は適当。このくらいだと強いかな? って数字を独断で決定)

プログラム組んで…、デッキの組み合わせを計算させて…、各デッキで 10万回ずつカードを引かせて…

というわけで、いきなり結果です。

21 になる確率が高い組み合わせ(上位10位まで)

デッキ21 (%)18~21 (%)
A A A 4 4 4 5 5 5 6 6 630.484.5
A A 4 4 4 5 5 5 6 6 6 725.981.2
A A A 4 4 4 5 5 6 6 6 725.482.3
A A A 2 4 4 4 5 5 6 6 625.183.2
A A A 4 4 4 5 5 5 6 6 725.183.5
A A 2 4 4 4 5 5 5 6 6 625.083.2
A A A 4 4 5 5 5 6 6 6 724.379.9
A A A 2 4 4 4 5 5 5 6 624.183.2
A A A 3 4 4 4 5 5 6 6 623.785.9
A A A 3 4 4 5 5 5 6 6 623.684.5


18~21 になる確率が高い組み合わせ(上位10位まで)

デッキ21 (%)18~21 (%)
A A A 2 5 5 6 6 6 7 7 710.288.1
A A 3 4 4 4 5 5 5 6 6 623.487.0
A A A 3 4 4 4 5 5 5 6 622.486.8
A A 3 3 4 4 4 5 5 5 6 618.286.8
A A A 5 5 5 6 6 6 7 7 79.286.5
A A A 2 5 5 5 6 6 7 7 711.886.3
A A 3 3 4 4 4 5 5 6 6 619.686.2
A 3 3 4 4 4 5 5 5 6 6 619.185.9
A A A 3 4 4 4 5 5 6 6 623.785.9
A A A 3 4 4 4 5 5 5 6 719.485.8

21 になる確率はダントツで 「A A A 4 4 4 5 5 5 6 6 6」 が高い。このデッキは 18~21 になる確率も 84.5 % と 10位には入っていないものの、全体で 44/1918 位とかなり上位。

反対に 18~21 になる確率トップの 「A A A 2 5 5 6 6 6 7 7 7」 は 21 になる確率が低すぎる。こっちから採用するなら 2位の 「A A 3 4 4 4 5 5 5 6 6 6」 かな。あ、さっきのデッキの「A」が 1 枚 「3」 に変わっただけか。

まあ、あとは好みのカードとかの問題もあると思いますが、ブラックジャックで勝てることを主体とするなら…

「A A A 4 4 4 5 5 5 6 6 6」「A A 3 4 4 4 5 5 5 6 6 6」 

あたりのデッキが有効なのかななどと思います。

繰り返しますが、私のフレンド ID は 018 734 727 ですので、よかったら登録お願いします。

[追記]
サポーターも含めた 13枚のカードでの確率も計算してみました。こちらの記事をご覧ください。



2013年8月12日月曜日

OleCreatePropertyFrame() を 64bit で使いたい

っていう必要がありまして、しばらく調べていました。

普通ですと、olepro32.dll を取り込んで使うわけですが、これはどうやら x64 をターゲットにすると、「そんな DLL ないよ?」というエラーになる。

調べていると、同じ症状が出て困っている方も多数。で、解決策としてあがっているのは、「ターゲットを x86 にすればいいよ」

って、そんなことはわかってるんですよ。ただ、他の DLL とかシステム全体とかのからみもあるんで、ターゲットは x64 のままにしとかなければならないんです。そんな場合の解決策が見つからない…

で、さらに調べていたら、oleaut32.dll っている DLL の中にも同名の関数 OleCreatePropertyFrame() があることがわかりまして、とりあえず使ってみました。

おっ、これは x64 でも動くじゃないですか。しかも、引数とか olepro32.dll のやつと同じ。検索するとよく見つかる、olepro32.dll の OleCreatePropertyFrame() を使う方法をそのままコピペって、olepro32.dll の部分を oleaut32.dll に書き換えるだけで使えた。

細かい違いとかがあるのかどうかはこれから調べるとして、とりあえず x64 でも OleCreatePropertyFrame() が動いたよ。っていうお話でした。

2013年7月2日火曜日

タブレット

アイリバー ITQ701 をポチっとしてみた。

届いたらここに色々書いてみる予定。

2013年6月21日金曜日

netwalker に有線LANアダプタをつなげてみた

そういえば、思い立って手持ちの netwalker にサンワサプライの有線LANアダプタ USB-HLA306BK をつなげてみた。

結果はダメ。

USBハブとしては使えるけど、LANアダプタとしては認識せず。

結構、LANアダプタは何も考えずにつなげただけで接続できたという記載が多かったんだけど、これはダメらしい。

残念。

どうにかして使えないか考えてみよう。

ちなみに Linux Mint 14 の居間PCに接続してみると、そちらは普通に認識OK。まあ、こっちにつなげて使うことはないだろうけどな。

2013年6月12日水曜日

LinuxでのTwitterクライアントはどうしよう

と思ってたんですが、元々 Chrome 派で、かつ、TweetDeck 派だったので、Chromium + TweetDeck でいいような気がしてきた。

chromium の Chrome Web Store から TweetDeck を選んでインストール。

Windows 版との違和感なく使えてる。

しばらくこれでよしとする。

2013年6月11日火曜日

GraphicsMagickのconvertで輝度を変更してみたけど

何かコマンドラインで簡単に画像を加工するなら、たいていの方は ImageMagick とか GraphicsMagick とかの convert を使うのではないかと思います。

私が使っているのは GraphicsMagick 1.3.16 です。

で、何をやりたいかというと、暗い画像を作りたいだけなんです。

壁紙用に画像を加工したくて、普通の画像だと明るすぎて壁紙にするとじゃまになるので、輝度を 80〜60% 程度に変更したいと。ただそれだけ。

輝度を変更するだけなら、たいていの convert の使い方を解説するサイトでは -modulate オプションを使えと書いてありました。

$ convert image.jpg -modulate 60 image_m60.jpg

こんな感じですね。

ところが、これで画像を加工したら画像が妙な感じになってしまいまして…

まず、こちらが元画像。


で、上記コマンドで編集したものがこちら。


車両部分はきちんと輝度変更されているのですが、空が…、なんだこれ?

たぶん、空部分が白飛びしていることと、-modulate が HSL 色空間に対して変更をかけることと、なんかそのあたりの関係でこのような画像になってしまうのでしょうが、そんなややこしいことは関係なく、空の部分がほぼ真っ白なら、それが 60% 程度のグレーになっている画像が欲しいだけなのです。。

輝度の変更なんて、-modulate かければいいやと思ってたので、他のやり方がわからない。これは困った。

どこ調べても「輝度の変更は -modulate」としか書いてないぞ。同じような問題に遭遇している方はいないのかな? それとも、なんかこんなことは当たり前すぎて、すごく簡単な解決方法があるのかな?

で、最終形はこちら。



さしあたり、暗い画像があればいいので、真っ黒な画像を生成し、それと元画像を -average で合成し、元画像に対して輝度 50% の画像を作って納得することにしました。

書くまでもないけど、こんな感じ?

$ convert -size 800x533 xc:black bk.jpg
$ convert image.jpg bk.jpg -average image_av.jpg

とりあえず欲しい画像ができたからいいけど、-modulate オプションはもうちょっと調査しないとよくわからないな。輝度変更するための他のオプションがないのかどうかも含めて。。

同じ問題にぶつかってる方はいないかな…。

2013年6月5日水曜日

Linuxが好きな人

Linux Mint について色々調べるために色々なサイトに訪れて参考にさせていただいているわけですが、Linux 好きな人って純粋にパソコン好きな人が多いですよね。

環境作って、軽量化して…、純粋にパソコンと戯れることを楽しんでいて、で、そのパソコンで何をするのかって観点がすっぽり抜け落ちてる。

まあ、私ももちろんそうなんですけど。

で、別にパソコンの環境構築になんて興味のない人から見れば、「うん、インストールの方法は分かった。軽量化もできた。で、Linux って何できるの?」っていうのがけっこう分かりにくい。

もちろん分かってる人に言わせれば「パソコンでできそうなことはなんでもできる」って答えになるんだけど、それがどうも伝えにくいというかなんというか。

だからどうしたってこともないんだけど、思いついたからメモ程度に垂れ流しておく。