トップページ⇒tech
56コメント24KB

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

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

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

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

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

>>13

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

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

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

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

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

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

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

>>18

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

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

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

・・・想像しろ・・・

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

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

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

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

長谷川某のことはいいからさ、論理的思考できるようにしましょうね。
0031デフォルトの名無しさんNGNG
>>30

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

石管理なんてするだけ無駄だけど、取り入れることはできるってことなんでしょ。
0032デフォルトの名無しさんNGNG
>>31
いや、無駄だし。取り入れないで。お願いだから。
0033デフォルトの名無しさんNGNG
>>31
ぢゃ、君の"Hello, World!"プログラムに、三色問題を解くロジックを
入れても、何の問題もないんだ。
0034デフォルトの名無しさんNGNG
なんだそれは。麻雀の問題か。
0035デフォルトの名無しさんNGNG
四色問題はさすがに無理だろうから、三色問題。
0036デフォルトの名無しさんNGNG
ゲーム中、パスした回数をカウントしておいて、ゲーム終了後にその数だけ石差を加減するってのはどう?
0037デフォルトの名無しさんNGNG
>>36
石差は盤面から計算した方がいいんじゃないのかな。
0038デフォルトの名無しさんNGNG
> ゲーム中、パスした回数をカウントしておいて、ゲーム終了後にその数だけ石差を加減するってのはどう?

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

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

が正しい。

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

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

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

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

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

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

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

鬱だ。
■ このスレッドは過去ログ倉庫に格納されています