ドミニオンをインターフェース視点で覗いてみた
突然ですが、皆さん「インターフェース(以下I/F)」というものをご存知でしょうか?
何故いきなりこんな話なのかと言いますと、私は仕事でプログラミングをしておりまして、ふと『ドミニオンのデッキ構築ってI/Fの実装に似てるなー』と思いついたものでして。
はい。そうです。この日記は思いつきです。
日本選手権を直前に控え、調整に抜かりがない方々に送る、下らない雑記です。
宜しければ息抜きにでもお読み下さい。
(勿論、為になる情報には期待しないように)
インターフェースって何?
(※注意※ I/Fにも色々な種類があるのですが、今回はその中でも「オブジェクト指向におけるI/F」についてのお話になります。)
I/Fと言うものを分かりやすくお伝えすると"機能の実装"になります。
例えば携帯電話と公衆電話。これらの共通項は「電話が出来る」ですが、これを言い換えると「電話I/Fが実装されている」という風になります。
電話I/Fさえ実装されていれば、そのものが何であろうと電話という機能を実装してる事になるのです。
他にも「切符、定期券、チャージ式ICカード」これらは電車切符I/Fを実装してるから、どれでも電車に乗る事が可能ですね。
このように「〇〇が出来る」ということを『〇〇I/Fが実装されている』と言います。
ドミニオンのカードとI/F
これをドミニオンに置き換えて考えてみると、ドミニオンにも様々なI/Fがある事がわかります。
例えば、サプライを見て購入・アクション・ドロー・廃棄の有無を確認するという行為ですが、 これを言い換えると「購入I/F・アクションI/F・ドローI/F・廃棄I/F を持っているカードがあるか」の確認行為になります。
ドミニオンにおける主なI/Fとしては
- プレイI/F
- ドローI/F
- 追加アクション権I/F
- 追加購入権I/F
- コインI/F
- 廃棄I/F
- 獲得I/F
- ディスカードI/F
- アタックI/F
などが挙げられるかと思います。
以下ではこれらの一部を少し掘り下げてみます。
プレイI/F
財宝やアクションはプレイして場に出す事が可能ですよね?
何を当たり前な事を言ってるんだとお思いになるでしょうが、これもプレイI/Fを実装しているから可能な事なのです。
逆に言えば、プレイI/Fを実装していないカード(勝利点や呪い)は当たり前ですがプレイして場に出す事が出来ません。
そしてもう一つ、カードをプレイする際に起こる共通項があります。
それは「プレイした場所(手札や酒場マット)からカードが1枚減る」ということです。
プレイI/Fが持っている機能についてまとめると
- それをプレイして場に出すことができる
- プレイした場所からカードが1枚減る
ということになります。
ドローI/F
読んで字のごとく、カードを引く機能についてのことですね。
「鍛冶屋」や「議事堂」のような大量ドローアクションがドローI/Fを実装しているカードの代表ですが、このI/Fはもっと幅広いカードを指します。
アクションカードはプレイI/Fを実装しているので、「カードが1枚減る」という機能がどうしても付きまといます。
そのカード1枚の損失を補填してくれるのがこのドローI/Fの真の姿ではないでしょうか。
ドローI/Fが保証する機能としては「プレイ時の手札の損失をリカバリーする」という方が正しく、 鍛冶屋などは更にこの上の「追加ドローI/F」を実装していると考えられると、より理解が深まると思います。
間違いやすい点として、ドローカードとして挙げられる事の多い「書庫」や「望楼」「よろずや」はこのI/Fを実装していません。
なぜならば、これらのカードはプレイ時の手札の損失補填を100%は保証してくれないからです。
追加アクション権I/F
これも名前だけ見て分かる通り、通常1つしか持っていないアクション権を追加してくれる機能ですね。
「村」はこのI/Fの実装代表例にはなりますが、これも先ほどのドローI/Fと同じくもっと幅広いカードを指します。
考え方もドローI/Fと似ており、あっちの「プレイ時の手札損失補填」に対して 追加アクション権I/Fの機能は「アクションプレイ時のアクション権損失補填」になります。
村系のカードは更にこの上の「アクション権増加I/F」を実装してるとでも言いましょうか。
コインI/F
金量を出力する機能です。
この機能を実装する主なカードは「銅貨」「銀貨」「金貨」ですね。 全ての財宝カードはこのI/Fを実装しています。 勿論「豊穣の角笛」も例に漏れずこのI/Fを実装しています。ただ、出力金量が0なだけです。
ドローI/Fにおける追加ドローI/F、追加アクション権I/Fにおけるアクション権増加I/F のように コインI/Fにもこの上に「仮想コインI/F」があります。
まとめ
ここまで読んでいただけた方には、少しはI/Fの事を理解して頂けたかと思います。
実際のカード達はこれらのI/Fをいくつか実装(最低限のその機能は保証)した上で、更にそのカード1枚1枚の特性を持っています。
鍛冶屋というドローI/Fのみを極めしカードがあれば、宰相のように最低限のコインI/Fに独特の機能を備えたカード、 市場のような色んなI/Fを数多く実装しているカードもあります。
ステロで特に優秀といわれる「仮面舞踏会」や「よろずや」は、1枚の中でステロに合う複数のI/Fを実装しているからこそ優秀なんだと思います。
ドミニオンにはキャントリップと呼ばれるカード達がありますが、これもI/F観点で説明すると
「ドローI/F と 追加アクション権I/F」が実装されているカードということになります。
なので、私から言わせてもらえば研究所もキャントリップの仲間ですね(
カード1枚1枚をそれ単体で見るのではなく、実装されているI/Fレベルまでバラして考えられるようになることで そのカードの費用対効果がどれ程のものなのかが理解しやすくなり、それが後にどのようなサプライでも戦える実力になっていくものだと私は思っています。
ドミニオンが上手い方々は無意識にこれに近い考えを持ってプレイしているのではないでしょうか。
(大会実績のある方の感想を聞いてみたいものです。