トップページ⇒tech
179コメント55KB

世界最強のオセロプログラム

■ このスレッドは過去ログ倉庫に格納されています
0001オセラーNGNG
ロジステロを越す最強のオセロプログラムを作りたいのですがどうすればよいのでしょうか?
0002 NGNG
>>1
まずはLogistelloで何をやってるか研究せい。
0003デフォルトの名無しさんNGNG
全手解明とかはまだされてないの?
0004デフォルトの名無しさんNGNG
全手解明出来そうだな。
つうか、自明なんで誰も相手にしてないだけじゃない?
0005デフォルトの名無しさんNGNG
>>3
わかんないけど、オセロだったらマシンパワーさえあればできそうだよね。
0006デフォルトの名無しさんNGNG
全手解明は今のところされてないはず。20数手先までが今の限界。
ちなみに人間の頭脳ではプログラムにかなわないそうだ
0007デフォルトの名無しさんNGNG
それよりも、血液型の収束問題をシミュレートするプログラムを
作ってください。結果を教えてください。
0008デフォルトの名無しさんNGNG
オセロプログラム作ったことあるよ。あんまり強くないけど。
探索の基本の勉強にはなるよね。
0009デフォルトの名無しさんNGNG
底の浅いゲームから順にコンピュータが人間を上回ってゆくようだね
チェスも人間を超えたし

将棋は当分人間が上だろう
最後に残るのはやっぱり囲碁かな?
0010デフォルトの名無しさんNGNG
囲碁よりは将棋の方がムズイ。将棋は取ったコマが復活するし。
0011デフォルトの名無しさんNGNG
>>10
でも、現在では将棋の方が、まだプロに近いはず。
囲碁は序盤から可能な手が多すぎ。盤上を上手く分割して
部分問題にして解いてやらないと、きっと無理だと思う。
0012デフォルトの名無しさんNGNG
オセロならアルゴリズム自体は簡単そうですね。
最初の1手はどこに打っても同じだから、全部で59*58*57・・・3*2*1とおり。
何桁ぐらいなんでしょう。
0013 NGNG
>>12
・・・オセロはひっくりかえせないところにはおけないという
ルールを忘れてないか?
まあ、上はそれで抑えられるけど。
0014デフォルトの名無しさんNGNG
>>12
実際における場所は一部。
0015デフォルトの名無しさんNGNG
せめて64!と書こう。
0016デフォルトの名無しさんNGNG
>>15
既に4つは埋まっているから60!(細かい突っ込みスマソ)
0017デフォルトの名無しさんNGNG
ミニマックス法を使えば弱いのは作れます。
しかし強いのをつくるには探索の知識とオセロの知識と数学的洞察力がさらに必要です。
将棋や囲碁よりは浅いけど、オセロも意外に奥が深いと思います。
0018デフォルトの名無しさ」んNGNG
ドリキャスのリバースは異常に強かった
勝つのに苦労した。。。。
あれが最強だと思うが
0019デフォルトの名無しさんNGNG
外周に置くとふちが盗られちまうんだよな
そこらへんも、考慮にいれな
まぁ、強い奴はわざと、置かせるけど
0020デフォルトの名無しさんNGNG
>>18
ロジステロのほうが強いと思われ
002117NGNG
こういうたぐいのゲームを作るのは非常に楽しいのですが、
普段の金になる業務よりも格段に難しいので、
くれぐれも時間は大切にしてください。
0022デフォルトの名無しさんNGNG
>>17
まあ、探索法というのは勉強すればどうとでもなるとして、
問題は評価関数をどう組むかだよね。
統計的な知識も必要だし、パラメータの最適化もせないかんしで。
0023デフォルトの名無しさんNGNG
jtyjtyjtyjtyjtyjtyjtyjtyjtyjtyjtyjty
0024デフォルトの名無しさんNGNG
>>22
例えば迷路ではゴールまでの距離を評価値にすれば最適なのですが、
オセロなどのゲームでは評価関数が人間でもよくわからない。
こういう場合評価値をより確実にするために評価関数のための探索が必要になります。
つまり探索法と評価関数とは別物ですが互いに絡み合っている。
002517NGNG
探索法の基本アルゴリズムは簡単ですが、
実際には探索法をどのようにするかも評価関数と同じくらい重要です。
0026デフォルトの名無しさんNGNG
オセロなら先手だか後手だかの必勝法はあったはず。
002717NGNG
>>26
必勝法が見つかった時点でそのゲームは終わりですね。面白さ0となります。
ならば最強のロジステロは必勝法を使ってくるわけですか?
そうとは思えません。
0028デフォルトの名無しさんNGNG
>>26
必勝法が見つかっているのは連珠だよ。
オセロでは今のところ見つかっていない。
ただ、真面目にオセロを打っている人間の感想には、
白番(後手)有利というものが多い。
0029 NGNG
>>25
 ええ、もちろんそのあたりは認識してます。
 ただある程度まともな評価関数を組まないと、「弱い」プログラム
もつくれないだろうなぁ、と思ったもので。
0030デフォルトの名無しさんNGNG
AI知らんのだけど定石とかは使わないの?
0031 NGNG
>>22
 えっと、評価関数のための探索というのは、TD法みたいな開発段階
でパラメータ最適化とかのためにする探索のことでしょうか? 
0032 NGNG
>>30
 序盤では使います。
 ディープブルー(チェス)では、終盤の情報をすべて網羅していたり
もするみたいです。
0033 NGNG
すみません
>>31は>>24あてです。
0034デフォルトの名無しさんNGNG
>>31
違います。
例えば、3手後に角が取れるということがだいたいわかっているとします。
この場合その3手後まで探索したほうがよりよい評価値がえられます。
その場合の探索は通常よりもファジーな探索でいいことが多い。
0035デフォルトの名無しさんNGNG
>32
その場で計算しないで事前に出した最適な手を打つってことかな。
なんかずるい感じがするけど、プロもそうやってるみたいね。
003617NGNG
>>31
説明がいいかげんでしたね。
別の例のほうかいいかもしれません。
白黒の置ける数を数えるとします。
実際には黒番なので白は置けないのですが、置けると仮定して探索し、置ける数を得ます。
こういう感じの評価関数の補助探索です。
0037 NGNG
>>34
 この例はいわゆる水平線除去の話でしょうか?
 といいますか、実際に「3手後に角が取られそう」などといった情報
を探索なしにわかることができるのでしょうか?

>>36
 パスした場合も考える、null-moveとかいうやつと考え方は一緒でし
ょうか? この例ですと、あくまで相手の可能手の数を調べるだけで実
際に探索をしているというわけではないと思いますが・・・。
0038デフォルトの名無しさんNGNG
>>37
水平線除去と同じことですね。
角がとられそうというのは、ファジーな探索で得た情報とします。
速度優先で正確さを欠いた補助探索をした場合の話しです。

1手分の探索と計算量は大差無いから探索と言っても差し支えないと思うのですが。
0039 NGNG
>>38
 水平線のことで考えると、どのようなときに水平線がおこるかは評価関数による
から、水平線の除去をするなら、評価関数と切り離せないという事ですね。
 すみません、理解しました。

 いや、探索法の話でしたので、この話は直接探索法とは関係ないかなと思いまし
たので・・・。
0040デフォルトの名無しさんNGNG
ロジステロは、新規局面では幅優先探索で7〜8手、
あとは3年間の学習で得た定石情報を使う。

以上
0041本職NGNG
AlphaBetaもしくはその亜流、Transposition Table,
History Heuristic etcその他コンピュータチェスで開発された
探索手法をすべてぶち込んでも多分Logistelloに勝てるものは
そう簡単にはできない。
それに定跡と終盤データベース+読み切りを装備してようやく
スタートラインと思われるが、そのあと、プログラム同士で
対戦させ評価関数や、終盤データベースを自動で作って強く
なるシステム(logistello)を構築しないと難しいと思われる。
が、これはあくまで正攻法であり、logistelloに勝つという
意気込みは素晴らしいし、独自開発でlogistelloに勝てるものが
出来るチャンス無いことも無い。ただしオセロの場合、定跡を外れて
探索をやる局面がゲーム中極端に少ないぞ。
0042DelギコNGNG
   ∧∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜''~(,,゚Д゚) < デザパタでいう所のストラテジーパターンで実装できる!
  UU'UU    \________
 オボエタテノ コトバヲ ツカッテミ田 カッタ ダケ
0043DelギコfinalNGNG
評価関数やら探索手法について分かり易く説明してるHP気ボン。
0044デフォルトの名無しさんNGNG
>>43

何が分かり易く、だよバカ。本とか論文読め。
0045デフォルトの名無しさんNGNG
オセロの必勝法って前ニュースでやってた気がする。
最近見つかったらしいけど詳しくは知らん。
0046デフォルトの名無しさんNGNG
全手解析できたら先手か後手必勝のどっちかだって証明できた気がする
0047デフォルトの名無しさんNGNG
>>46 先手必勝かドローのどっちか
0048デフォルトの名無しさんNGNG
>>47
後手必勝ってこともあると思うけど。
0049デフォルトの名無しさんNGNG
まぁ、オセロならいつかは見付かるとはおもったけどな。
チェスもいつかは出来るとおもう。

囲碁と将棋はどっちが先に終わるかなー。
なんとなく、囲碁のほうが先に解析されそう。
0050デフォルトの名無しさんNGNG
> 囲碁と将棋はどっちが先に終わるかなー。
> なんとなく、囲碁のほうが先に解析されそう。

んなこたぁない
http://plaza9.mbn.or.jp/~sugis/uro/column/1.html
0051デフォルトの名無しさんNGNG
必勝法みつかったの?
じゃ、ルール改正して盤を10x10に変更だな。
005217NGNG
>>49
将棋と囲碁をやったこと無い人は変な誤解をしているみたいですね。
将棋プロ、囲碁のプロの
目から見れば現在最強プログラムは赤子同然です。本当に弱い。
10年以上はそういう状況が続くと思います。

>>51
同意!俺も考えたよ。
0053 NGNG
>>52
 将棋に関してはアマ3段程度と言われてるから、そのうちプロレベルには
なると思います。まあ、トッププロに勝てるようになるには10年くらいはか
かるとは思いますが。
 あと、オセロの研究などでは盤面大きくしたものを使ってやっているとい
う話しを聞いたことがあります。
0054デフォルトの名無しさんNGNG
世界最弱のオセロ (絶対相手に勝たせる) ってどうやったらつくれんだろ。
単に評価関数を符合反転すればできるのかな?
0055デフォルトの名無しさんNGNG
>>54
YES
0056 NGNG
>>54
 まあ、基本的にはそれでいいと思う。

 その話とは少しタイプが違うけど、いかに相手に手を抜いてると思わせないで
相手に勝たせるか(つまり接待)、というような研究もきいたことがある。
 浅く読むといい手だけど、深く読むと悪い手を優先的に打つとかそんな感じで・・。
0057デフォルトの名無しさんNGNG
>>56

そうなんだー。
接待ってどうやるのか気になってたんだよ。

ためになるね、このスレ。age。
0058デフォルトの名無しさんNGNG
世界最弱の、っていう発想に笑ったよ

最弱プログラム集めてトーナメントとかおもしろそう
0059デフォルトの名無しさんNGNG
> 世界最弱

オセロならではの発想ですな。
将棋や囲碁だと成り立たないよね。
0060デフォルトの名無しさんNGNG
囲碁で最弱目指すと後手が必ず負けるのかな?
0061デフォルトの名無しさんNGNG
先手の負けに決まってんじゃん。
投了すればいい。
0062デフォルトの名無しさんNGNG
>>60
オセロは打てるところがあればパスできないよね?
囲碁だとパスできるので勝ちそうになったところでパスすれば
絶対勝つことはないと思うけど。
0063デフォルトの名無しさんNGNG
囲碁の場合はコミがあるから
先手は1手も打たなければ必ず負けることができる
006460NGNG
囲碁ってパスできるんだっけ?目が奇数だから最後にうったほうが相手
の石全部とって勝っちまうかと思った。
006562NGNG
>>64
パスできないと、セキを崩さないといけなくなるしね…

つか>>61,>>63が結論やね…。
0066おせーてNGNG
類似する探索木を重ね合わせて計算量を削減する手法
は何て言いますか?
0067デフォルトの名無しさんNGNG
囲碁ってお互いがパスをした時が終了じゃないの?
0068デフォルトの名無しさんNGNG
>>67
そうだけど?
0069デフォルトの名無しさんNGNG
67が強烈に抜けてる発言をしました。
007067NGNG
わりぃ、7ならべと勘違いした
0071デフォルトの名無しさんNGNG
>>66
知らん、というか重ね合わせても計算量は減らないのでは?
重ね合わせるメリットとしては、
木の重なり具合で幹枝のような木の太さが評価できるということかな?
0072デフォルトの名無しさんNGNG
ところで>>1はスレたててどこかへ逝ってしまったのかな?
0073デフォルトの名無しさんNGNG
>>66
メモ化みたいなことを言ってるの?
0074デフォルトの名無しさんNGNG
漏れが接待オセロをするとなると、
クライアントは指定打ちの連続になって(+д+)マズ-
でも、一応はクライアントに勝たせる。(゚д゚)ウマー?

必敗読み+完全読みって、どうよ?
0075 NGNG
不確定要素ばかりだけど、
麻雀って思考プログラム存在してるの?
全部イカサマだと思ってるんだけど。
0076デフォルトの名無しさんNGNG
脱衣麻雀しかやったことないのか?
0077デフォルトの名無しさんNGNG
>>75
ゲームにいかさまは付き物だ―よ。
0078デフォルトの名無しさんNGNG
ほとんどイカサマだよね。
まれにイカサマでない麻雀もあるよ。七福神麻雀とか・・・
0079デフォルトの名無しさんNGNG
脱衣マージャンでコインいれた瞬間に相手がテンホーってほんとにあるの?
0080デフォルトの名無しさんNGNG
アーケードはたいていイカサマだろうが、
PC用の真面目な麻雀ソフトもあるよう。
0081デフォルトの名無しさんNGNG
昔NECのガイジン(オセロのプログラム作った人)から聞いた話だと、
角の4x4はニューラルネット使って評価してるってさ。
ニューラルネットの学習に時間をかけているそうで。
0082デフォルトの名無しさんNGNG
>>1
いるならば登場してくれ。
そして最強にするために何をしているのかを語ってくれ。
0083デフォルトの名無しさんNGNG
>>81
規模はどれくらいの?
0084デフォルトの名無しさんNGNG
>>1
まずは、当人が森田オセロに勝てるようになれや(w
0085デフォルトの名無しさんNGNG
全手解析されてるって、DCのリバーシに書いていなかったっけ?
たしか、それでは後手有利だったような?
0086デフォルトの名無しさんNGNG
>>85
全手解析されてて"有利"ってなんだよ。
先手・後手必勝/引分 以外ありえないだろ。解析されてたら。
008785NGNG
>>86
だね、書き方悪かった。
後手の勝ち。
でも、通じたでしょう(汗
0088デフォルトの名無しさんNGNG
DCの奴は異常に強いって前にも書いたけど、
本当に強い、ヤフとかの対戦のレベルじゃ話にならん。
ロジステロってのと戦えるの?結構やってみたいんだけど。
0089デフォルトの名無しさんNGNG
たしかに、強すぎ。
俺がぬるすぎるせいもあるだろうけど、終盤打てるところが一箇所しか無いときが続いたら、
真っ黒にされた。相手はほかに幾つでも打てるところがあったのに。
これも、学習するらしいけどどこまで行けるんだろう。
0090デフォルトの名無しさんNGNG
ある盤面で自分の確定石が何個あるのかを調べるアルゴリズム
を考えているのですが、なかなか思いつきません。
スマートな方法はあるでしょうか?
0091デフォルトの名無しさんNGNG
>>88
ロジステロは、世界チャンピオンでも歯が立たないくらいだから・・。
http://cmall.cplaza.ne.jp/ot/v_ot.html
ここで戦えるっぽい。

ロジステロで何をやっているか知りたければ
http://www.neci.nec.com/homepages/mic/log.html
こちらを。
0092デフォルトの名無しさんNGNG
NECなのかーへー
0093デフォルトの名無しさんNGNG
>>90
汚いですがどうぞ(C++)
bool SettledPiece(Piece* map,int mmm[100],int from,int to,int dir,int dir2)
{
 if((mmm[from]|dir2)<255)return false;
 if(map[from]==map[to])
  mmm[to] |= (dir+dir2) & mmm[from];
 else if(map[from]==-map[to])
  mmm[to] |= dir & mmm[from];
 else return false;
 if((mmm[to]|dir2)==255)
  return true;//確定および 準確定
 return false;
}
0094デフォルトの名無しさんNGNG
void CountSettledPiece(Piece* map,Piece p,int& mines,int& oppos){
 mines=0;
 oppos=0;
 static int mmm[100];
 int z;
 for(z=0;z<100;z++){
  mmm[z]=0;
 }
 for(z=1;z<9;z++) {
  mmm[z+10] |=1+2 +8+16+32 +128;
  mmm[z+80] |=1+2 +8+16+32 +128;
  mmm[z*10+1]|= 2+4+8 +32+64+128;
  mmm[z*10+8]|= 2+4+8 +32+64+128;
 }
 // 1北 2北東 4東 8南東 16南 32南西 64西 128北西
 static Array<int> openlist;
 static Array<int> nextopenlist;
 if(map[11]!=Space)
  openlist.Assertz(11);
 if(map[18]!=Space)
  openlist.Assertz(18);
 if(map[81]!=Space)
  openlist.Assertz(81);
 if(map[88]!=Space)
  openlist.Assertz(88);
 while(openlist.Len()>0)
 {
  for(int i=0;i<openlist.Len();i++)
  {
   z=openlist[i];
   if(mmm[z]==255){
    mmm[z]=511;
    if(map[z]==p)mines++;
    else if(map[z]==-p)oppos++;
   }
   if(SettledPiece(map,mmm,z,z-10,1,16))nextopenlist.Assertz(z-10);
   if(SettledPiece(map,mmm,z,z+10,16,1))nextopenlist.Assertz(z+10);
   if(SettledPiece(map,mmm,z,z-1,64,4))nextopenlist.Assertz(z-1);
   if(SettledPiece(map,mmm,z,z+1,4,64))nextopenlist.Assertz(z+1);
   if(SettledPiece(map,mmm,z,z-9,2,32))nextopenlist.Assertz(z-9);
   if(SettledPiece(map,mmm,z,z+9,32,2))nextopenlist.Assertz(z+9);
   if(SettledPiece(map,mmm,z,z-11,128,8))nextopenlist.Assertz(z-11);
   if(SettledPiece(map,mmm,z,z+11,8,128))nextopenlist.Assertz(z+11);
  }
  openlist.Clear();
  openlist.Append(nextopenlist);
  nextopenlist.Clear();
 }
}
0095デフォルトの名無しさんNGNG
void CountSettledPiece(Piece* map,Piece p,int& mines,int& oppos){
は確定石の数を数える関数です。局面が複雑になると数え間違いますので悪しからず。
mapは盤面(点(x,y)はmap[x+y*10])
pは色 0無 1黒 -1白 2枠
minesはpの確定石
opposは-pの確定石
英語がおかしいのは昔作ったため。
0096デフォルトの名無しさんNGNG
Piece型 Space=0,Black=1,White=-1,Border=2
Array<int> aは自作した一次元配列
a.Assertz()は末尾に追加
a.Clear()は全消去
a.Append()は他の配列を末尾追加
0097デフォルトの名無しさんNGNG
>>90
アルゴリズムのヒント
確定の定義
・壁(盤外)は確定している。
・隣り合う石(壁)が3方向について確定している場合。
009893NGNG
ただしこれは盤面が変化する度に計算し直す必要があるので
スマートとはいえません。
0099デフォルトの名無しさんNGNG
実際には辺の確定石だけ数えれば十分でしょう。
010093NGNG
ですね。計算時間も馬鹿にならないですし
0101デフォルトの名無しさんNGNG
オセロの盤面評価の項目(序盤〜中盤)

・確定石の多さ
・相手が石を打てる場所の数の少なさ
・自分が石を打てる場所の数の多さ
0102101NGNG
あと、盤面の各場所に点数を付けておいてその合計とか。
角の隣はマイナス、角の2つ隣はプラス・・・etc
010393NGNG
ですね。
それでやっと普通の人を超えるくらいの強さになると思います。
0104デフォルトの名無しさんNGNG
>>97
訂正
確定の定義
・壁(盤外)は確定している。
・8方向のうち4方向(互いに傾きが異なる)について隣り合う石(壁)が確定している場合に確定
0105デフォルトの名無しさんNGNG
そこら辺になると、プログラム組んでる
自分の方が弱くなっちゃうんだよな(^^;


作者の強いオセロプログラムは、強い。
010693NGNG
>>104
うわ、これも間違っている、黒白あることを忘れている。
昔作った関数なんで、すっかり忘れてしまっていた。
0107デフォルトの名無しさんNGNG
>>105
そうそう。
0108デフォルトの名無しさんNGNG
私も同様のアイディアによって評価関数を作りました。
このような評価関数のパラメータうまく調整してもどうしても超えられない壁にぶつかります。
世界最強を目指すには
さらに壁を何個か破る必要があります。
0109デフォルトの名無しさんNGNG
ダウンロードできる最強オセロプログラムっていったら、WZebraかな?
これより強いプログラムにあったことない。(あくまでダウンロードできるもので)
自信ある人はWZebraと対戦してみて。まじで強いから。

まぁ難点をあげるとすれば、英語でプログラム容量が大きいってことぐらいか・・・
0110デフォルトの名無しさんNGNG
ロジステロレベル1に勝ったぞ!
0111デフォルトの名無しさんNGNG
htp://www.iris.dti.ne.jp/~yukinobu/othello/program.htm
ここで、森田の最強リバースと他プログラムの対戦がありました。
森田すげー!と思っていた自分にはちょっとショックです。
0112デフォルトの名無しさんNGNG
>110
棋譜出せ
0113宇都田 篠夫NGNG
オセロって単純だから、ありとあらゆる場合の版上のデータと必勝パターンへのポインタみたいなデータを持つだけで最強になれませんか?
0114デフォルトの名無しさんNGNG
>>113
そりゃ、すべて解析できて、すべてのデータ保持できれば最強になります。
0115デフォルトの名無しさんNGNG
>>114
しかもそれを言っていたら将棋だってチェスだってそうなってしまうよね。
ほとんど不可能だけど。出来るとしたら何年後だろう・・・
0116 NGNG
MasterHandに全然勝てない・・・。有段者への道は遠い
0117宇都田 篠夫NGNG
>>115
チェスは割と簡単にできませんか?将棋は…どれくらいのパターンになるんだろう…。
でもこの調子で計算機のメモリーが増えつづければ……。
正解ルートへのデータ集積が大変っスね。

でもオセロだと大したデータ量じゃなくないですか?8x8のセルがそれぞれ3つの状態をとるんだから…。
あれ、計算式がわからない…厨房でゴメソ。
0118デフォルトの名無しさんNGNG
>>117
8x8のセルがそれぞれ3つの状態をとる時、状態の数は
3^(8*8) で約10^30
ですね。まあ、起こりうる局面というのはもっと少ないだろうけど。
ちなみに、ひとつの局面と必勝手の記憶に、
8*8*log(3)+log(64)(一手の記憶) (底は2) で、まあ、100ビットくらい
かかるとしてこrを3^(8*8)分記憶しようとすると・・・
CDが6×10^22枚分の情報が必要になります。
0119デフォルトの名無しさんNGNG
>>118
って、読み返して恥ずかしくなったので修正。
1対1に対応するハッシュ関数用意すれば、必勝手だけを記憶すれば
いいですね。ですのでひとつの局面あたりlog(64)=6ビットくらいと
いうことでここはひとつ。
いずれにしろ天文学的な情報量です。
0120宇都田 篠夫NGNG
あぁ、まじめに計算すると結構な量のデータですね…なんか感覚的に1Gくらいに収まりそうな気がしたんだけど。
でもオセロの局面ってある部分を上と考えて、四方向にひっくりかえす(説明下手でゴメンナサイ)事ができませんか?
さらに白と黒については完全に反転したデータを同一データと見なせる気がするんですが…。

でもやっぱり計算式思いつかないので厨房sage
0121デフォルトの名無しさんNGNG
>>120
いや、できるけど、それでも1/8にしかならない。
0122デフォルトの名無しさんNGNG
囲碁や将棋の全手解析は不可能だと思う
宇宙の素粒子の数って3の361乗よりは少ないんじゃない?
0123デフォルトの名無しさんNGNG
>>117
宇宙の星の数より多いといわれています。
コンビネーションで計算しましょう。
0124123NGNG
↑将棋の話しね。
オセロは3の64乗
0125123NGNG
3^64≒1000000000000000000000000000000
0126デフォルトの名無しさんNGNG
宇宙全体の陽子の数は 10^80 らしいよ。
0127デフォルトの名無しさんNGNG
サイバーエデュティメントモールって何?
レベル1飽きちゃったよー
もしかして金要るの?
0128デフォルトの名無しさんNGNG
>>117-126
上のほうで出てた
http://plaza9.mbn.or.jp/~sugis/uro/column/1.html
0129デフォルトの名無しさんNGNG
昼飯のスパゲティナポリタンを眺めながら、積年の疑問を考えていた。
それは「なぜナポリタンは赤いのだろうか」という問いである。
簡単に見えて、奥の深い問題だ。

「赤いから赤いのだ」などとトートロジーを並べて悦に入る浅薄な人間もいるが、
それは思考停止に他ならず、知性の敗北以外なにものでもない。

「赤方偏移」という現象がある。
宇宙空間において、地球から高速に遠ざかる天体ほどドップラー効果により、
そのスペクトル線が赤色の方に遷移するという現象である。
つまり、本来のナポリタンが何色であろうとも、ナポリタンが我々から
高速で遠ざかっているとすれば、毒々しく赤く見えるはずなのだ。

目の前のナポリタンは高速で動いているか否か?
それはナポリタンの反対側に回ってみることでわかる。
運動の逆方向から観察することで、スペクトルは青方遷移し、
青く見えるはずなのだ。

逆に回ってみたところ、ナポリタンは赤かった。
よってこのナポリタンは高速移動をしていないと言える。
0130デフォルトの名無しさんNGNG
>>129
それを言うなら「赤方偏移」ではあるまいか…
しかも、赤の反対は紫ではあるまいか…
0131馬鹿NGNG
>>129
常に自分から高速に遠ざかっていると仮定したらどうだろう?
ここで、そんな事はあり得ないと思うのは 只の思考停止でしかない。

そこで、自分の手でナポリタンを持ってみる。
自分の手の長さは有限だと言う仮定の下で有れば、
それが遠ざかって居ないと言える。

次に、光のドップラー効果が起きる状態を、
光の波が引き延ばされる事による波長変化だと
仮定してみる。

その場合、ナポリタンから発せられた光が、
自分とは反対側へ引っ張られている可能性が有る。

ここまで考え、自分は光に嫌われていると言う結論を出し、
私は、冷めかけたナポリタンをほおばることにした。
0132デフォルトの名無しさんNGNG
森田将棋の作者は何年か前に、
30年以内じゃオセロの必勝方法(全手解析)を調べるのは
できないと言っていた(6*6マスのオセロは一日で解けたそうだけど)。
でも不可能じゃなさそうだね。

どうせ作るなら、オセロじゃなくて将棋やチェスを希望(お金にもなるだろうし)。
013385NGNG
激しくごめん。>ALL
全解析は勘違いだった。
>>132の言うとおり(6x6)でした。
ちなみに、白必勝。
鬱です、逝きます。
0134デフォルトの名無しさんNGNG
メンテsage
0135デフォルトの名無しさんNGNG
左上から順番に置けるところを探して、
みつかったら置いていくというアルゴリズムのオセロに
あっさり負けてしまう私でも強いオセロはつくれますか?
0136デフォルトの名無しさんNGNG
>>135
うーん、じぶんより強いのはつくれると思う。
0137デフォルトの名無しさんNGNG
昔ベーマガに載ってたPC-6001用オセロのプログラムは、
マスごとに評価値が設定されていて、>>135 でいう
左上の代りに評価値の高い位置から置ける場所を探す、
というアルゴリズムでした。

やってみたら負けました…。
0138デフォルトの名無しさんNGNG
森田将棋の作者が書いた
「思考ゲームプログラミング」って本、呼んだ人いる?
内容はどんな感じ、絶版で手に入らないだよね。
0139デフォルトの名無しさんNGNG
自作プログラムでLv1に勝ちました。
でも、布石ナイヤ・・・
もう一度やって来ます
0140デフォルトの名無しさんNGNG
>>138
オセロのコツ、
一般的な思考ゲームの考え方、
ミニマックス法、アルファ-ベータ法など基礎的な探索の方法、
森田オセロで採用してる横型探索の方法、
森田オセロver6.1の全ソース
など。

初めて読んだときは感銘を受けました。
とくにオセロのコツは、普通の書店で手に入るオセロの解説本より、簡潔で深いです。
0141デフォルトの名無しさんNGNG
ロジステロLv1 先行 自作プログラム 後攻
0,0左上 7,7右下
BLACK x = 2 y = 3
WHITE x = 2 y = 2
BLACK x = 3 y = 2
WHITE x = 4 y = 2
BLACK x = 5 y = 2
WHITE x = 3 y = 5
BLACK x = 2 y = 5
WHITE x = 5 y = 3
BLACK x = 5 y = 4
WHITE x = 4 y = 5
BLACK x = 5 y = 5
WHITE x = 6 y = 3
BLACK x = 7 y = 2
WHITE x = 5 y = 1
BLACK x = 5 y = 0
WHITE x = 1 y = 3
BLACK x = 2 y = 4
WHITE x = 4 y = 1
BLACK x = 0 y = 2
WHITE x = 1 y = 4
BLACK x = 0 y = 5
WHITE x = 1 y = 2
BLACK x = 1 y = 5
WHITE x = 3 y = 1
BLACK x = 2 y = 0
WHITE x = 0 y = 3
BLACK x = 0 y = 4
WHITE x = 6 y = 4
BLACK x = 7 y = 5
WHITE x = 4 y = 0
BLACK x = 2 y = 1
WHITE x = 3 y = 0
BLACK x = 6 y = 5
WHITE x = 7 y = 3
BLACK x = 6 y = 2
WHITE x = 7 y = 4
0142141NGNG
BLACK x = 6 y = 1
WHITE x = 0 y = 1
BLACK x = 0 y = 0
WHITE x = 1 y = 0
BLACK x = 1 y = 1
WHITE x = 7 y = 0
BLACK x = 6 y = 0
WHITE x = 7 y = 1
WHITE x = 7 y = 6
BLACK x = 6 y = 6
WHITE x = 5 y = 7
BLACK x = 7 y = 7
WHITE x = 1 y = 6
BLACK x = 0 y = 7
WHITE x = 1 y = 7
BLACK x = 2 y = 7
WHITE x = 2 y = 6
BLACK x = 0 y = 6
WHITE x = 4 y = 6
BLACK x = 3 y = 7
WHITE x = 6 y = 7
BLACK x = 3 y = 6
WHITE x = 5 y = 6
BLACK x = 4 y = 7

こんなかんじですた
0143デフォルトの名無しさんNGNG
>>141-142
棋譜より最終的な盤の状態を見たい。○と●を使ってさ。
0144デフォルトの名無しさんNGNG
テンプレ

┏━━━━━━━━┓
┃********┃
┃********┃
┃********┃
┃***●○***┃
┃***○●***┃
┃********┃
┃********┃
┃********┃
┗━━━━━━━━┛
0145デフォルトの名無しさんNGNG
まぁ、最強はオレだけどな。
0146デフォルトの名無しさんNGNG
じゃ、俺とオセロで勝負だ
0147デフォルトの名無しさんNGNG
森田著の「思考ゲームプログラミング」を手にいれる方法はありませんか?
販売もとのアスキーで検索しても、古本屋の検索を利用しても見当たりません。
絶版みたいだし。
0148デフォルトの名無しさんNGNG
ttp://www.lcv.ne.jp/~hhase/asobi/game/gamepzl.html
『一方で昨年でしたかオセロゲームがコンピュータを使って完全に調べ尽くされたそうです。
とはいえ大部分の人にとって、オセロゲームはゲームとして成立する、
つまり「先手が勝つに決まっているんだからばかばかしくてやってられない」
などということはありません。 』

ようやくここまで見つけたけど、ソースが見つからない。
先手必勝なの?
0149デフォルトの名無しさんNGNG
オセロはまだ解明されてない。
このソースは大嘘だ。
6x6オセロなら白の4目勝ちだったか・・・?とにかく白が勝つ。
0150デフォルトの名無しさんNGNG
オセロは偶数理論(最後に置ける後手が有利)が働くようなので
8x8でも白番が勝ちやすいそうだ。ロジステロ同士の対戦では。
0151デフォルトの名無しさんNGNG
北島秀樹って人が作ったオセロでマスターハンドって強いらしいけど。
ttp://www.kiwi-us.com/~hkitajim//othello.html
0152デフォルトの名無しさんNGNG
>>151
本人様ご登場sage
0153151NGNG
>>152
事実なので違うと言っておく。
PC9801時代のフリーウェア本にこの人のが載ってたのを思い出して
本から名前を調べてサイトを検索してみたわけよ。
0154改NGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●○□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┗━━━━━━━━┛
0155デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┗━━━━━━━━┛
0156デフォルトの名無しさんNGNG
否定しても事実は分からない。
宣伝ぐらい許してやれ。
0157デフォルトの名無しさんNGNG
このスレは
一手つづオセロをやるスレになりました
0158デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□□□□□┃
┗━━━━━━━━┛
0159デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□□□□●┃
┗━━━━━━━━┛
0160デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□□□□○┃
┗━━━━━━━━○
0161デフォルトの名無しさん NGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□飛□□□□┃
┃□□□□□□□□┃
┃□□□○●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□□□□○┃
┗━━━━━━━━○
0162デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□龍●□□□┃
┃□□□●●●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□□□□○┃
┗━━━━━━━━○
0163デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃□□□龍●□□□┃
┃□□□●□●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□●□□○┃
┗━━━━━━━━○
0164デフォルトの名無しさんNGNG
>>163
ルールのないゲームはつまらない。
0165デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□西□□□□□□┃
┃□□□□□□□□┃
┃□□□龍●□□□┃
┃□□□●□●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□●□□○┃
┗━━━━━━━━○
0166デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃□□□□□□□□┃
┃□西□□    ┃
┃□□□□□□□□┃
┃□□□龍●□□□┃
┃□□□●□●□□┃
┃□□□□□□□□┃
┃□□□□□□○□┃
┃□□□□●□□○┃ ■□□■
┗━━━━━━━━○
0167横倒しNGNG
         ┏━━━━━━━━┓
         ┃□□□□□□□□┃
         ┃□□□□□□西□┃
         ┃□□□□□□□□┃
         ┃□□□●龍□□□┃
         ┃●□□□●□ □┃
         ┃□□□●□□ □┃
         ┃□○□□□□ □┃
         ┃○□□□□□ □┃
         ○━━━━━━━━┛
          ■
          □
          □
          ■
0168デフォルトの名無しさんNGNG
         ┏━━━━━━━━┓
         ┃□□□□□□ □┃
         ┃□□□□□□ □┃
         ┃□□□□□□ □┃
         ┃□□□●龍□ □┃
         ┃●□□□●□□□┃
         ┃□□□●□□西□┃
         ┃□○□□□□□□┃
         ┃○□□□□□□□┃
         ○━━━━━━━━┛
          ■
          □
          □
          ■
0169デフォルトの名無しさんNGNG
         ┏━━━━━━━━┓
         ┃□□□□□□ □┃
         ┃□□□□□□ □┃
         ┃□□□□□□ □┃
         ┃ □□□●龍□□┃
         ┃●□□□●□□□┃
         ┃□□□●□□西□┃
         ┃□○□□□□□□┃
         ┃○□□□□□□□┃
         ○━━━━━━━━┛
          ■
          □
          □
          ■
0170デフォルトの名無しさんNGNG
          □
          □
          □
         ┏━━━━━━━━┓
         ┃●□□□□□ □┃
         ┃□□□□□□ □┃
         ┃□□□□□□ □┃
         ┃○□□□●龍□□┃
         ┃■□□□●□□□┃
         ┃□□□●□□西□┃
         ┃□○□□□□□□┃
         ┃■□□□□□□□┃
         ○━━━━━━━━┛
0171デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃●□□□□□□□┃
┃□□□□□□□□┃
┃□□□□□□□□┃
┃○□□□●龍□□┃
┃■□□□●□□□┃
┃□□□●□□西□┃
┃□○□□□□□□┃
┃■□□□□□□□┃
○━━━━━━━━┛
01721NGNG
┏━━━━━━━━┓
┃●□□□□□□□┃
┃□□□□□□□□┃
┃ミ ゚Д゚彡□□□┃
┃○□□□●龍□□┃
┃■□□□●□□□┃
┃□□□●□□西□┃
┃□○□□□□□□┃
┃■□□□□□□□┃
○━━━━━━━━┛
0173デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃●□□□□□□□┃
┃ミ ゚Д゚彡ミ ゚Д゚彡□┃
┃ミ ゚Д゚彡ミ ゚Д゚彡□┃
┃○□□□●龍□□┃
┃■□□□●□□□┃
┃□□□●□□西□┃
┃□○□□□□□□┃
┃■□□□□□□□┃
○━━━━━━━━┛
0174デフォルトの名無しさんNGNG
┏━━━━━━━━┓
┃●ミ ゚Д゚彡ミ ゚Д゚彡┃
┃ミ ゚Д゚彡ミ ゚Д゚彡□┃
┃ミ ゚Д゚彡ミ ゚Д゚彡□┃
┃○□□□●龍□□┃
┃ミ ゚Д゚彡ミ ゚Д゚彡□┃
┃□□□●□□西□┃
┃□ミ ゚Д゚彡ミ ゚Д゚彡┃
┃■ミ ゚Д゚彡ミ ゚Д゚彡┃
○━━━━━━━━┛
0175デフォルトの名無しさんNGNG
  ∧ ∧
  ミ,,・Д・彡
〜ミ___ 彡  
0176デフォルトの名無しさんNGNG
やめれ。コピペ荒らしと変わらんぞ。
0177デフォルトの名無しさんNGNG
久々に来たらまだこのスレ生きていた。

>>158-174
ワラタごくろうさん。
ちょっとルール変えればロジステロが日頃蓄積しているデータも役にたたない。
そういう意味で変則オセロって、最強への近道だと思う。
0178voidNGNG
ageg
0179デフォルトの名無しさんNGNG
オセロなら漏れが最強。
■ このスレッドは過去ログ倉庫に格納されています