コンピュータ将棋のソフトを作ろうと思い立って、VisualC++でenumの定義や駒の動きを構造体で表現するところから作り始めた経験がある。これは中途半端でいけない。早くて強い将棋ソフトを目指すなら、データは整数型や文字型を使った構造体よりも、ビットフラグで必要なデータ容量を切り詰めたものになるだろう。設計の手間に見合った効果がないのに、データの設計から入ると思考内容は抽象的になり、仮の完成までの時間は長くなり、長い時間をかけて仕事をしても形にならず、投げ出してしまいそうになる。
将棋のソフトを作るならば、最初に作るべきは将棋盤と駒がいいだろう。グラフィックリソースなんて簡単に入れ替えることが出来るから、後回しで良いというプログラマもいらっしゃる。しかし、入れ替える前に、何らかのプロトタイプは必要で、見た目もなしにバイナリデータと向きあって仕事を出来るほど、僕自身がコンピュータ好きではないのだろう。
香 | 桂 | 銀 | 金 | 玉 | 金 | 銀 | 桂 | 香 |
飛 | 角 | |||||||
歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 |
歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 | 歩 |
角 | 飛 | |||||||
香 | 桂 | 銀 | 金 | 王 | 金 | 銀 | 桂 | 香 |