ソリティアのアプリの話

最初にアプリのゲームをやったのは、iPod touchをプレゼントしてもらった時だったと思う。その時から今までいろんなアプリを入れては飽きて消し、を繰り返してきたけども今でも使っているアプリの一つにソリティアのゲームがある。

 

ソリティア以外にもフリーセルや聞いたこともないカードゲームまでいろいろできるものだったのだけど、最初ダウンロードしようとしたときの説明文が少し面白かったのを覚えている。よくある「ゲームが○○種類!」とか「○○な機能も搭載!」とかの中に「undo機能がないので緊張感を持ったプレイが可能!」みたいな一文が入っていたのだ。

売り込みの文章中にさらっと入っていたので納得しそうになったが、これ、面倒くさくて付けなかった機能をさもプラスポイントであるかのように書いてるだけじゃないんだろうか?でも確かに、「とりあえず適当に動かしてればそのうちクリアできるでしょ」という甘えはなくなるだろうし、納得できなくもないのだ。「マイナスポイントを見方を変えてしまうことでさもプラスであるかのように売り込む」というのはお金も時間も節約になるし問題解決方法としてすごく賢いなぁと思ったのでした。その後、アプリがアップデートされた時にいつの間にかundo機能が増えていました。

 

もう一つ、いつの間にか増えていた機能で面白いなと思ったのが、「クリアできる保証」。ソリティアだけだったと思うけど、要するにこのゲームはちゃんとクリアできる方法がありますよ、ということだ。逆に言うと今までのソリティアには絶対にクリアできないゲームが混ざっていたってことになるのだけど、ここでちょっと面白いのは、クリアできる保証マークがないゲームだったとしてもちゃんとクリアできることが多々あるのだ。

そもそも最初はなかった機能だし、前述のundo機能よりもよっぽど面倒くさそうな機能だと思う。あまりプログラミングに詳しくないのだけれど、ソリティアを自動で解くプログラムってそんな簡単に作れるのだろうか。多分難しいんじゃないかと思う。だってそれができるなら全ゲームにクリアできる保証をすれば良いのだから。マークがない中にもクリアできるゲームが混ざっている理由がない

 

クリアできる保証をどうやって付けたのか、について仮説を2つ考えた。1つはランダム生成したゲームを解けるかどうか演算するのが難しいなら、クリア状態から逆算してゲームを作ってしまえば良いんじゃないか、ということ。そして逆算から作ったゲームにだけ保証マークを付けたんだとすれば、マークのない中にもクリアできるゲームがあることにも納得がいく

もう1つの仮説は、ユーザーのクリア情報を収集したんじゃないかということ。プログラミングで解くのが難しくても、ユーザーは日々たくさんのゲームをクリアしている。ランダム生成したゲームに対して、クリアできたユーザーがいるかどうかだけ調べてもしクリアされていれば保証マークをつける。これだったらずっと簡単にシステムを作れそうだ。いや全然詳しくないので想像に過ぎないのだけれど。

 

もしこの後者のやり方だったとしたら、すごい賢いなと思う。最初はシンプルなソリティアとしてリリースしてユーザーのクリアデータを集め、集まったところで「クリアできる保証」として新しい機能としてアップデートする。楽に新しい機能を追加できたことになるし、あの賢い売り文句を使っていたメーカーならあり得るかな、なんて思った。まあ、ソリティアを自動で解くプログラムなんてすぐ出来るよ、ということだったら全部間違いってことになるのだけどね。

ここでもう一歩踏み出さないかな、と思うのは、もし本当にデータを集めてるんだとしたら、だけども、クリアデータを集めてることを公にしちゃったらどうだろう、ということだ。要するに今マークの着いてないゲームはまだ誰もクリアしたことのない、クリアできるかもわからないゲームだということ。ユーザーのあなたがクリアすることで保証マークが付きます!あなたが最初のクリア者になりませんか?というのは売りとして使えるんじゃないだろうか。こういうのに達成感を覚える人はいるだろうし。どうでしょう。

 

いろいろ書いたけど、所詮素人考えなので全く違うかもしれないけど、ただ単にこういうことを考えるのが好きなだけなんだ。もし「違うよ」ということがあればこっそり教えてくださいな。