今日のカルドセプトDS(ついに待望のニンジャを手に入れた!)

カルドセプトDSが何か煮え切らないのは勝率とかじゃなく単にカードのコンプリートをしていないからだと心因分析して、ネットに画像アップされてるニンジャの画像を見て「欲しい!」と思ってもう1回だけカルドセプトDSに取り組んでみた。

不思議な事が起こった。1発で出たのだ。まあ、残り数枚なので確率的にいつ引いてもおかしくはないのだが、こういうのを予定調和と呼ぶのだろうか。

f:id:karmen:20201129103122j:plain

f:id:karmen:20201129103108j:plain

さあ、あとはブックをちょっと調整してニンジャを入れたゲームを楽しむだけだ。

良く出来たもので、スチームギアよりはST/HPが低くファイターよりはG40高い。

そういうカードの絵柄とゲームのパラメータで表された能力との関係が楽しい。

 

セガサターン版も持っていたけど、コンプリートする前にあきらめてしまった。

その悔いがずっと残っていただけなのかもしれない。他愛もないオチなのだが。

 

f:id:karmen:20201129163407j:plain

f:id:karmen:20201129163434j:plain

f:id:karmen:20201129163448j:plain

f:id:karmen:20201129163500j:plain

2016年頃には毎日どこが変わったのだろうと思うようなブックを晒していた。

要点をまとめると水属性のアンダインによる防衛ブックにリバイアサンやシンクなどで単色系に持っていきつつ贅沢に侵略もしたいので風属性のナイトが入っているという。

そこをニンジャとフュージョンコンボでの侵略強化した。

最近気付いたアイスサラマンダーも水吸収で巻物も読めるのでアンダイン作戦の太筋に。

ケルピーは何度も悩んだが扱いが難しくてバックワードとホーリーワードでスペル面で相手に踏ませる戦略で充分ではないかと結論づけて外した。あと1枚外したもので惜しいのがバンディット。軽くて序盤の撒きと相手の撒き潰しで魔力を奪えるなど魅力的だが絵がむっさいおっさんなのがダメな感じがしてスタメンから外した。

3DSカルドセプトは領地を持っているときの周回ボーナスが上がっており、撒きの意味が増しているが、DS版のバランスでは侵略合戦に勝つことも時には必要。3人戦以上を想定しているからさらに。まあマップの広さや目標魔力に人数で最適戦略は変わる。それはブック相性以上のものかもしれない。

ここまで続けてきてから今更な感じもするけど、この攻略は完全に俺の好奇心を満たすためのものであり、だから既に相手もいないのに続けているから話す代わりにブログにしているのだ。ネットランキングではルール上耐久レースとなり、金曜夕方しかマッチしない俺と深夜に共謀してポイントを稼ぐランカーとの直接対決はまあいい勝負で勝ったり負けたりだった。

いい勝負だとポイントが溜まりにくいので1シーズンやってみて「あっ、避けられてる?」と思って辞めたのだ。3DS版もリボルトも終わってから、今更にDS版のバランスの良さに気付いている。そして対戦だと誰かが不憫な思いをするので、コンピュータ戦で充分とは思う。

MTGの代替品として見ていたカルドセプトだが、似ているけど別物でカルドセプトならではの面白さも分かるようになった。「ゲームというのは勝ち負けを決めるためのものでなはなく退屈な時間を楽しくするためのもの」というのは会社の奥本先輩の言葉だが、まさにその通りで大多数のゲームは繰り返して遊ぶことより飽きて消費されて次を買うことで経済が回る仕組みに組み込まれつつある今の世の中、新しいものに飛びつくのも良いが古びない完成品を持っているという喜びに他のものでは代えがたいものを感じている。MTGの代わりとは矛盾する発言かもだが。

ひとりで遊べるコンピュータゲームというのは間違いなく俺の孤独を癒やしてくれる。決してひとりではない。作ってくれた人がいるのだから。

今日の教訓「勝ちパターンを自分で崩さない」

将棋ベーシック改はビットボードと新しい評価関数を加えてひとまず安定した。

我が事ではあるが、電竜戦の19試合通信不調はあったがよく完走したものだ。

だいたい2000行あるプログラムが動作不調せず動ききっただけで成果です。

それを忘れて勝った試合やちゃんと動いたことに目を向けず負けた試合を見る。

そうしたことで得られることもあるけれど、この3日は崩してみて元がどれほど良かったかを思い知るような作業に費やす3日間であった。作り直した部分のバグ取りに四苦八苦した。

安定したかに見えるところで今はそれ以上手を加えずにまた動作チェックに入る。そもそも5年間大して儲かりもしないがクレームひとつも来ていないソフトなのだ。我ながら上出来だ。

だから新しいのが出来たからと言っていま頒布しているものを上書きはしない。欲しい人だけGitHubから持って行ってくれたら良いと思っている。ほとんどの人は興味もないだろうけど。

 

そして落ち着いたところでカルドセプトDSをする。

f:id:karmen:20201128192828j:plain

f:id:karmen:20201128192841j:plain

f:id:karmen:20201128192850j:plain

f:id:karmen:20201128192902j:plain

このブックを作った2016年はDS版でなく3DS版で毎日のように遊んでいた。そうして久々にDS版を出してきてみて手持ちのカードで最高だと思えるブックを組んだ。そこから四属性コンプリートまで遊んで、改造するたびに弱くなった。2016とブック名を付けたので翌年から何か変えて今年版にしないとと思ったのだが、今なお勝率100%のブックなので50勝したからWINS50と改名して、このまま勝ちパターンを崩さないことにした。

もっともっとこのブックで勝ちを重ねて勝因をハッキリさせたい。ただまあ、コンピュータのゼネス&ゴリガンのロカ2周目で遊ぶと、ゼネスがイビルブラストを引いてこちらのアンダインが領地レベル4以上だと手心を加えてイビルブラストを打たない仕様になっているようだ。

そういう手加減に最大限付け込んだプレイング込みで勝率100%なのだろう。もっと最悪なケースを考えてブックをいじるのだから、対戦では案外違う結果になるかもだ。

雀鬼桜井章一の新書「運に強くなる」では「勝ちパターンは自ら崩せ」とあるが、崩してみて離れたところから振り返るとあらためて勝っているときの自分が如何なるものか見えてくる。勝負というのは厳しいもので、自分を変えていかないと競争相手が強くなってそのまま変わらずに勝ち続けているように見えるものは実は相手に合わせて刻々と変化しているものなのかもしれない。だがそれはカルドセプトリボルトで結果を出せばよく、カルドセプトDSに関しては2016年のこのレシピで今の所間違っていないという風に確信を新たにした。

今日も将棋ベーシック改いじり(ビットボードと評価関数)

昨晩あたりから強くなるなら何でも出来ることからしてみようと触りだした。

まずビットボードを試してみたが早く結果が欲しくて改変を急いだらバグが出た。

昨晩は晩飯にビールを飲んだ後もいじっていて、バグの原因が分からず巻き戻し。

実装してみて、バグるものの速くなった感はあった。ただそのままだと先の改変が難儀になる。ビットボード自体は速いのだが、盤面に変更がかかるたびボードを更新する処理をすべてビットボードも更新せねばならないので、全体的な改変になる。

そのため、まずは将棋盤が0〜80なのか1〜81なのか、VBで画面を作るときに何も考えずボタン1〜81を作ってメモリは0〜80でプログラム中に1を足したり引いたりしながら作り進めていたが、本当にクリティカルなボタン名(修正に手間がかかる)以外は0〜80とした。

そうして整理すると駒利きの簡単な改良を加えやすくなり、評価関数もいじって強くなった。

ビットボードは巻き戻した。対局でない以上は持ち時間は自分が待てばよい。結果を良くして結果が良いなら最後に加速を考える。まずはビットボードの前に盤面から駒を探すループの戦闘で空きなら次というループを入れた。今までは「自駒か」「敵駒か」「次」だったのが「空き地か」それから駒が見つかると「自駒か」「敵駒か」にしたので、ビットボードを再構築したら「空き地か」の処理がすっ飛ぶことになる。

ビットボードには空き地をすっ飛ばすだけでなく、自ターンは自駒、相手ターンは相手駒だけサーチするので81マスループ中上手くいくと54マス分の空ループをすっ飛ばす。

だが、指し手には影響しない。それでもそうしたほうが良いのは対局が持ち時間切れ負けであるから、同じ読みなら短い時間で、同じ時間ならより深い探索を可能とするからだ。

次はInt64をふたつつないだ0/1でのビットボードでなく、クラスを使ってビットボードを設計する予定だ。クラス化しておくことで、まずは平易に作って効果を検証してから後に実装部分を改良する作業を切り分けることが出来る。

まだまだ、将棋ベーシック改のコードはスパゲッティモジュールである。プログラムコードを文字列ではなく電線に例えると、テレビの裏とビデオデッキとか電源コンセントのタコ足みたいに美しくなくがんじがらめに絡まっている様相を思い描くのでそう呼ぶ。

あと忘れてはいけないのでメモし直すと不成の処理がすっ飛んでいる。ここもスパゲッティ。

昨晩から今日の15時くらいまでに今までは何だったのと思うくらい仕事がはかどった。

だが評価関数の複雑化は微妙な思考時間の増加を生んでいて、このままでは上位互換的に強くなったとは言えない。ビットボードも完成させて、同じ時間でより良い手になるか、ならないか。そこんとこだと思う。

既にコンピュータの読み筋は自分の思考を超えているので、読ませてみて「どんな手を指すか」は完全な御神託と化している。それでも負け筋は分かっているので、それにならないように序盤は「こう指せ」と評価関数をいじるのだが、それが余計な仕事な気もする。

電竜戦にはサラリーマンをしながら休暇をつぶして参加している方もいる。俺も以前はそんな感じでゲーム開発など趣味でしていたけど、今はこの没頭できる環境を用意してくれている家族をはじめとする皆様に感謝をしています。

そんなカッコいいこと言ってもね、たぶん1週間も経ったらまたゲーム機とかで遊ぶんだよ。