リバーシソフトを作りたい!

このエントリーをはてなブックマークに追加
1リバーシ
リバーシのプログラムってどうやって作るのか語ってちょ。
参考↓
http://www.comp.reversi.net/
2デフォルトの名無しさん:2001/04/05(木) 22:32
べつに断る必要はないよ。作りたければ勝手につくれば。
3デフォルトの名無しさん:2001/04/05(木) 22:37
思考ルーチンは別としてルールぐらい初心者でも作れるだろう。
ちなみにリバーシとオセロは違うものだ。
リバーシは細かいルールはないし、細かいルールを指示する団体もない。
リバーシを作る上で重要なのは細かいルールをどうするかだ。
オセロでは細かいルールは決まっている。だが知る人は少ない。
たとえばパスの処理。
リバーシ、オセロはどこにも打つも事ができない状態、いわゆるパスが
発生する。
このときどうすればいいのか?
オセロでは単純にパスだから相手の人が連続して打てばいいというので
はなく、パスになった人は相手に石を一個あげないといけない。
リバーシではこんなルールの規定があるのかないのかはっきりしない。
リバーシ連盟なんてないからです。
よって、「リバーシ」と名付ける場合、ルールに気を使う必要がある。
なお、オセロと名付けてあってもオセロのルールになってない素人プログラム
はたくさんある。
ほとんどの人はオセロの正式ルール知らないからね。
4名無しサンプリング@48kHz:2001/04/05(木) 22:39
http://www.d1.dion.ne.jp/~yas_bear/brevpro.html
の外部ルーチンとして作るのはどうなんでしょうか。

中盤は一石返し。
5長谷川五郎:2001/04/05(木) 22:46
オセロは全く新しいゲームではない。
日本人である長谷川五郎が考案したものでもない。
昔から、ほとんどオセロと同じゲーム、リバーシ、源平碁というものがあった。
ただ、連盟がなかったため細かいルールまではなく適当な部分があった。
「オセロ」と名前を変えまるで自分が考案したかのように連盟を作り登録商標
にまでしたのが現存する日本人長谷川五郎だ。
連盟を作り普及させたという功績は認めないといけない。
しかし、なんかやり方が汚いような気がする。
別に昔からある既存のゲームで金儲けしてもいいんだが、名前変えて私が考案
しましたはないだろう。
6>3:2001/04/05(木) 23:14
>パスになった人は相手に石を一個あげないといけない
これルールなの?
7デフォルトの名無しさん:2001/04/05(木) 23:21
ネットワーク対戦型リバーシのプロトコルを考えよう
っていうスレにしちゃだめですか?
8デフォルトの名無しさん:2001/04/05(木) 23:48
強力な評価関数を作ろう
っていうスレにしてもだめですか?
93:2001/04/06(金) 00:35
>>6

オセロ連盟の正式ルールです。
知らない人が多いのでリバーシ風に適当に遊んでいる人多い。
ルール知らないくせにプログラマが練習でよく作るので間違ったルールの
オセロは多いです。
ルールでケチつけられたくないならオセロと名乗らずリバーシと名付ける
のが無難。
リバーシ連盟なんてどこの国にもなく正式ルールを定義して指示する団体
がないのでルールでケチつけられることはあまりないだろう。
ケチつけられても正式ルールなんてないんですですまされる。
ただ、リバーシとなづけるとこのときのこの場合はどういうルールにして
いるんですか?どうしてそうしたんですか?とつっこまれることはあるか
も知れないけどね。
ただ、世界的にあんまり人気ないんで細かいこと気にする人は少ないけどね。
オセロとリバーシが全く同一だと勘違いしているプログラマーが多いのは
困った問題ですね。
オセロ連盟の努力が足りないんでしょうか。
というか、パス処理のルールがなんかオセロはぶっとんでいるのが原因で
しょうね。
どうしてパスになった人が石を一個相手にあげないといけないのか?
長谷川五郎はパスになった状態を打てないのだから悪い状態だと解釈し
そうなった人にペナルティーを課したいと思ってこういうルールにしたの
だろうが、なんかいまいち納得いかないルールだ。
なお、オセロの正式の試合ルールでは対局は先手後手を入れ替えて交互に
2回行う。
そして2局の石の合計で勝ち負けを決める。
一勝一敗でも引き分けではなく、合計の石の数が多いほうが勝ち。
囲碁将棋オセロのは先手後手の不利有利があり、先手のほうが有利といわ
れている。
オセロでは先手後手の不利有利を少しでもなくすために2局で1局の勝負
とするルールをとっている。
ただし、これは正式な試合用ルールで通常の遊び用では1局で勝負を決めて
かまわない。
リバーシでは1局で勝負を決める。
長谷川五郎氏は将棋の7番勝負を先手後手の不利有利があると非難している。
先手後手を交互に偶数回やらないと不公平だという理論だ。
まあ、オセロのプログラムを作っている人もこんなことは知るまい。
10デフォルトの名無しさん:2001/04/06(金) 00:37
ソースコードみたい。自分入門者なのでアプリのソースが見たいです
作ったら公開してチョ。お願いします
C言語でお願いします
11デフォルトの名無しさん:2001/04/06(金) 07:40
石を渡すのは最後に相手の石が足りなくなるからじゃないのかな
ペナルティとかじゃなくてさ
つーかなんでそれがペナルティになるのかわからん
そもそもコンピュータオセロでは持石の数なんて関係ないし
こんなルール取り入れようがないでしょ
12名無しさん:2001/04/06(金) 15:50
>>11
俺もそう思う。
それにオセロ&リバーシは後手の白石有利なのはっきりしてる。
3は電波でも受信したんだろう。その手の電波は囲碁板のほうが受けると思うが。
13デフォルトの名無しさん:2001/04/06(金) 16:35
>>9のルールに従うなら、
1局目で7個以上の差をつけて勝ったら、
2局目は最初から2回パスすれば、勝ち?
14デフォルトの名無しさん:2001/04/06(金) 18:28
>13
書き込む前に少し考えろ。
15デフォルトの名無しさん:2001/04/08(日) 23:37
>>11

本当に後手有利なの?
たしかに順当に行けば手止まりを打てるけど、実際に指し手の木を作ったらどうなるんだろ。

>>13

ごめん。どんなアルゴリズムでそうなるのか、俺にはさっぱり理解できないや。
というか、最初から2回パスって何?
・・・
・・・
・・・
わかった・・・。理解しちゃった。

オセロの正式なルールでは、一箇所でも打てるところがあれば打つのは義務です。
16デフォルトの名無しさん:2001/04/09(月) 00:11
ド素人の質問ですけど、チェスとか将棋に比べて組み合わせ数が少ないと思うんだけど、
今のスパコンとかでも、最前手(と、最前手を打った場合に最終的に先手後手の
どちらが勝つか)は判らないの?また、単純なα-βカットだけで、今のPentiumiii
とかだと何手先位まで読めるの?(遊べるくらいの時間-例えば1手二、三分位まで
として)
17デフォルトの名無しさん:2001/04/09(月) 00:22
ちゅうか、オセロは全パターン既に読めてるってどこかで聞いたけど
気のせいだったのかしらん。
189:2001/04/09(月) 01:33
>>11

|そもそもコンピュータオセロでは持石の数なんて関係ないし
|こんなルール取り入れようがないでしょ

意味がわからん。
私もオセロのプログラムを作ったことがあるが打つところがない(パス)のときは
ちゃんとパスになったほうの石をマイナスし相手の石をプラスする処理
をつけた。
この処理を取り入れようがない?
意味がわからない。
実際には白が有利なのかも知れないがオセロ連盟のトップの著書では先手有利と
はっきりかかれている。
ただし、その長谷川五郎氏が世界で一番強いわけではないから間違いであるかも
知れない。
あと、パスなどのルールが違う場合はどちらが有利になるかも変わってくるかも
知れませんね。
オセロのルールについてどうこういう人は最低限オセロの本でルールを調べてか
ら発言して欲しいと思う。
別に知らないなら知らないでいいと思うよ。
知らないことを知ったように書いても偉くないんじゃないかな。
19デフォルトの名無しさん:2001/04/09(月) 01:38
というかおまえら長谷川五郎氏の著書を読んでないだろ。
読んでから反論しても遅くないよ。
読みたくないならオセロについてかたらんでええ。
長谷川五郎氏がパスについてどのような考えを持っているかも著書を
読めばわかる。
想像でしゃべらんでもええ。
20デフォルトの名無しさん:2001/04/09(月) 01:44
>>16

最近は単純αβだけじゃないからよくわからないけど、

単純αβだけなら7手先まではストレス無く読める。
RCPだのハッシュだの使えば9手くらい読めると思う。
21デフォルトの名無しさん:2001/04/09(月) 02:18
>>20
えっ、そんなに少ないんですか?(^^;
高校生くらいに遊びで386でつくったリバーシは1分くらいで
7手先位まで、終盤は10手以上前から(ちょっと記憶があい
まい)最後まで読んでいた記憶があるのですが…。
もちろん素人考えで作った(四隅の評価値が異様に高い、
水平線問題など考えられていない)ものなので、抜けが沢山
あると思いますが…。
22デフォルトの名無しさん:2001/04/09(月) 02:20
つーか、序盤の20数手は定石化されてて
データベース読むだけだったような。
ついでの後半20数手も完全に読みきれるから、
もはや中盤しかヒューリスティックに考えるところがない。
23デフォルトの名無しさん:2001/04/09(月) 07:28
>>17

へぇー。解が出てるのか。
それをDB化するだけで、最強最速のリバーシソフトが作れるってわけですか。

>>18

「石」って言葉の意図が違うんだろうね。
24デフォルトの名無しさん:2001/04/09(月) 08:04
http://www.comp.reversi.net/str_pro.html
が参考になるかな?(1998年でちょっと古いけど、今はもっと
進んでるだろうね)
25!11:2001/04/09(月) 10:49
>>18
持石がなくなるまで打つんじゃなくて、
盤面が全部埋まるまで打つってことだろうから
持石なんて関係ないと思うのだが。
2611:2001/04/09(月) 11:42
>9
石を渡すってのはここの 4-2(2) に書いてあるやつかい?
http://www.othello.gr.jp/manual.html
これルールじゃなくマナーだろ。ゲームの本質とは何の関係もない。
27デフォルトの名無しさん:2001/04/09(月) 11:54
ディープブルーはチェスを14手先まで読むと言う話だけど
リバーシなら割と単純にそれぐらいまで読み切れそうですね。

読みきるのが無理でも、重み付けで先読みすれば十分勝てる
ルーチンができると思いますけど
28デフォルトの名無しさん:2001/04/09(月) 12:37
>>21
ストレス無くって書いてあるからじゃないの。
一分待てばかなりのストレスになりそうだし
20さんのパソコンの性能が 平均位という可能性もあるしね
29デフォルトの名無しさん:2001/04/09(月) 20:17
なんかマヌケが一人いるみたいだね。

黒+白で63個埋まってる盤を想像してみろ。順当に行けば次は白だ。
この時、白がPassするとする。

・・・想像しろ・・・

ターンが黒になるだけで、持ち石なんて関係ないのがわかったか、マヌケめ。

そもそも「持ち石」なんて概念いらないんだよ。
* 盤が全部埋まる
* 双方とも打つ場所が無い
というのが終了条件。

つーか、「持ち石」なんて言ってる奴は、「持ち石を保持する変数」なんぞを
作って、四苦八苦してるんだろう。
30デフォルトの名無しさん:2001/04/09(月) 20:20
>>18
>私もオセロのプログラムを作ったことがあるが打つところがない(パス)のときは
>ちゃんとパスになったほうの石をマイナスし相手の石をプラスする処理
>をつけた。
>この処理を取り入れようがない?
>意味がわからない。

君の思考プロセスが想像出来ないよ。

長谷川某のことはいいからさ、論理的思考できるようにしましょうね。
31デフォルトの名無しさん:2001/04/09(月) 23:22
>>30

「別に取り入れようがない」という意味が分からないと言っているだけで
その処理が論理的に無駄でもいいって事じゃない?

石管理なんてするだけ無駄だけど、取り入れることはできるってことなんでしょ。
32デフォルトの名無しさん:2001/04/10(火) 11:10
>>31
いや、無駄だし。取り入れないで。お願いだから。
33デフォルトの名無しさん:2001/04/10(火) 11:34
>>31
ぢゃ、君の"Hello, World!"プログラムに、三色問題を解くロジックを
入れても、何の問題もないんだ。
34デフォルトの名無しさん:2001/04/10(火) 14:51
なんだそれは。麻雀の問題か。
35デフォルトの名無しさん:2001/04/10(火) 17:27
四色問題はさすがに無理だろうから、三色問題。
36デフォルトの名無しさん:2001/04/11(水) 19:58
ゲーム中、パスした回数をカウントしておいて、ゲーム終了後にその数だけ石差を加減するってのはどう?
37デフォルトの名無しさん:2001/04/12(木) 16:33
>>36
石差は盤面から計算した方がいいんじゃないのかな。
38デフォルトの名無しさん:2001/04/13(金) 17:29
> ゲーム中、パスした回数をカウントしておいて、ゲーム終了後にその数だけ石差を加減するってのはどう?

そういうルールじゃないぞ。
パスしたら、相手の石が足りなくなり、最後に打てなくなるから渡すだけ。
有利とか不利とか全く関係無い。

>>28 にある、
>* 盤が全部埋まる
>* 双方とも打つ場所が無い
>というのが終了条件。

が正しい。

さらにいえば、石差というのは終了盤面からのみ計算される。

囲碁とごっちゃになってない?
39デフォルトの名無しさん:2001/04/13(金) 18:26
関係ないけど、コンピュータが考えているフリをしないゲームは嫌いだ。
リバーシだけでなく将棋とか囲碁とか、
こっちがウンウン考えて打った瞬間に打ち返されると白ける。

局面評価がビミョーなら、わざとウェイト入れるくらいしてくれ。お願いだ。
40デフォルトの名無しさん:2001/04/13(金) 18:45
よく分からんけども、要するに
64マスの盤面に石が64個(最初に1人あたま30個?)しかないから
2人で石をやりくりして打ちませうって話でいいのかな。
41デフォルトの名無しさん:2001/04/14(土) 01:00
なんかミョーなルールがあるんだーと思ったら、
単にマナーの問題じゃねーか。>>26氏感謝。
42デフォルトの名無しさん:2001/04/14(土) 04:58
>>35
> 四色問題はさすがに無理だろうから、三色問題。
どうでもいいことですが、それをいうなら五色問題です。
43デフォルトの名無しさん:2001/04/14(土) 11:57
>>39
あるなぁ、それ。
遅いとムカツクんだけどさ。(東風荘でちんたら打ってるやつとか)
無いものねだりかね?
44デフォルトの名無しさん:2001/04/14(土) 21:02
評価関数をニュロローネトワクーで組んで鍛えてる人とかいるよな。
あれって具体的にはどこらへんをニューロに組んでるんだろか。

石の分布と着手可能手の重み付け...か?
45名無しさん@お腹いっぱい。:2001/04/15(日) 00:31
>>43
プレイヤーの思考時間を計測して、同じ時間だけ考えるっていうのどう?(藁
46デフォルトの名無しさん:2001/04/15(日) 03:46
人間っぽさを演出するパラメータを随所に盛り込みませう。
早打ちにつられて、打つ手間違えるとか。
47デフォルトの名無しさん:2001/04/15(日) 05:29
>>42 四色問題でいいのでは?
三色×
五色○
っていう意味かな。
それはともかく、コンピュータオセロはもはや人間には勝てない
ところまできてるからな。たしか世界チャンピオンと最強プログラムの
対戦が7-0で人間の完敗。
たしかにもはやエンターテインメント性をとりいれないとゲームと
しては成り立たないレベルに突入してるね。
48デフォルトの名無しさん:2001/04/16(月) 00:20
で、結局ルールとしては、>>38の言ってることでOK?
最初のほうで長谷川某がどうこうとか言ってた人は
何か反論無いの?
49デフォルトの名無しさん:2001/04/16(月) 14:22
ルールを議論する前にさっさと作ってしまう奴はいないのかよ、
なさけな。
50デフォルトの名無しさん:2001/04/16(月) 14:37
>>49
ルールが不明なものを、どうやったら作れる?
51デフォルトの名無しさん:2001/04/16(月) 14:38
>>1=49
ケケケ
52デフォルトの名無しさん:2001/04/16(月) 14:55
>>49
このマナーと、さっさと作ってしまうことと何の関係があるのだ?
53デフォルトの名無しさん:2001/04/16(月) 15:17
つくったよ〜ん。
すっごい弱弱な敵だけど。
54デフォルトの名無しさん:2001/04/17(火) 22:16
こんなのもあったよ。
&nbsp変換しないとすげー読みずらい。なんか最後変だし。
http://piza.2ch.net/test/read.cgi?bbs=tech&key=../kako/967/967985026&st=222&to=228
5553:2001/04/18(水) 02:43
せっかく作ったのに反応が無い.......
俺の三時間が無駄に終わってしまった...

そりゃぁ、仕事中に作っちゃったけどさ。

鬱だ。
56デフォルトの名無しさん
俺も作った。

・・・他のソフトに比べると死ぬほど弱かった。
でも俺、いまだに勝ててない。

鬱だ。