「将棋の先生だと思ってた」

俺は将棋ベーシック改を職業プログラマーをしながら趣味で開発したのですが。

ユニオンシステム勤務時代、シャープ勤務時代など会社から守秘義務を迫られて、しかし独身なので女の子を口説く時に仕事を聞かれ器用に返せずに、会社の秘密を少しはなしてしまったり黙り込んでしまったりとしてきたわけです。

守秘義務と言っても俺がなにか会社の秘密を握らされているというわけではなく、反対に独学で勉強して、任されている仕事についてMSDNマイクロソフトデベロッパーズネットワーク)というウインドウズの仕様に関する膨大な量のマニュアルを読んで、頼まれたことをしているだけなのですが、このひとりの会社員の持っている知識だけでコンピュータシステムが出来上がっていて、原価はほとんどないというのが秘密です。

ユニオンシステムも社員200人を擁する大企業ですが、開発部は8人で残りの192人は販売とか電話受けとか値段を付けて売ってサポートするのが主な業務。ソフトの単価も開発部だけでは知りようがないのですが、200人が単純計算で月20万から30万の給料をもらっているとすると、月4000万円から6000万円くらいの売上が無いと黒字にならないわけです。そのソフトウェアの開発が俺ひとりに単純計算8分の1がかかっていて、傲慢に言えばひとりで40人食わせているようなもの。

まあ、営業の人間はそっちはそっちで自分たちで売り上げて開発部を食わせていると思っているのかもしれませんが。

開発部にいる間は先輩に「営業の人間にソフトの秘密を教えてしまうとお客さんに気に入られようとうっかり話してしまうから、教えちゃだめ」と言われていました。そういう風に、社内でも隠し合いなのです。それを親兄弟や友達なんかに話して良いはずがない。しかし俺はパーティーピーポーで集まって遊ぶのが大好き。多くは大学生やアルバイトにならず者や金持ちのボンつまりニートで出来ており、ひとりだけ会社員でお金持ってるとお酒の咳で「どうやってそんな儲けるのよ」と聞かれることしばし。

そういう俺が会社とは無関係に将棋ソフトの開発に着手して、シェアウェアとして販売するに至ったのは世間に対する立ち位置を確保するのに便利な言い訳になるからです。

Public Class Form1
Const WHITE As Integer = 1
Const BLACK As Integer = -1
Const USE_AB As Boolean = True
Const YOMI_DEPTH As Integer = 3
Const HAND_READ As Boolean = True
 

そんで、将棋プログラムの開発者ではありながら、最近は将棋ウォーズで本人の棋力は大したことがないことを明かしたわけですが、将棋ベーシック改の開発者であることを公にしているせいで、本人もコンピュータでなく将棋の先生だと誤解していた人もいて。

 将棋が弱いから将棋ベーシック改も3級なのだと思われたら、それも誤解で将棋ベーシックも市販アプリとしてゲームをする人を待たせ過ぎないように思考を打ち切るから3級相当であるだけで、オープンソースにしているソースコードの5行目。

Const YOMI_DEPTH As Integer = 3

この部分ですね。これはローマ字と英語の混ざった読みDepth(深さ)つまり他の将棋ソフトと同等の探索深さを定数で3手先で打ち切ることを示していて、ここを = 5にすると5手読みに = 15くらいにすると激指と同じくらいの深読みになるわけです。

ただまあ、開発言語のビジュアルベーシックはウインドウズのOSの機能を優先させて作られているので、3手読む間にも使っている人が画面をマウスで触ったら反応するように、いちいち計算の途中で応答を処理するように考え中で固まらないようになっています。そのため静止状態での探索速度は遅く、15手も読ませると何時間経っても終わりません。まあ、そのかわり考えさせておいてもウインドウズとして使うことは出来ます。

まあ、強いソフトは激戦区なので、初心者向けと言われているベーシックで組まれた将棋ソフトがあっても良いじゃない、個人開発で販売までの工数を便利機能で削減できるなら、そうしようと思って作ったものです。

俺は将棋の先生ではなくコンピュータの先生です。それもソフトウェア特化型。これはゲームとか映像とか絵画とか音楽とかやりたいこと色々やってみて、これがいちばんお金になると思って選んだ道です。分業型の会社組織で、自分の持ち場をしていれば毎日のごはんにありつける。そういうことです。