ビジュアルスタジオフォーマックが不便な件

エクセルのマクロでおなじみのマイクロソフトのプログラムランゲージ「ビジュアルベーシック」がマックで使えるようになったので将棋ベーシック改のデベロップを再開したわけですが、将棋と再開だけ漢字なのはナゼ?

ビジュアルベーシックはマイクロソフトのウインドウズと共に発展し共に歩き共に築き共に感じ共に祈る言語なのでマックに持ってきたらマックオーエスとウインドウズの設計思想の違いの中で色々と窮屈な思いをしているようです。

例えば将棋ベーシックのこの部分

        ElseIf state = 1 And RangeCheck(locate) Then
            'MoveChara(locate)
            Dim d As MoveData = New MoveData
            d.hand = BLANK
            d.r = undo
            d.r2 = locate
            d.src = board(undo - 1)
            d.dst = board(locate - 1)
            MakeMove(d, True)
            DispAll()
            AddKihu(locate)
            state = 0
            Me.Refresh()
            Me.Cursor = Cursors.WaitCursor
            RobotMove(-1)
            Me.Cursor = Cursors.Default
 

 下から4行目にMe.Reflesh( )と書いています。

これはどういう意味かというと、将棋ベーシックで駒を持って、行き先をクリックしたら先ず駒を進めてから、相手の思考RobotMove(-1)を呼び出して、相手が指したら自分の手番が返ってくるというところまでプレイヤーは操作せずに一発で実行したいわけです。

しかし、処理は一発ながらゲームなので画面は動かしたいわけですね。

だから処理中にリフレッシュをかけると、ウインドウズとビジュアルベーシックの組み合わせなら、処理中に一回処理を止めて、画面を更新してからまた処理に戻ってくるということをプログラムの途中にMe.Reflesh( )と書けばそれで事足りるわけです。

ところがですね、マックオーエスとビジュアルベーシックの組み合わせでは、ひとつの処理中に他のことをプログラムしても、更新がかからないんです。これの原因は簡単には推し量れませんが、おそらくマックオーエスでは、処理をしている間は画面は触らないで、処理が終わったら画面を書き換えて、画面を書き換えていても次の処理があるならユーザーの操作を保留して次の処理を画面更新の後に行っていくということを小分けにしてプログラムしていかないといけない仕様があると推測されます。

ウインドウズでもビジュアルベーシックではなくC言語互換のビジュアルシープラスプラスではそれと同じように逐次処理を自前でオペレーションシステムに対して命令していかないといけません。

将棋ベーシック改は最近の将棋プログラム事情で行くとユーアイ(ユーザーインターフェイスUser Interface)と探索部と評価関数が全部1本の実行ファイルの形式になるごちゃまぜのプログラムで、俺が3ヶ月ほどで9割を書き上げて、どうにかこうにか出来たものを大学に持っていって少しの改良で大幅な棋力アップをしたものです。全部自分で作った(プログラムを書いた)と言って間違いはないのですが、それが動く背景には鉱石の発掘をした先人にフォン・ノイマンのコンピュータの発明、マイクロソフトやアイビーエムによるドスブイ機の発展から大学での将棋プログラム研究など、本当に様々な力が自分のパソコンに集結して出来たものなので、自分が作ったということはネット以外には滅多に公表していません。口で「俺が全部作ったんだ」と言っても聞いた人はみな「全部自分で作るってどういうこと?」と聞き返す程度でとても信じられないという表情で「すごいね」と呆れる人や「そんなの嘘だ」と怒る人など、俺の体験では作ったことを明かして特をしたことが無いからです。

もっとよりよいものが、ビジュアルベーシックのような入門言語でなく各部位ごとにそれぞれの得意分野を持った人が集まって出来上がっていくさまをネットで観察していると、自分は自分の過ごしてきた世界の中で経験したことの延長線上に世界を想像していたけど、より広く世界を知るたびに自分の想像の延長線と現実は全然違うものなのだなと思い知ったのです、

ビジュアルベーシックを選択したのは、簡単に画面が出るからです。画面に出ないC言語の探索部のような仕事は管理職がパソコンに詳しくない企業では暗い画面で文字を打っている時代遅れのパソコンオタクで画面に何か華やかな色使いで絵になるものを出している方が良い仕事をしているように見られるので、どうにかして下層の探索部だけでなく表示部までひとりでやり切るのに、きめ細かさで勝負のC言語より部品を組み合わせて作るビジュアルベーシックのほうが良いだろうと思ったからです。