> 遂に予言されたコンピュータ同士の戦いが始まった!!
この当時は、どうやらハヤリだったようです。
FGALEL/MES/2/#10790というと1998/04/11か、C言語でアルゴリズムを作ってお互い
に戦わせようというツリーがありました。盤面の配列を渡すと置く場所を返す関数
を作る、という話です。
私もちょっとだけ首を突っ込んだんですが、結果的に尻切れ。自分の発言だけは
地層処分してありますが、全体が見えないと意味がないのでリンクにはしません。
さて、今回も利用されているアルゴリズムですが、いわゆる優先順位法と呼ばれる
ものです。この優先順位なんですが、要は角が一番高くて角の隣が一番低い、という
のは常道ですが、では他の部分はどうなっているか、というと、まぁ経験的にこんな
もの、というものがずっと使われている模様。少なくとも当時はそんな感じ。
だけど、もっと強い優先順位はないか、ということが気になっていました。
そして、上記FGALELのコンピュータ同士の対戦というのにインスパイアされて、
いわゆる「ぼくのかんがえたさいきょうの」優先順位を求めたい、という欲求が
沸きました。
私 「最終目的は、最強の優先順位を求めることだ!」
僕 「でも、その優先順位を使って人間とゲームできる必要はあるよね」
俺 「ならばまず、人間対機械でゲームができるようにしよう」
拙 「その際、FGALELでやったように、機械側は関数にすればいい」
オレ 「でも、どうすれば人間とゲームができるんだろう」
私 「要は入出力が必要なわけだ」
ボク 「画面表示はテキストベース、1手ごとにスクロールでもいいじゃないか」
わたし「それなら標準入出力で楽ができる」
俺 「標準入出力ならLSI-Cでコーディング可能」
僕 「LSI-Cならポケ3でも実行可能、ついでにプログラミングも可能」
オレ 「でもC言語で一から組むのはだるい」
私 「そうだ、昔、PC-88に移植したBASICのコードがあった、それを変換しよう」
ということで、BASICからCへの移植がスタート。
ただ、残念ながら、こいつも未完。途中までのCのソース、コンパイルだけは通る
ようにはなっていたかなぁ。
いや、実はしょうもないところでつまりまして。
ポケ3て白黒液晶ですが、プログラムから白黒反転可能なんですよ。
ところが、現在が反転しているか否か、ということを取得する方法がわからない。
つまり、反転していてもしていなくても、黒なら黒、白なら白という表示を目指した
がために挫折。そんなところにこだわらなければよかった。
一応、この先のことも見据えていて。
機械対機械を行うメインルーチンは、まず最初につくるのは、1回対戦して勝敗を
表示したらそれで終了、というもの。
そして次のバージョンでは、いろいろな優先順位のアルゴリズムをどう戦わせるか、
ということ事になります。ここはマシンの速度にもよりますが、100回とか10000回
とか。トーナメントかリーグ戦か。作る優先順位も、最初は乱数かな、とか。
さて、オセロの優先順位って、結局は1から60までの一次元配列ですよね。
例えば、優先順位最高となっている角については、2つの角に同時に置けるという
のはありえません。その一つ前の手でどちらかに置けるようになっているはずです。
でも、最も優先順位が低く設定されている角の隣は、例えば左上と右下のどちらに
先に置くか、というのは、まさに優先順位。
ところで、一次元の配列で表現されるもので、この地球上で一番多いものって何か
ご存知ですか?
というところが、まさにその先であったのですが、そこまでたどりつくことなく
挫折。
うぅん、誰かに代わりに作ってもらいたいような気もしています。
ところで
> > 01718/02176 xxxxxxxx 愛して癒して [Vz]othello on Vz Ver 2.1
> > (16) 97/01/31 23:23 コメント数:1
> 23年前のつぶやきが遂に実現するか!!
2020年に生きている本日現在の我々としては、コロナで巣篭もりするしかないので、
この実現を図る時間はたっぷりありますな。
#さぁ、あと数ヶ月で東京オリンピックだ!