私のパソコン遍歴

〜 白砂、将棋プログラム開発を夢見る 〜

 白砂がX1-turboIIを手に入れてから約半年が経ちました(経ったんです←断言)。
 その間、作成したプログラムはというと……?

0作です。

 サンプルを打ち込んだり、そのサンプルを改造したりといったことは随分やりました。『ベーマガ』のプログラムでも随分遊びました。でも、それは「プログラムを作った」とは言わないですよね。
 この頃、白砂はようやく気づいたことがありました。

やりたいことがないと、マイコンってのはタダの箱なんだな

 ということです。
 何を当たり前のことを……と言うかもしれませんが、現在(2001年)のパソコンはそうではないですよね? 使う人間から見たらタダの箱かもしれないですけど、他の人から見ればちゃんといろんなソフトが入っていますから。
 でも、昔のマイコンは、ホントにタダの箱なんです
 市販されているソフトを買ってくるか、自分でプログラミングをするしか、「ソフトを動かす」ことはできないからです。最初っから入っているソフトなんて何一つないんです。
 想像してみて下さい。
 WordもExcelもメモ帳もソリティアもマイコンピューターもIEもなかったら、貴方はそのパソコンをどうやって使いますか?
 ソフトを買ってくるか、自分でソフトを作る以外に仕方がないですよね。

 前にも言いましたが白砂はアルバイトというものをしていませんでしたので、はっきり言って貧乏人でした(笑)。ソフトを買うお金なんてなかったんです。当時のソフトは今と同じくらいの値段がしましたし。……ということは今よりも実質高いわけですよ、物価の上昇を考えると。ですから、ちょっと手が出ません。
 なので、白砂の目は、自分で作る方へ向いたんです。
『ベーマガ』のプログラムを打ったりしたのはそのせいなんですが、まぁはっきり言ってしまうと大して遊べないんですよね、シロートが作ったソフトってのは。
 というわけでこっちの方向もちょっと閉塞感が漂っていました。
 さて、どうしよう……。


 そんな時に思い出したのが、というか眠っていたものが起き出したんですが、思いついたのが「将棋プログラムを作ろう」ということでした。
 白砂は小学生の頃から将棋を指していて、その当時は初段くらいの腕前になっていたと思います。海老名高校の文化祭に出向いて、将棋部の面々を押さえて優勝したこともあります(自慢(笑))。なので、将棋を指すプログラムを作ろうと思ったのは至極当然の流れでした。
 そしてまた、この思いに拍車をかけたのが『マイコン』誌上で連載された、「名譜戦への招待」と題された将棋プログラムの作り方講座だったんです。
 若林宏さんという方が書かれた連載で、「オールBASICで将棋プログラムを作ろう!」というコンセプトのもと、駒のデータ構造や指し手生成、定跡登録などの基本的なテクニックについて詳細に書かれたものでした。ちなみに、現在最強ソフトの1つである『AI将棋』シリーズのデータ構造は、この連載で実際に作成されたESSというプログラムのそれを参考にしているのだそうです。

「BASICなら俺だって知ってるし、作れんじゃないの〜」

 単純に考えて、まずは雑誌に載っているソースコードの解読から始めました。
 甘かった(泣)。

 まず、細かい話ですがBASICの種類が違います。X1-turboIIはSHARPが開発したHu-BASIC。雑誌に載っているのはPC-9801のN88-BASICです。ホントに細かいことなんですが微妙に構文なんかが違うので、そのまんまソースを打ち込んでもプログラムは動きません
 それと、今出たんですが機種の違い。X1-turboIIは8ビット、98は16ビットです。はっきり言ってハード的には勝負になりません。ついでに言っちゃうと、記憶容量とかも違うので、FDDに入んない筈です。
 最後にこれが決定的な問題なんですが、白砂が「知っている」と言っているのはあくまでも「命令文を知っている」レベルの話で、BASIC以前のプログラミングの勘所については全くと言っていいほど無知でした。
 例えば、配列というものがあるとは知っていましたが、それをどう利用すれば効果的かという話まではよく判っていませんでした。いや、サンプルがありますしゲームプログラムだって配列は使ってますから、ソースを見れば判ります。でも、理解はしていなかったので、複数の配列のどこをどう参照……なんてことになるとお手上げです。

 こんな状態でいきなり将棋プログラムに手を出したのがそもそも無謀なんですが(笑)、それすらも判らない白砂はあえなく討ち死にしてしまいました。
 約1ヶ月くらいは頑張ったでしょうか。しかし、それ以降、白砂は将棋プログラムのことをきっぱりと諦めてしまいました。