2011年10月1期プログラム三次元オセロを作ろう
TOP カテ一覧 スレ一覧 削除依頼 ▼
・ 次のスレ
DarkBASIC
【C,C++】 ちょっと問題解いて行け 【勉強】
ひろゆき杯プログラミングコンテスト
【.NET】WCF〜Windows通信基盤技術【通信】
三次元オセロを作ろう
- 1 :09/10/04 〜 最終レス :11/10/28
- この板の皆さんで力を合わせて三次元オセロを作りませう。
どの言語を利用するかも自由です。どのようなコードでも結構です。
試作品が出来たら何でもうpしてください。
ルールは独自のものでもかまいません。
- 2 :
- それでは、ここで三次元の住民のオセロのお二人の登場でーす。
- 3 :
- このスレッドは天才pンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
- 4 :
- N次元オセロなら作ったぞ。各3次元を取り出して2次元に射影して、位置を確認するけど、大抵の奴は気が付いたら負ける/勝ってる。
- 5 :
- どっかのフリーソフトでやったことあるが、
普通のモニタでは見にくい。マウス(とキーボード)で視点変えたり、駒置くのもめんどかった。
http://www.kenko.com/images/product/X357800H_L.jpg
こんなのを電子工作で入出力インターフェースに出来たらやりやすいな
- 6 :
- >>5の画像は四目並べで上から積んで行くだけだけど、
普通のオセロルールの3次元版なら物理的な駒を置くことさえ難しいな
- 7 :
- cpu同士、裏で戦わせるようにして画面には勝敗結果だけ表示。
- 8 :
- AI作ってみんなで戦わせようぜ!
だがGUIは>>1、お前に任せた
- 9 :
- 言語はなにを使った方が得策でしょうか・・・
C++ですかね?
- 10 :
- 今後は勝手にコテを名乗ります。お許しを。
- 11 :
- ウムム これ面白そう。技術的に十分可能だが入力が厄介だなー。
既にある3D表示のカーネルを使えば表示は簡単だけど。
問題は入力だね i,j,k どういれさせるいうか
マウスピックは無理っぽいな
- 12 :
- >>11
まずルービックキューブみたいな盤を想像してくれ。
まぁ8x8x8の盤だとしようか。
どこか外の1平面をマウスクリックで選んで、
そうしたら、その面上の特定の『マス』が選ばれる。そうしたらこのマス上の8ブロック(?)のどこかに置きたいわやけだ。
そこでマウスの真ん中のコロコロで奥行、つまり8ブロック中のどれかを選べるようにして、
選んだら後は適当にマウスクリックで配置。
マスをクリックしたときには分かりやすいように、
そこから選べる8ブロックを半透明の色付き直方体で示したり、
コロコロでの選択中も当該ブロックを色付き立方体で示すと良いかも。
右クリ&ドラッグで盤を自由にくるくる。
- 13 :
- 別にコロコロじゃなくてもいいな。
もう8ブロックから選ぶだけだからそれを普通にマウスで選べるな。
- 14 :
- 三次元空間、ではなく、
三次元時空、としたらどうか。
通常の二次元オセロに過去と未来の概念を導入すると。
過去の盤面に石を置くと未来の盤面もそれに影響される。
時間軸を辿りながら過去を改変して、未来と過去の間に相手の石を挟む。
- 15 :
- >>1
言い出しっぺがまずはプログラムを出せよ
話はそれからだ
- 16 :
- >>12
それスゲー判りにくい いうか全然駄目じゃん
白黒ひっくりかえるのは、平面方向だけじゃないから
立体でちゃんと見えないといけない
その表示は立体CGでよくある技術だから
そう問題でもないが、どう入力するかだなー。
- 17 :
- 碁盤やコマの中の人たちが格闘しないとなw
- 18 :
- http://www.appbank.net/2009/07/25/iphone-application/39320.php
- 19 :
- 3次元が先を越されたとなると、4次元しかないでしょう。
x,y,z,w=9*9*9*9=6561コマ用意できますよ。
- 20 :
- よし、じゃあ俺は5次元オセロを作る。
空間+時間+パラレルワールド。
空間…3次元
時間…1次元。空間上のブロックごとに存在。
パラレル…時間と空間で示される4次元上のブロックごとに存在。
同じ時間、同じ場所でもさらにパラレルワールドに駒が置けるので超難易度。
亜空間に置かれた駒の影響まで考慮しなくてはならない。
8x8x8x8x8だとすると32768ブロック。
1対戦につき1人あたり16384個の駒を置く必要がある。
- 21 :
- 3Dオセロな。
- 22 :
- 3Dはもうあるんだからその上狙えば良いだろ
- 23 :
- ttp://www2a.biglobe.ne.jp/~mirai/java/reverse/index.htm
- 24 :
- よし、試作品をサクッと作るか。
- 25 :
- 使いやすいUIを競うのはどう?
- 26 :
- お手軽3Dプログラミング♪
- 27 :
- 4次元オセロのUI?
- 28 :
- >>27
直感的な認知は不可能だと思いますが・・・
色をうまく利用すれば認知できるかもしれませんね
- 29 :
- 難しいことはよく分からないけど、
宇宙は11次元まで存在することが確認されてるらしいぞ。
ということで11次元オセロを作ろう!
- 30 :
- aero的なインターフェースは使い難いよ
- 31 :
- 11次元って一辺2マスでも合計2^11だろ
2048マスとか面倒
- 32 :
- ボードじゃなく石の方を3次元、3色にしたらどうだろう。
次元の意味を取り違えてるとか細かいことは無し。
挟まれた色は、挟んだ色と挟まれた色以外のもう一つの色に変わる。
黒白白白 -> 黒白白白黒 -> 黒青青青黒
一番多く残った色の持ち主の勝ち。
- 33 :
- それどこのアタック25
- 34 :
- ちっげーよ
アタック25なんか、単に自分で挟めば自分の色が増えるだけじゃん。
言わばオセロ 1.5 程度。
次元が変わったとは言えない。
よく見ろ、こっちは自分と相手以外の第三者の色に変わるんだよ。
戦略性がまるで違う。
言わばオセロ・・・なのか? ってほど別次元
- 35 :
- 四人以上でやるとどうなる?
- 36 :
- しらん
- 37 :
- マジレスすると8次元までならフリーの奴は有る。
表示と入力が恥ずかしいぐらいしょぼいのとバグ有りで勝手に角取られたりするのはあれだが。
- 38 :
- 何次元にしても思考ルーチンは基本的に同じだけどな
ただ指数関数的に枝刈りの数が増える
2次元のWZebraですらあれだけ思考するのに、8次元に
なったら一手にどれだけ待たされる事やら
- 39 :
- よし
じゃあ逆に考えるんだ
一次元押せろを造ろう
- 40 :
- http://www.chessvariants.com/other.dir/ww2.html
これのオセロ版
- 41 :
- >>39
0) --oxox--
1) --oxooo-
2) -xxxooo-
3) ooooooo-
- 42 :
- >>40
糞ワロタw これプレイするとどうなるんだろうな
- 43 :
- >>40
オセロが勝負を挑む相手は何だ?
- 44 :
- 囲碁とオセロが勝負したら、意外にオセロが強そうな気がする
- 45 :
- 3次元オセロは既出だから3次元囲碁を開発しようよ
- 46 :
- >>31
頭が固いな
1舛ですませばいい
先行を取ったほうが勝ち
どうせ1舛でも引き分けにしからないんじゃないかな
- 47 :
- もとい
どうせ2舛でも引き分けにしかならないとおもう
- 48 :
- >>47
少なくとも挟んでリバースする操作ができないと、
オセロと呼ぶにはちょっと苦しくないか?
- 49 :
- アバター制にして勝っても負けても脱ぐようにすれば良い
- 50 :
- >>48
つまり3舛以上か
- 51 :
- >>50
更に言うと、最初に黒白各々 [2 ^ (次元数 - 1)] 個ずつの石を
互い違いに四角く配置しておかないと圧倒的に先手有利、
あるいは後手有利なんて状況になりかねないので、
その分のスペースも確保しておかないとゲームとして成り立たないと思う。
なので、最低でも一辺が4升欲しいところ。
- 52 :
- >>51
ん・・・配置しておく石の数は各々
a2 = 2
an = an-1 ^ 2
なのか・・・?
分からん、頭痛くなってきた。
もういいや
- 53 :
- >更に言うと、最初に黒白各々 [2 ^ (次元数 - 1)] 個ずつの石を
>互い違いに四角く配置しておかないと圧倒的に先手有利、
100%先手が3手目で勝ちます
本当にありがとうございました
- 54 :
- 4次元ハローワールド
- 55 :
- http://o3d.googlecode.com/svn/trunk/samples/instancing.html
これ使ってブラウザでプレイ
- 56 :
- >>51
無茶言うなよ1辺4マスで11次元オセロ作れってか?
4^11=4194304
になるぞw
1人当たり2197152回置かせるのか?
何日かけて勝負するんだよw
1回考えて置くのに5秒かかると見積もっても2912.7時間。
1日18時間プレイするとして161.8日。
2人で323日以上。
1年はかからないにしてもおかしいだろw
もうちょっと何か良い方法はない?
- 57 :
- 人間に全手打たせるんじゃなくて、代打エージェントをガンビットみたいに組むゲームにすればいい。
- 58 :
- 3次元でも見にくいのに、さらに複雑にするってイライラゲームかよ
- 59 :
- AIを組むゲームですね分かります
- 60 :
- うちのマシンで8次元オセロやったらほとんど固まってたよ(*_*)
- 61 :
- 6面体オセロもいいかも知れん
四隅は3面共通、エッジは2面共通で。
- 62 :
- >>61
初期配置は?
- 63 :
- 実は6面体オセロ今作ってる
- 64 :
- >>63
詳しく聞こうか
- 65 :
- http://www2a.biglobe.ne.jp/~mirai/java/reverse/index.htm
http://d.hatena.ne.jp/Ozy/20070305
http://blog.livedoor.jp/no_mo_s/archives/65013507.html
- 66 :
- 棋譜だけなら無限次元オセロもできるな。
座標は 0〜7 の整数として、
初期配置 (3, 3, 3, 3, …) は黒、(4, 3, 3, 3, …) は白…。
先手、 (4, 4, 4, 3, 3, 3, 3, …) の白を裏返して (5, 5, 4, 3, 3, 3, 3, …) 黒。
後手、 (3, 3, 3, 4, 4, 3, 3, …) の黒を裏返して (3, 3, 3, 2, 4, 3, 3, …) 白。みたいに。
- 67 :
- 3次元オセロ作ったけど、4×4×4ではいきなり隅が取れる感じになるし、
6×6×6では人間には難しすぎた。
立方体にならない盤の大きさでもうまくいかなかった。
ということで、3次元オセロはあまりよいルールができそうにないって結論に至ったよ。
ここからはややスレ違いなんだけど、机上の空論じゃなく実際に組んだ話なので書かせてください。
興味ない人は読み飛ばしてね。
3次元オセロ、3次元五目並べ、3次元碁、3次元将棋、3次元チェッカーなど、すべて同様に、まともなルールを作ることができなかった。
こういった紆余曲折をへて、人間にも可能なレベルの3次元盤上遊戯ってことで、
↓のルールでゲーム作った。
・盤面の大きさは4×4×4(これは可変)
・空きマスならどこにでも打てる パスは不可
・打ったマスの隣(前後上下左右)のマスにある相手の駒がひっくり返って自分の駒になる(自分の駒はそのまま)
・打ち切ったとき、駒が多いほうが勝ち(コミは盤面のサイズに依存)
cpuアルゴリズムの実装だが、手筋も何も分からないので、モンテカルロ方式でcpu同士に10万局とか打たせて、
最も勝率のよい手を選ぶようにした。
このお手軽ルーチンでも、CPUは今まで対人無敗だ。
- 68 :
- そもそも人間がそのゲームのコツ掴むまでが大変そうだが
- 69 :
- そうなんだ。
コツ以前にどういった手がいいのか全然見当もつかんからね。
でもモンテカルロってほんとお手軽でそこそこ強いってことがよく分かったよ。
- 70 :
- >>67
2次元オセロで使われる各種探索アルゴリズム・評価関数は使えないの?
- 71 :
- どんな手がいい手なのか分からんからね。
評価関数はもちろん使えない。だってゲームが違うんだよ。
おそらく3次元オセロ6×6×6)
- 72 :
- 途中で送信してしまった
おそらく3次元オセロ6×6×6でも、まったく新しい評価関数を作らないといけないんじゃないかなあ。
- 73 :
- 四次元オセロを作ろう。
3×3×3×3の四次元オセロ。
3×3×3の三次元オセロにさらに2つのパラレルワールドが加わる。
パラレルワールドはA、B、Cの順で並んでおり、
例えばBの世界で隅を取っても、相手にAとCの同じ隅を取られると、挟まれたことになり裏返されてしまう。
さらに同じ位置でなくても対角線的にも取られることがある。
例えばBの世界で中央を取り、Bの世界で中央を通る線を全て埋めても、
Aの世界のある点と、その点から中央を通る反対の位置をCの世界で取られれば、裏返されてしまう。
- 74 :
- インターフェースは3×3×3のオセロがA、B、Cの順で3つ並んだ形になる。
また、これを応用して5次元オセロも作成可能。
四次元オセロでは、3つの世界は直線的であるが、これを3×3の9つの世界にすれば五次元オセロとなる。
同様に3×3×3の9つの世界にすれば六次元オセロとなる。
この六次元を一つの宇宙と考え、この宇宙を直線的に拡張すれば七次元オセロ、
平面的に拡張すれば八次元オセロ、空間的に拡張すれば九次元オセロが作成可能。
- 75 :
- そんな難しく考えんでも座標で考えれば作成可能は明らか。
でも可能だからって人間のするゲームとしては成立しないだろう。
コンピュータのアルゴリズムの強弱を競うのならいいかもね。
- 76 :
- >>75
プログラマ同士が競うためのツールとかゲームってかなり少ないし、
評価関数作るだけで参加できるならやってみたいわ
- 77 :
- 碁ではいかんの?
今プロの足元ぐらいの一番興味をそそるおいしい地点だと思うけど。
私見では今の方法論ではいずれ頭打ちになって、何かブレイクスルーがないと
プロのレベルに到達できないと思うから、参入してやってみたら?
- 78 :
- 五目ならべってパッとしないだろ
- 79 :
- その前に五目並べにプロとかあんの?
- 80 :
- >>67>>71
2次元が3次元になるだけでそんなに変るもんなの?
minimaxもダメ?
- 81 :
- 2次元が3次元になると世界や常識が原型をとどめないほど木っ端微塵にされて再構築しなきゃならないからね
昔は地球が平面だと思われてたけど実際は違っていたために大変な変革が必要だった
次元が上がるということは単に変数が一つ増えるということではない
価値観や常識を根本から作り直さなければならない
並大抵の精神構造では不可能だよ
- 82 :
- minimaxみたいな探索アルゴリズムはいけると思う。
静的な局面での評価関数さえしっかりしたのを作れればね。
でもその評価関数が難物で、有利不利の判定を一から考えないといけないと思う。
2次元と3次元ではゲーム性が違いすぎるからね。
まず3次元だと2次元みたいな壁が作れなくない?
盤が小さくてすぐ辺に到達してしまうから、2次元オセロでは有効だった開放度だってそれほどの意味を持たないかもしれない。
- 83 :
- オセロだとイメージしにくくても、碁や五目並べや将棋が3次元になったら全然違うゲームになるのは想像できると思う。
碁だと打った石が6路の呼吸点を持つから打ち込んだ石がとっても死ににくくなるし、
五目並べだと立体的な方向にまでつながるから先手有利すぎでゲームにならない。
将棋は歩を異様に多くしないといけないし、王が立体的に逃げられるので詰めにくい気がする。さらに大駒と子駒の強さのバランスが2次元の場合とかなり異なる気もする。
まあこのあたりをうまくクリアしたルール設定も可能かもしれないけど。おれでは無理でした。
てなことで、どのゲームにしても2次元の理論は参考程度にしかならないというのがおれの結論です。
異論は認めますww
- 84 :
- 別に333じゃなくて888でやってくれてもいいんだぜ?
- 85 :
- 評価関数の作り直しって点では同じことだろう。
ただ複雑になるだけだな。
- 86 :
- 実際に三次元オセロがあるんだから、実際に使ってみて話したら?
(まあ実際動かしたが、なんだかなー)
ソース付だからどうとでも出来るし。
- 87 :11/10/28
- それより将棋をRTSとして作りたいと考えてるだが、どうだろうか。
TOP カテ一覧 スレ一覧 削除依頼 ▲
・ 次のスレ
DarkBASIC
【C,C++】 ちょっと問題解いて行け 【勉強】
ひろゆき杯プログラミングコンテスト
【.NET】WCF〜Windows通信基盤技術【通信】