今日のプログラムいじり(将棋ベーシック改の次の名前なんにしよ)

朝からやる気を出して将棋ベーシック改のソースコードと格闘していた。

まずビットボードをビジュアルベーシックで本当に実現できるのか。

そのへんの検討で今のコンピュータは64ビットなので将棋盤81ビットを作るには整数型ふたつをつなげることとなる。そして主にビットボードで計算が縮むのはGenerateMovesつまり手生成。合法手生成とでも言おうか。3手読みというと語弊があるので正確に書くと、今の局面で指せる全ての合法手をまずメモリに全羅列し、1手進めてその局面での相手の全ての合法手、さらにそれに対する自分の全ての合法手まで探索深度3手進めたら1手ずつ巻き戻して次の手を読む。短いときで10万手、多い時は800の3乗つまり5億手くらい探索する。秒間10万手くらいなので、5億手になると数分かかる。だいたい、手駒が増えると盤面の何処にも置けて相手もそうしてそこからさらに枝が伸びる。たまに計算が返ってこないのかと思うくらい長いのはそういう事だ。まあバグっている可能性もある。トレースで人力で全ての手を追いかけることは現実的でないので。

そして、手生成で空きマスを数えているのは1箇所なのだが、探索深度3であることから反復的に呼ばれるので、ビットボードを実装するともしかしたら1割ほど計算が縮むかも。計算量計算をすると何だよ1割かよと思うわけだ。それを簡単に実現できるならやりたいが、VBの機能でどこまで出来るか、自分の実装でどこまで、期間的に数分で片付くか何日もかかるかなど。

それなら飛車、角。香車などの飛び利きも縮まないかとコードを読み直すのだが、これも一筋縄ではいかない。上には上のプログラマがいるとはいえ、俺もまあその道で食ってきたのでロジック的に無駄のあるコードは書いていない。だが、掛け算にかかる時間と足し算にかかる時間の違いなど、CPUのハードウェアの問題とソースコードコンパイルされて機械語でどう解決されるかみたいな問題まで突っ込んで、少しでも計算を早くしたいとなったら、もっと度肝を抜かれるような手法は存在する。そういう勉強をすると、ついに憧れのゲーム機用プログラマに1歩近づいたなと思う。俺のプログラミングはウインドウズ95以降のハイスペックマシンで力技的に解決している部分が残っているからだ。

計算量計算を真面目に考えると、計算部分の最適化より局面進行を差分に変えるのが効果的に思えるが、そのためにはデータ構造から作り直す必要がありそうだ。

そうこうしている間に午前が過ぎ、昼飯にカップ麺とレンジのご飯にふりかけをかけて食べて、考え疲れたのでゲームでもしようかと思ったがそれもする気にならず、朝の情報番組で昨日の音楽番組のダイジェストと宮本浩次のカバーアルバムを聴いたのを思い出して、リッツクラッカーを食って近所の自販機まで歩いてコーラを買いに行き、それを飲んだらこんな時間(16時35分)なのである。

いま将棋について考える頭がハイで乗っているので、他のゲームを遊んでそれを忘れたくないのだ。だが、よく考えると毎朝の精神安定薬を飲み忘れていたので、単に病気かもしれない。

俺がブログにハマるのもプログラミングは進めても同じことをもっと上手くやるために巻き戻す作業がけっこう発生するからだ。だがまあ、名文を書く作家もたぶん発表のために多くの未発表部分を隠すのであろうな。

いじりだして立ち行かなくなったソースコードを朝の分まで巻き戻し、つまるところ今日の進捗はリッツを食ってコーラを飲んだだけである。

今日のカルドセプト(ワーウルフを手に入れた!)

勝利時カード大量入手なのでで勝ちまくっているがコンプにならない箇所がある。

もしかして負けてみたら・・・と思って

ネタバレにならんかな。

それとも偶然かな。

手に入りましたよワーウルフ

f:id:karmen:20201125083108j:plain

f:id:karmen:20201125083452j:plain

f:id:karmen:20201125083503j:plain

f:id:karmen:20201125083515j:plain

しっかしブックにブチ込んでみた後にフードラムとリトルグレイなんでやねんと違うカードにしたけどよくよく見返すとスワップスペルと弱いカードの相性がいいとか、前に組んだときなりの作戦はあったわけで、メモ残しておくのも悪くないけど自分で読み返さないことも多い。

書き散らかしてきたからね。よく読んでくれている人から突っ込まれて気付くの。

今日のマヴカプ2(アイアンマンが取られてしまった)

バンドマンの男に惚れる女子というのは売れないバンドマンのほうが好きというかステージが好きでマイナな人を応援するとステージを近くで見られるから良いのであって、付き合って結婚して旦那とすると演者として憧れたバンドマンとしての男でなくタダの男としての本人の世話を焼いたりするのかもだが、そうすると旦那の仕事として売れてお金を儲けてほしいというのと自分だけのものがみんなのものになるという葛藤を同時に突きつけられるのではないか。

そう考えるとお金持ちのファンがバンドのステージの特等席を他のチケットより高い額で買って独占するみたいなことのほうが上手くてかっこいいバンドを近くで応援したいみたいな夢の叶え方としては合理性があるようにも思える。

これと全く似たようなことを格闘ゲームの弱キャラ愛に見る。弱いキャラだから人気がなく、それで勝つとカッコいいという評価を下す人というのは自分がキャラ相性についてそれがキャラ的に弱いと認めているから知性として負けてはいなくて上から下に頑張ったで賞を与えているという精神的な優位性があるから褒めることが出来るのだ。

そういう意味で、褒めてもらえる弱キャラ使いから強いと叩かれるようになったら、弱キャラ愛作戦は失敗である。マーブルスーパーヒーロズでのアイアンマンはゲーメストでは弱キャラだった。そしてマヴカプ2のアイアンマンはとそこまでの強キャラとは思われていなかったが、優勝チームにアイアンマンが入ったことでマグニート・アイアンマン・センチネルというチームは強キャラから入りたいと思う人の御用達チームとなってしまった。

そうなったので、俺はアイアンマンを辞めて今日はガイル・アナカリス・オメガレッドというチームで遊んでいた。まだ強いチームはあるかもしれない。だがそれは強いとか勝てると表現するより、楽しいと表現するほうが適切だし、楽しみというのはひとりで独占できるものであって仲間との共有をすると独占価値が半減するという孤独と共感のどちらを取るかという葛藤がまたしても付きまとうのであった。

売れないバンドマンを応援するのは現在流行っているものより次に来るものを自分たちは知っているというような流行を追う人に対する優越感もまたあるのだろう。俺は違う。みんなと違う。あるいはそれはテレビを見て歌手になりきって唄う子供と比べてなにか自分でそれと分かる変化をつけてやらないと成長を感じ取ることが出来ないからであろうか。

そして何の先入観も持たない人が新しいゲームを始める時に優勝者のチームから入ることはとても自然なことで、それにとやかく言うのはゲームという非生産行動の中にも知的な発見はあり、それについて特許や著作権のような知的財産権を主張できないことから来る知的財産侵害ではない不倫理感への不満になる。

他人から守られないルールを自分だけ守るという愚行は俺はしなくなった。ただ、そのまま無法者として死刑台か牢獄まで突っ走るほど極端でもない。警察の管轄である刑法に触れないもの、民事で訴訟するほど強くはないもの相手にそれを侵害する。あるいは徹底的に民事で闘うべきなのかも知れないが、それにかかる労力を考えると罰金刑のほうが安かったりする。

アイアンマンは取られてしまった。何を取られたかと言うと操作の手順や相手の行動に他する応手であって、それはモノではない。そんな俺でも攻略本は読む。攻略本に書かれたことなら取ったことにはならないのかというのが新しい論点だ。まだまだ考えるべきことは多い。


🄫1999-2023 id:karmen