リハビリ

 アイリが居た模様。ワンフェスかな。
 考えてみれば今年のこのタイミングこそこういう所に顔を出してみるべきだったのかなとちょっと思いました。(基本、人込みとか避けてしまう人ですが)

 まぁ今年の夏は「この星もう駄目だ」レベルなので、
 バイタルゲージとメンタルゲージの維持にこそ気を向けないといけないですが。
 それどころか先日のブチ切れ金剛ゲージの振り切れっぷりで色々と大誤算が発生してしまい。出遅れる間に書く内容まで変わってしまいましたよ。

 さて、先月は「折角だからPS4を活かそうキャンペーン」で休息を兼ねて幾つかゲームに手を着けたものの、実に触れづらい中途半端感(巻き込まれるようにEDF5も、キリ良く締めておきたかったんだけどもうプレイを忘れてしまった、、)。やはり甘い気持ちで半端にやるよりも、ここはもっと自分に向いたやるべき物をやらないと駄目だよなということで、リハビリをしようかと。
 以前に途中でご無沙汰になってしまっていたTIS-100(アセンブラパズル)を再開。
 「リハビリでエベレストに登るような真似をするな」と突っ込まれましたけどね。
 あ、はい、このネタが是非使いたくて持ち出しました(笑)。
 実のところは昨年末、PS4の前に本当にゲームリハビリとして手を着けていて。しかし一度書こうとする間に想定外の予定が舞い込んできたり、また忙しくなったりですっかりご無沙汰に。今度こそと申しますか。

 前回はきちんと一から復習したのに、半年経ったところでまた一からやるのもなぁと、何とかなるだろ的に突撃したのでそれこそリハビリにすらなっていない荒療治。
 しかもTIS-NET=公募ステージともなるとやはりマニアックな題材が多くなってくる訳で。
 SIGNAL AVERAGER、「平均値を出す」というお題では、理屈は「足して2で割る」だけだけれども、本作ではADDとSUBの加減算しか持たないCPU、除算はおろかシフト演算も持ち合わせてはおりません。ともなれば除算はひたすら除数を引いた回数をカウントする原始的アルゴリズムというのが前半ステージでの通常のお題だったけど、こちとら3桁の数を2で割るという最悪のループ数。当然ごく平凡に組んでも「ですよね」のスコアしか出ないので、如何に工夫して効率的なロジックを組むか、とやったところで初めて平均スコア(ヒストグラムの最頂点)に到達。
 いやぁ、本当にもうこれマニアしかやってないんじゃないかな?(笑)
 普段から「平均スコアかそれ以上」くらいを目安にプレイしていたけれども、皆こんな調子なのか。
 上記は分かり易い例を挙げただけで、実際もっと面倒くさいお題も当然出てきて、果たしてこんな調子でクリアまでにどれくらい掛かるんでしょうかね。

 などと書こうとしていた所でこの前気を削がれてしまったので、気分を変える為にもう一面くらい進めてみるかと思ったのが、正に運の尽きとなろうとは、、。

 いやぁ、見事に遭難しました。
 誰も助けてもくれないから自力で彷徨い続けて休日丸潰れの勢いで「俺何やってるんだろ」と早速挫け始めた自分が居りますよ(苦笑)。

 そもそも本当はこういう時には時間を置いてじっくりやるべきだったのだろうけど、ロジックは思い付いたけどコードが収まらないという状況故にいつまでも足掻いてしまった。
 折角自分のケツを叩く意味で「再開した」と書き残すと決めた矢先のこれでは二進も三進も行かず。「諦めたら試合終了」感が半端ないし、こういう時に下手に時間だけはあったのが災いして、意地になって片付けざるを得ない心境に。

 どうにも昔からSTACK MEMORYを使うステージは苦手というかすっきりしない。自分が知らない使い方があるのだろうかと不安になるほど。その仕様上、制御フローにコードを割かれるのでどうにも、ロジックを考えることよりもそれを実現する為のコード領域との格闘に時間を費やしてしまう。
 ただまぁ、どうにかこうにか終えたら(「SEQUENCE MODE CALCULATOR」)平均スコアから察するに「命令数を絞った代わりに低効率」のギチギチコードを先に作ってしまったっぽいので、つまりは本来はもっと素直な書き方、ないしは全く別のロジックがあるということか。
 しかし今回は他に使えそうなロジックがまるで思い浮かばないのが辛い。

 元々ギチギチのアセンブラ職人ではなくて、回路職人でもない。(強いて言えば今は可搬性とか可用性を重視したロジック・フロー・コードを考える時代だと思っているので)、ここまで頭の良いというか頭の構造の違う人達にはちょっと敵わない領域かなぁという思いが湧き出てしまったのが今回。

 まぁ一通り凹んだ後に、改めて情報収集。
 STACK MEMORYに関して、マニュアルで言及されている別紙(Patterns of Node Communication)なんてものは実際は存在しないので(謎の古いPCを拾ったというゲーム内設定の味付け文章に過ぎず)有志が作った解説サイトを覗いてみた。(Github
 どうやらやはり機能的には知っている範囲内。
 LASTとか、解説はされてるけど結局誰も使ってないじゃないかと。
 ただ以前にも同じくしっくりこなかったSORTERの解法例をちょろっと見てみたところ、成る程、これは実に頭の良い分散コーディングですね(笑)。
 まんま影響を受けても意味が無いので大筋の方向性を見るに留めたけど、こういうレベルで発想の転換が必要と。まぁ最大の問題はノード配置という気もするけど。今回悩んだのはそこで。

 まぁ今の力で足掻くしかないことははっきり分かったので、また躓く面も出てくるだろうけども、素直に後回しにするなり何なり、長い目ででもやっていければと思う。
 そもそもこのゲームの本番はこっちだよね。これは序章であって。
 っていうかそれからまた次のも出てるのか。他のもやってないし。
 躓いている場合ではない、、。