« Z80でαβ探索 【ポケコン版リバーシ(オセロ)】 | トップページ | ファミコン対ポケコン »

2014年9月21日 (日)

今更ですが「森田オセロ」ってスゴイ【ポケコン版リバーシ(オセロ)】

あまりにも弱かったポケコンリバーシ。

主たるプログラムを機械語にしたので、先読みも少しは深くなりました。

8ビット時代で「強いオセロプログラム」・・と云えば「森田オセロ」を思い出します。
しかし、その「森田オセロ」が、どの程度の強さ(と読みの深さ)だったのかは、全然知りませんでした。
 
色々と調べたら、あやおりさんのブログに記載されていました。
 
当時のパソコン性能からしたら驚異的なのではないでしょうか??
(発表時期によって、違いはあるかもしれませんが・・・・)
 
「森田オセロ」の仕様(性能)
  ①  1~40手 3~6手先読み 比較的浅い読み。
    序・中盤では変化が広く深い先読みより時間ロスが大きい
  ② 41~46手 5~9手先読み ①よりも高速な評価関数を使用
    局面変化が狭くなってきているので時間がかからない。
  ③ 47~48手 必勝読み (空きマス 13個より)
  ④ 49~60手 完全読み (空きマス 11個より)
 【引用】総評で、「森田オセロは残り12手の読み切りを、平均して3分以内で済ませています。
 この時間はこれまでのオセロプレイヤーが10手読み切る時間に過ぎません。
 【引用終わり】
「スゴイですね!」

では、私が作ったオセロプログラムはどうなのでしょう???

残り13個の空きマスで、必勝読みをさせてみると、速いパターンだと57秒で済みましたが、遅いパターン(負けパターン)だと5分以上かかってしまいました。

※(勝ち・負けのみの判定で、石差は考慮しない。そして勝ちの場所があったら探索を終了させる)


私のプログラムでは、”必勝読み”だけでは無く、序盤・中盤で、(最大)9手なんて、とても待っていられません。

・・・・と云う訳で、
「トモカズオセロ」の仕様(性能)
  ①  1~47手 4手先読み プアな評価関数による
  ② 48~49手 必勝読み (空きマス 12個より)※
  ④ 50~60手 完全読み (空きマス 10個より)
  ※当初は「森田オセロ」と同じく47手からの必勝読みにしていましたが、
   負けパターンの時の多くは、非常に待たされるので、やめました。
 
00
そして、レベルを0から3まで設定出来るようにしたので、初心者でも「強すぎてツマラン」と云う事は無いでしょう。
(上級者ではレベル3でも物足りない・・・・とも言える)
 
 
それでも(レベル3では)ソコソコの強さになったので、主たるプログラムは概ね完成・・・と云う事にしておきます。
(コレって、突き詰めるとキリが無いんですよね。まだまだ枝狩りの性能がイマイチだけど)

・・・んで、またもや拙作ソフト「ヨウコのリバーシ」と対戦させてみました。
 
01y
 
01p  
もはや「ヨウコのレベル1」ごときでは、楽勝です。(先手・後手ともに)
02y
02p
「ヨウコのレベル2」でも勝てました。(先手・後手ともに)
次回は「定石」の実装かな??
これで、序盤で大きく崩れる事は減る事でしょうね。

ハテ「なぜ、いまさら、Z80のプログラミングをしているのだ???」

|

« Z80でαβ探索 【ポケコン版リバーシ(オセロ)】 | トップページ | ファミコン対ポケコン »

リバーシ・オセロ」カテゴリの記事

コメント

ググって来ました。懐かしい話を見付けたので。
アルゴリズムは、最初に登場した時のものですね。この後の新・森田オセロでは、
・序盤は4〜7手先読み(&定石book)
・中盤はまず4手読んでsortしてから(枝刈りが早く済む)、7〜9手先読み。辺のウィングパターン評価が加わった
・残り16手から必勝読み
に成ってた記憶。更に私が改造して「CRT割込みOFF」にしたら残り13手から完全読みでも時間足りてた記憶。

解析して驚いたのは一切LDIR命令を使ってないこと。その前の優勝者の小山オセロまで皆LDIR命令だらけだったのに。
アルフォス(ゼビウスもどき)の高速スクロールもそうですが、LDIRのような便利命令を使わず、push命令を並べては、
pop命令を並べてブロック転送してて、ハード的にZ80のM1ピンが最速で回せるのは実はLDIRのような専用便利命令
ではなくpush/popだったということ。最速でも1MHzでしか回らないZ80と当時の80ns D-RAMだけど、今の3GHz超の
intel Core-i時代に成ってもD-RAMのサイクルは60nsまでしか向上してないのでキャッシュミスしたら当時と大して
待たされる時間は変わらないので、ノイマンボトルネックは重要という不変の知見。

投稿: kobe1995 | 2017年10月24日 (火) 03時38分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 今更ですが「森田オセロ」ってスゴイ【ポケコン版リバーシ(オセロ)】:

« Z80でαβ探索 【ポケコン版リバーシ(オセロ)】 | トップページ | ファミコン対ポケコン »