広島市立大3年生の時、LISPとOpenGLによるオセロゲームを作成する実験演習があった。
そして、この制作したプログラムを競わせる
コンピュータオセロ大会
を開催するのが我が学科の特徴であり恒例だった。
……もう、やってないっぽいけど。
で、見事私が優勝!!
当時はローカルテレビ局も取材に来ており、夕方のニュースで放送された。
もともと高校時代に大学パンフレットを見た時から、この優勝を一つの目標にして受験した。
オセロだけでなく将棋や中将棋、チェスやチェッカーなどあらゆるテーブルゲームで4級、5級程度の実力を持っていたからね。
オセロなんて中学生時代に紙に書いて授業中に回覧しながら戦ってたこともあり、何度も先生から叱られてたわww
そんな状況だから、授業の一環レベルの大会なら優勝できると思っていたし、実際に3年後に優勝をした。
そんな思い出のあるオセロプログラムなので、先週WebAssemblyを利用してブラウザ上で対戦できるようにしてみた。
本当はそれだけの日記のつもりだったがソースコード眺めているうちに色々と思い出したので、中年オジサンがちょっと語ります。
……ようするに、日記のネタ切れ。
大学生時代のオセロと僕
大学は地元の公立大学に進学した。
もともと合格率80%だったので余裕合格可能な大学を選んだ。
で、コンピュータオセロ大会が開催されるという事で大学1年生の時から色々と準備を始めた。
- オセロ段位者が在学しているのではないか?
- 自身でオセロの思考エンジンを作れないのではないか?
- 他の学生がOSS使って最強思考エンジンを作るのではないか?
敵を知り己を知れば百戦危うからず。
オセロ段位者が在学しているか?
当時は
オセロや将棋が強い人はある程度強いゲームエンジンも作れる
という事がまことしやかに囁かれた時代だった(今は機械学習使って沢山の棋譜を集めれば強くなる)。
だから、まずはオセロや将棋等のテーブルゲームが強い人を探すことにした。
我が大学には
テーブルゲーム研究会
なる
プログラミングとテーブルゲームをこよなく愛し、切磋琢磨している
と学校パンフレットに書かれたサークルがあった。
オセロゲーム好きなら、きっと このサークルにいるだろう。
と、扉を叩いてみたが そもそも麻雀かマジックギャザリングしかやってない……。
これ、雀荘クラブとか名前変えようよ……
そして一ヶ月程度 所属してみたがオセロに強い人が扉を叩くことはなかった。
オセロの勝ち方をロジック化できない?
テーブルゲーム研究会では数名の人はゲームプログラミングもやっており、入門者用にプリント用紙を渡されて学ぶように指示が出た。
その際、同じサークルの同期から次のようにマウントをとってきた。
今からでポインターの本質まで理解できるかなぁ(笑)
で、何とも居心地が悪かったので、このサークルには正式に入部していない。
相談者がいなくなったので……
大学1年生時、タブブラウザ「Sleipnir」の生みの親、柏木泰幸氏が当時手掛けていたオセロゲーム「BearRev」に関して質問メールを投げオセロ思考の基本を色々と教えて頂いた。
大学2年生時、市場に出回っているオセロゲームの書籍と強いオセロゲームソフトに関する情報を集めまくった。
そこで「発展的開放度理論」というプログラミングに最適なロジックが書かれているのを見つけた。
「このロジックは同期の誰にもバレてはいけない!」と必死に思った記憶がある。
で大学3年時、ベンチャー会社で仕事を始めて、Perl、PHP、Javaなどを学んだ。
これによりプログラミングスキルを高めた。
そして、聞けばLISPのオセロプログラミングを歴代の優勝者はC/C++で作り替えていたらしい。
ぶっちゃけLISPなら4手読みが限界のところをC/C++なら6手は読める。
そして終わりの15手前には完全読み切りが可能だ。
ということで大学3年の夏休みはせっせとC/C++言語でオセロプログラムを作り替えた。
他の学生がOSS使って最強思考エンジンを作るのではないか?
最近のAIブームの前から分類/回帰/クラスタリングなどの学習ロジックは沢山存在していた。
当時最強と言われたLOGISTELLOは回帰を使った学習アルゴリズムを採用している。
そして1997年8月、LOGISTELLOがに村上健7段を破ったことで話題になった。
更に、このゲーム思考エンジンは公開されており、論文も存在する。
僕には難しくて論文見て実装は出来なかった。
ただ優秀な同期は沢山いる。
今から相続人選びを心配しているよ(笑)
とか、言う人いたしね。
結果として学習システム、遺伝的アルゴリズムなどを実装した人は数人いた。
ただし当時は精度を上げるための方法が曖昧で
- コンピュータ同士を競わせる
- オンラインオセロで人間と戦わせる
という方法だったので、そもそもLISPで作った一般学生のプログラムにも負け、予選敗退していった。
なお、大学はワークステーションになっており、他の学生が提出したファイルはアクセスし放題だった。
夏休みの間に全生徒のプログラムと何度も対戦し弱点調査や最強ソフトと競わせて定石ファイルに棋譜を登録しておいた。
そこまでして僕は優勝したが、前にも後にもそこまで本気だった学生はいなかったみたいだ。
学生時代から一人で空回りしてたわ……。
【付録】大学院生時代のオセロと僕
大会が終わってもオセロとの関係は続いた。
広くソフトを配付するためにWindows上で動作するソフトウェアを作りたがったが知識不足で断念。
その代わり、XlibによりLinux上でGUIを利用してアプリを作り、研究室のオープンキャンパス等で利用を始めた。
事なくして、自分のサイト上でアプリ公開していたらVinePlus に掲載したいという連絡を頂いた。
2017年にリリースされた「Vine Linux 6.5」でリリースが終了。
VinePlus はVine Linux 対応のアプリケーション集。
そして、今ではAIでも有名な松原仁氏やコンピュータリバーシ研究会代表の石川大介氏とも直接お会いし密にやり取りを開始。
その後、東大生が「Thell」のロジックを公開し、一気に学習システムによる思考エンジン開発が主流になり、僕の役目は終わった。
因みに、オープンキャンパスでオセロの有段者の学生が研究室を訪ねて来たことがある。
案の定、僕のオセロと戦ってもらったが、その彼によって無惨にも僕の思考エンジンはボロ負けをした。
そもそも僕の役目は始まっても無かったのでは?……と思い、その後はオセロの世界から足を洗った。
おわりに
……が、もう20年前の話。
……こんな過去の栄光にすがってるから、20年経ってもうだつの上がらない平社員やってるんじゃんww
もはや実力が資本主義社会で全く通用してないww
世の中にいてもいなくても社会になんの影響も与えてないww
そのくせ「昔は良かった。俺の若い頃は学生時代は一生懸命勉強したもんだ!」
なんて語り始めてるんだから、人生がそこで終わってるじゃんww
© ドラえもん/藤子・F・不二雄/小学館
全部私のことだけどね……。
最後まで読んで頂きありがとうございます。