BGA「花火(Hanabi)」の基本戦略
この記事は主に A WINNING HANABI STRATEGY の翻訳で、文中の図もすべて同記事の引用です。
BGA(Board Game Arena) でプレイできるボードゲーム『花火(Hanabi)』の入門的な戦略についてまとめました。元になったボードゲームの作者はアントワーヌ・ボゥザで「ドイツ年間ゲーム大賞2013」に選ばれています。
右捨て左出し
BGAにおいては常に新しいカードが左から右に並びます。 つまり左端が最新のドローカード、右端が捨てられやすいチョップカードです。 ヒントがなければ右端から捨てて、ヒントをもらったら左端から出す。 これが花火の基本戦略になります。
2枚ヒント
基本のヒントは「次に出せる1枚」を指定しますが、それだけではパーフェクトに届かないのが『花火』というゲームです。 「次に出せる2枚」を一気に指定するヒントを目指しましょう。
下の3種類は「次に出せる1枚と他1枚の色と数字」を一気に伝えられる高度なヒントです。
Finesse(技巧)
下の場面でアリス(A)はFiness(技巧)と呼ばれる「2枚ヒント」を出せます。
手番のアリスはボブ(B)の左端の黄2に気づきます。ここでボブの左端の1枚に色ヒントを出せば「1枚ヒント」です。ボブは迷わず出せるでしょう。
しかし上級者のアリスはチャーリー(C)が黄3を持っていることに気づいて、そちらに色ヒントを出すことにしました。これが「Finesse(技巧的な2枚ヒント)」です。
このヒントが成立するには、チャーリーの黄3にヒントが出されたことにボブが首を傾げる必要があります。今すぐに出せないカードになぜ色ヒントを出したのか? もしかして自分の手札の左端に黄2があるのではないか。
そう確信したボブは黄2を出し、チャーリーが黄3を出して、ゲームをスピーディに進められました。
Reverse Finesse(逆の技巧)
同じ状況で手番がボブ(B)だった場合、Reverse Finesseという2枚ヒントを出せます。
ボブはアリス(A)が緑3、チャーリー(C)が緑4を持っていることに気づきます。単純にはアリスに「1枚ヒント」を出せばいいでしょう。でももっと効率的にプレイできると考えて、ボブはチャーリーの緑4に色ヒントを出しました。
チャーリーは考えます。今もらった緑ヒントに従って緑3として出そうか。でも周りを見渡すとアリスも緑3を持っています。ボブはそれを知っているのに自分に緑ヒントを出したことになりすこし不自然です。
この緑ヒントはアリスに「左端は緑3」だと教えるFinessであり、かつチャーリーに「指定したカードは緑4」だと教えるReverse Finesseなのだとチャーリーは深読みします。
ここまでをチャーリーとアリスが確信できればアリスは左端の緑3を出し、次巡にチャーリーが緑4を出すことができます。
いかにも高度なヒントでありボタンの掛け違いで間違いが起きそうですが、決まれば気持ちよさそうですね!
Bluff(はったり)
さらに同じ状況で手番がチャーリー(C)だった場合、Bluffという2枚ヒントを出せます。
チャーリーはアリス(A)とボブ(B)の手札を眺めて、ボブの赤3に色ヒントを出しました。
アリスはFinesseにより自分の左端が赤2だと考てプレイします。しかし実際には緑3でした。
ボブはチャーリーのヒントとアリスのプレイを注意深く観察して、自分の赤3に色ヒントが出されたからこそアリスはFinesseと勘違いしてプレイしたのだと推測しました。これを赤3として覚えておこうとボブが思えれば2枚ヒントの成功です。
3枚ヒント
ヒントや行動を組み合わせることでさらなる効果を狙うこともできます。
Free Discard(ただ捨て)
下の状況で手番がアリス(A)だった場合を考えましょう。アリスはすでにヒントをもらって黄4であることを確信しています。このまま出せばOKですね。
しかし、とアリスは気づきました。ボブ(B)もまた左端に黄4を持っている。うまくやればこのことを伝えられると考え、アリスは自分の黄4を捨てることにしました。
それを見ていたボブはびっくりします。出せるとわかっている黄4を捨てるなんてアリスはなにを考えているんだ! そしてすぐ冷静になりました。他に誰も黄4を持っていないということは、ボブ自身がそれを持っているというメッセージではないか。
そう考えてボブが左端の黄4をプレイできれば Free Discard の成功です。アリスは出せるカードをただ捨てすることで、ボブからカードを引き出すことができました(追加で不要カードを1枚捨てられた分だけお得です)。
Finesse からの Free Discard
同じく下の状況でボブの手番だとします。
ボブはアリス(A)に青3に数字ヒントを出して、チャーリー(C)にFinesseを伝えます。チャーリーは左端の青2をプレイする……代わりに、それをただ捨てします。
アリスは少しびっくりしますが、ボブとチャーリーの手札を眺めて、チャーリーが Free Discard をしたことに気づき、左端の青2をプレイします。この高度な連携が成功すれば、ボブは一つのヒントで3枚のカードを伝えられます!
ただこの状況の場合、チャーリーは自分の手札がわからないのでボブが Bluff で自分の左端が白2であることを伝えようとしている可能性を捨てきれません。ちょっとした賭けです。
Color Finesse(色の技巧)
さらに同じく下の状況でボブ(B)の手番だとします。
ボブはアリス(A)が青を3枚も持っていて、しかもそのまま順番に出せることに気づきます。そこでアリスに青の色ヒントを出しました。
チャーリー(C)はそれを見て、さらにアリスに4の数字ヒントを出します。
アリスは3枚の青カードがあり、右端が青4だとわかっています。右捨て左出しの法則から左端が青2だと推測でき、さらに青4のヒントをもらったことで間に青3があることを推察できます。
2ヒントで3枚のカードを明らかにできるのはなかなかのものです。
もっと知りたい人に
H-Group Conventions に大量の戦略(テクニック)がまとめられています。
BGAにはフィネス(Finesse)を知っている人用のテーブルも立てられていますので、興味のある人は参加してみてください。
BGAのコンベンション(2023/7/22)
BGAで花火のテーブルを立てるとき選べるコンベンション(約束)の一覧です。 公式の説明はなかったのでリンク先はバラバラです。
- フィネス(Finesse)
- 上で説明した戦術
- ハット・ゲッシング(Hat guessing)
- 90%の確率で満点を取れるとのこと
- ロジカル・レフティズム(Logical leftism)
- 状況的に明らかなときはヒントなしでも左端をプレイする?
- クローズスト・フレンド(Closest friend)
- 自分から見て左の人に出すか、右の人に出すかでヒントの意味を変える?
- シークレット・コンベンション(Secret convention)
- 詳細不明
- コンベンショナル・レフティズム(Conventional Leftism)
- 詳細不明
- チョップ・フォーカス(Chop focus)
- 捨てるべき札に優先してヒントを出す?
「当ブログのアクセス解析」
前文
Qiitaやteratail、DocBase、Twitterなど書く場所が広がるとブログは放置しがちですよね。 アウトプットすることの意味は常に意識しつつも、それを一般公開の長文でやるかは人生のフェーズによる感じはあります。
ところではてなブログからは、毎月100アクセスを超えたという通知が来ていました。なにも更新してないのに人は来るものだと思っていましたが、どんなキーワードでアクセスがあるかを見てみたら面白かったです。
アクセス解析
下のように「バッチファイル」が熱いですね。「プエルトリコ」や「極限脱出」などは息が長いのと情報源が少ないのとで、月に数人が見ているのかもしれません。
これから
転職して、会社支給のマシンがMacBook Proになって早2年。バッチファイル、AHK、そんなものもあったねと遠い目をしてしまいますが、MacにもシェルスクリプトやBetterTouchToolやAlfredがあります。マシンが壊れないうちに、カスタマイズの記録と整理をかねて記事を書きましょう。
セキュ塾「ホワイトハッカー育成コース」
セキュ塾「ホワイトハッカー育成コース」を修了したので感想を。 なお私はアプリケーションエンジニアで、業務用のフォーム・Webアプリを作ってそろそろ九年です。
1年間のハンズオン
本コースは土曜の10時から(後半は15時から)受けられるハンズオン(体験学習)。 全体としては3時間×3回×12ヶ月=108時間。大学なら10単位ぐらいとそこそこの負荷です。 月2万円のリーズナブルな月謝制と、毎回CTF(早解き競争)を実施するのが訴求力の高いポイント。
100時間で「未経験からエキスパートを育てる」は言い過ぎで 真面目にやればセキュリティエンジニアの入り口には立てるかな、という程度。 それでも自分の好きな分野が見つかれば、そこから独習で深めていくことは十分に可能です。
セキュリティ一本槍
ホワイトハッカーにテーマを絞ったことで サイバーセキュリティ関連の技術を学べるコースとして なかなか実が詰まっていたな、というのがわたしの実感です。
カリキュラムを見るに、セキュリティエンジニアの専門学校に行っても プログラミングやDB、サーバやネットワークなどエンジニアの知識を学ぶのがメインで バイナリ解析やシェルコード、OSINTやフォレンジックなど高度な領域は深く学べないと思います。
CTF
用意された問題を一斉に解いて早さを競う(CTF: Capture the flag)という ハッカーコンテストの文化がセキュリティ界隈にはあるのですが、 これを授業に取り入れているのが本コースの特徴です。
講義、CTF、解説の三段構成なので 集中して聴くし、周辺知識も進んで学ぼうとする。 3時間でもダレずに勉強してられるというはなかなかに希有です。
問題は歯ごたえがあり、そうそう全問は解けない上に リアルタイムで全員の状況が見えるので、つい本気で競い合ってしまう。 がんばった分だけ解説も沁みるし、悔しくて復習も捗るしで、すばらしい教育システムと思います。
難度と脱落率
体験者のブログに「脱落率50%」とあり覚悟していましたが、 終わってみればそこまで突き放した難度ではなかったです(脱落率も20%くらい)。 カリキュラムやPC環境をどんどん改善しているという話も聞きました。
私の場合、講義内容を理解してまとめ直すのに毎週3時間は復習が必要でした。 解くのに環境がいる問題もあり、2時間まで居残りできたのはありがたかったです。
アセンブリ言語や通信プロトコルなど 素養がない分野だと時間が何倍もかかりますから、 業務が忙しかったりすると心が折れてしまうかもしれません。
今後について
これだけでセキュリティを仕事にできるかというと辛そうですが 需要は増える一方なので、若さや熱意があれば就職もじゅうぶんに可能そう。
わたし自身は直接はセキュリティとは関係のない仕事をする予定ですが いろんな形の脆弱性を知れたこと、コンピュータの基礎を深く広く学び直せたこと、 ハッカー文化に触れられたこと、継続して勉強できたことなど、満足のいく1年間でありました。
Gigazine のRSSフィードをフィルタリング
概要
GigazineのRSSフィードは全部入り
ニュースサイトGigazine には毎日20件ほどの投稿があり、記事は約30のカテゴリ1 にわけられています。ただし提供されているRSSは全記事・全カテゴリを配信するものしかありません。
不要なカテゴリはフィルタリングしたい
全方位的に興味のある人もいるでしょうが、カテゴリを絞ってRSSリーダーで受け取りたい人もいます。そんなの簡単だろ……と思いきや少し苦労したのでメモっておきます。
Feed Rinse で解決した
RSSの実体はXMLでcategoryというタグが公式にあります2。Gigazineもそれに則っているのですがRSSフィルタサービスの方でcategoryに対応したものがありません。 試行錯誤の結果、Feed RinseというサービスでRSS 2.0のpostを条件にするとうまく行きました。
Feed Rinseの使い方は「Feed Rinse」でRSSフィードから特定のキーワードでフィルタリングした記事を取得・除外するなどをご覧ください。
以下は試行錯誤メモです。
Feed Rinseではbodyを選んでもうまくいきましたが、tagでは駄目でした(postとbodyの違いは……)。 siftrssはタイトルと概要しかフィルタ条件にできずマッチしません。RSSフィードフィルタもタイトルしか選べません。それぞれシンプルなよいサービスなので適材適所ですね。