さて、何にもプログラミングしないと、段々とプログラミングの虫がうずいてきます。
じゃぁ、何をしようか、と言っても余り関心があるテーマもないので、昔BCCSkeltonでプログラミングし(注)、結構好きなテーマである「迷路(Maze)」をネタにして少し連載してみようかな、と考えました。
注:"SampleBCCSkelton"というフォールダーの"Maze"というプロジェクト名のフォールダーにこのサンプルが入っています。これは今回取り上げる参照サイトのアルゴリズムを基に、C++で穴掘り法(後述)を使った迷路作成用のMAZEクラスや、MAZEクラスで使うCELLクラスやスタック(CELLSTACKクラス)を自作して再現したもので、1層だけの迷路を作り、WANDERERというクラスで作った人間(2Dの赤丸●)に(「左手法」で)その迷路をさまよってもらって、SDIウィンドウに平面(2D)と立体(3D)で表示するようにしたものです。(いやぁ、60歳前半はまだ若かったんだな。今では「脳体力」がなく、ここまでできないですね。)
迷路作成には、「棒倒し法」、「穴掘り法」、「壁伸ばし法」という定番の方法があり、ウェブでも結構紹介しているサイトが色々とありますが、私はその中でもわかりやすく、C++に移植が簡単と思われた、きれいなC#プログラムを書かれていたこのアルゴリズム解説サイトを参照させてもらいました。
今回は元々C#で書かれているので、「MSCompAssで簡単にコンパイルして、さてそれから『何を書こうかな?』」と考えるところですが、実際に例示プログラムをコピーしてコンパイルすると幾つもの異なるエラーが出ます。
神様は優しいので、最初からcsc.exeにエラーを出させて「何故エラー?」というブログネタを提供してくれたのでしょう。(要すれば、この参照サイトに載っているC#の例示プログラムは、Visual Studioで作成されていて、C#のバージョンも新しいもので書かれており、Windows 11に標準でついてくるcsc.exeではいくつものエラー(注)が出てしまいます。)
注:現時点で確認できたものは、先ずそもそも「Main関数がない」という非情なもの(Visual StudioではIDEが勝手にエントリーポイントとして使うMain関数を自動作成するので、ユーザーは書く必要がない)や、自動実装関連(所謂プロパティの"{ get; set;}"という、あれです)、コンソール出力関連(C#はコンソール出力にUnicode文字を使っていますが、Ascii文字等は自動的に半角になったりしてきれいに表示されません)等ですね。
ということで、先ずは参照サイトの例示プログラムを旧いバージョンのcsc.exeで動くようにして、それを使った迷路作成コンポーネント(DLL)で「何か」を考えてみようかな、と思っています。
まぁ、ボチボチやりましょか。

