[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 05/09 22:06 / Filesize : 112 KB / Number-of Response : 443
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語で素晴らしいオセロを作らないか?



1 名前:デフォルトの名無しさん mailto:sage [04/06/23 17:34]
素晴らしいものだぞ

29 名前:28 mailto:sage [04/08/21 20:35]
落とせた!

30 名前:26 [04/08/21 20:47]
>>27
アルゴリズムは結構単純ですけど、オセロだとそれでも強くなるみたいです。

>>29
どうでしたか?

31 名前:デフォルトの名無しさん [04/08/21 20:52]
オセロって言うな!!

オセロは商標。

ラッピングテープを指して「サランラップ」
配送屋を見ればどこの配送屋でも「宅急便」
というのと同じくらい恥ずかしいこと。

32 名前:デフォルトの名無しさん mailto:sage [04/08/21 20:57]
>>31
ハァ?なにいってんだ?オセロはオセロだろ

33 名前:デフォルトの名無しさん mailto:sage [04/08/21 20:59]
どうでもいいよそんなこと

34 名前:デフォルトの名無しさん mailto:sage [04/08/21 20:59]
プログラム公開する時には、リバーシにしといた方がいいかもな。
面倒を避けるために。

35 名前:デフォルトの名無しさん [04/08/21 21:07]
>>31
だったら、紙を金属の芯で止める道具のことをホッチキスと呼ばずにステイプルと呼んで下さい。

36 名前:デフォルトの名無しさん mailto:sage [04/08/21 21:13]
オセロの発案者はあくまでオリジナルと言っている。
オセロはオセロであって、リバーシとは別物なのである。
と言ってみるテスト。

37 名前:デフォルトの名無しさん [04/08/21 21:32]
>>26
全然勝てない。俺は結構強い方で、人とオセロをやって負けたことは無かったんだが。



38 名前:デフォルトの名無しさん [04/08/21 21:38]
ttp://yam-jp.com/~nanashi/img/gogogo1289.c
オセロの名前を削除しておきました。

39 名前:デフォルトの名無しさん mailto:sage [04/08/21 21:59]
でもオセロってシェイクスピアの作品名を借用したもんでしょ?
そんなの商標にできるのか?

40 名前:デフォルトの名無しさん mailto:sage [04/08/21 22:00]
日本にシェークスピアが来ていなかったからつい・・・

41 名前:デフォルトの名無しさん mailto:sage [04/08/21 22:59]
ちなみに一般公開されてるオセロプログラムで最強のやつはコレだ。
ttp://radagast.se/othello/download.html

42 名前:デフォルトの名無しさん mailto:sage [04/08/21 23:30]
>>38
こんな短いソースで、こんだけ強いオセロが作れるんだ。

43 名前:29 mailto:sage [04/08/22 00:31]
>>30
負けた。少なく返すように置いていったら、全部ひっくり返された。
よくできていますね。コード短いし丁寧に作られてますね。

44 名前:デフォルトの名無しさん mailto:sage [04/08/22 00:40]
へー、強いんだ。読んでみようかな。
とりあえず大雑把な戦略を教えてくれない?>>26


45 名前:デフォルトの名無しさん mailto:sage [04/08/22 00:55]
全日本選手権入賞経験者の私が軽くレクチャーしよう。

オセロ脱初心者講座
@中盤までは全滅しない程度になるべく少なく石を取る。
A隅の斜め隣は危険(すぐに隅を取られる)なので無闇に打たない。
 隅の隣も実はかなり危険。
B露出してる場所(隣に石が少ないマス)に無闇に打たない。
C無闇に辺を取らない(辺を取るべきか取らないべきかの判断は
 上手くならないとつかないので最初はあまり取らないと覚えておく)。


46 名前:デフォルトの名無しさん mailto:sage [04/08/22 01:12]
多分バグ発見。
  1 2 3 4 5 6 7 8
 ┏━┯━┯━┯━┯━┯━┯━┯━┓
1┃ │ │ │ │ │ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
2┃●│ │○│ │ │ │○│ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
3┃●│○│○│ │○│○│ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
4┃●│●│○│○│○│ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
5┃●│●│●│○│○│ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
6┃●│●│●│●│○│○│○│ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
7┃●│●│●│●│★│ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
8┃●│●│●│●│●│ │ │ ┃
 ┗━┷━┷━┷━┷━┷━┷━┷━┛
WHITE Passed.
>6 7

47 名前:デフォルトの名無しさん mailto:sage [04/08/22 01:13]
  1 2 3 4 5 6 7 8
 ┏━┯━┯━┯━┯━┯━┯━┯━┓
1┃ │ │ │ │ │ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
2┃●│ │○│ │ │ │○│ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
3┃●│●│○│ │○│○│ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
4┃●│●│●│○│○│ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
5┃●│●│●│●│○│ │ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
6┃●│●│●│●│●│○│○│ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
7┃●│●│●│●│●│★│ │ ┃
 ┠─┼─┼─┼─┼─┼─┼─┼─┨
8┃●│●│●│●│●│ │ │ ┃
 ┗━┷━┷━┷━┷━┷━┷━┷━┛
WHITE Passed.
>
ここで6 8に打たないでパスした。
打たなかったので(4 1)と打ったら(3 1) (2 1)と進んで
次は6 8に打ってきた。



48 名前:デフォルトの名無しさん mailto:sage [04/08/22 01:30]
1手目からの順
(3,5) (5,6) (6,3) (2,5) (6,6) (5,3) (4,6) (7,2)
(3,4) (4,7) (3,6) (2,7) (3,7) (2,8) (1,8) (7,6)
(3,8) (2,4) (1,4) (1,5) (3,3) (1,7) (1,6) (3,2)
(2,3) (1,3) (1,2) (2,6) (4,8) (5,8) (5,7) (6,7)

49 名前:38 [04/08/22 02:15]
>>43
ありがとうございます。

>>44
<前半>
・四つ角を最優先し、出来るだけ端を取る
・出来るだけ多く取る
<中盤〜終盤>
・出来るだけ多く取る
<最後の数手>
・全部読む

という感じです。

>>45
参考にさせて頂きます。

>>46-48
★を表示するための処理をするときに出てきたバグだと思うので、直しておきました。
ご指摘ありがとうございます。

訂正版
ttp://yam-jp.com/~nanashi/img/gogogo1291.c

50 名前:デフォルトの名無しさん mailto:sage [04/08/22 02:55]
>>49
相当弱いプログラムだと思われます。

51 名前:デフォルトの名無しさん [04/08/22 03:12]
>>50
>>41の最強のプログラムの深さ2と、自作プログラムの深さ5を対戦させてみたら、
自作プログラムの方が負けましたけど、人間には中級車レベルの人になら勝てると思います。
上級者だったら弱く感じるかも知れませんけど・・・。

処理が重くて(効率が悪くて)あまり深く読めないのと、隅を優先させ過ぎたのが原因かも知れません。
深さを 60 に設定すれば、必ず勝てるプログラムになります。
その代わり、宇宙が終わるまでに計算が終わりませんけどw

>>45さんの戦略をプログラムすれば強くなると思います。

52 名前:デフォルトの名無しさん mailto:sage [04/08/22 03:15]
序盤は

・隅を狙う
・自分の打てる手数が多くなる手を打つ

だけでいいんじゃないのか?


53 名前:デフォルトの名無しさん mailto:sage [04/08/22 03:38]
隅の斜め隣は打たないってしたほうがいいと思う。
>>48のでもいきなり打ってるから。

54 名前:デフォルトの名無しさん mailto:sage [04/08/22 03:48]
>>52
序盤で隅を狙うのはよくない

55 名前:デフォルトの名無しさん mailto:sage [04/08/22 03:56]
>>53
打っても問題ない(打った方が良い)ケースもあるから、
ただ打たないっていうアルゴリズムは良くない。


56 名前:デフォルトの名無しさん mailto:sage [04/08/22 07:17]
序盤は思考しなくて定石通りに打てばいいと思うけど、
オセロの定石集とか、売ってあるのだろうか?

57 名前:デフォルトの名無しさん mailto:sage [04/08/22 08:15]
ネットで探せばいくつかデータはあったと思うけど。
著作権的に流用しちゃっていいものかどうかは不明。



58 名前:デフォルトの名無しさん [04/08/22 09:21]
>>49
コードがコンパクトにまとまっていていいですね。
オレはそんなに思考系は詳しくないんで質問なんですが、
オセロでMin-Max法だと葉ノードまで読まないと、正しい評価値がでませんよね?
途中で読みを中断した場合(特に序盤)どう枝を評価しているんですか?



59 名前:デフォルトの名無しさん mailto:sage [04/08/22 09:55]
素晴らしいオセロっていうのはな、たまには勝たせてくれるオセロだよ?
お前んちのじーちゃんはむきになって勝とうとしないだろ?
それとおなじことだよ。

60 名前:デフォルトの名無しさん mailto:sage [04/08/22 10:46]
また、話についていけなくなった奴が荒らしにきたな...。

61 名前:45 mailto:sage [04/08/22 11:18]
序盤=データベースの範囲
終盤=完全読み

なので中盤がミソなわけだ。

とりあえず、偶数理論と開放度理論だけ取り込めば十分だと思う。
さらに盤の各マスにも点数をつけて、隅の点数を高く、
X(隅の斜め隣)を最も低く、C(隅の隣)を次に低く設定する。

偶数理論&開放度理論による点数加算が、マス固有の点数のマイナス分を上回っていれば
状況次第(Xに打たないと負けるような時)でXに打ち込む事もできるんじゃないかな。
作ったこと無いからわからんけど。

62 名前:49 [04/08/22 19:40]
>>58
・数が多い方が良い
・隅と端を多く取るのが良い
という評価方法です。

>>59
勝たせてあげるプログラムを作るのは誰でも出来る。
勝たせてあげ「ない」プログラムを作るのが大変。
勝たせてあげ「ない」プログラムが出来れば、手加減するプログラムを作ることも出来る。

>>61
とりあえず、解放度理論だけ実装してみました。
ttp://ame.dip.jp/upload/1093/171329.c

63 名前:デフォルトの名無しさん mailto:sage [04/08/22 20:42]
だいぶ強くなった。

64 名前:デフォルトの名無しさん [04/08/23 00:12]
素晴らしーオセロってのは
やっぱ、ゲームしゃん、プレイヤーも勝つと楽しいよね

だから、初盤はコンピュータが有利なの
でも、最終的にはプレイヤーを勝たせてくれるような
そんな、自己満足なオセロがほしー


65 名前:デフォルトの名無しさん mailto:sage [04/08/23 00:17]
そんな接待オセロ、なにが楽しいのか。

66 名前:デフォルトの名無しさん [04/08/23 00:27]
>>64
こんなんで良かったらどうぞ(一応自作だけど、評価用の配列はオセロのサイトから拝借)。
つttp://yam-jp.com/~nanashi/img/gogogo1294.c

>だから、初盤はコンピュータが有利なの
>でも、最終的にはプレイヤーを勝たせてくれるような
一応、この条件は満たしている。
但し、楽しいかどうかは分からない。

67 名前:デフォルトの名無しさん [04/08/23 00:30]
>>65
初心者用には案外大切だと思います。
初めてやったときにボロ負けしたら激しく興味を無くすから、
最初くらいは勝たせてあげた方が良いのでは?
ただ強いだけのプログラムを作るよりも、手抜きをしていると分からないような接待オセロを作る方が
ずっと難しいような気がします。



68 名前:デフォルトの名無しさん mailto:sage [04/08/23 01:02]
>>67
ばれないように接待オセロと言っても、PCが弱いと、わざと負けてるって
バレバレじゃん。(もしくはプログラムが下手で本気で弱いか)

>初めてやったときにボロ負けしたら激しく興味を無くすから、
これは人によりけりだとおもう。
逆に、ちょっとコツをつかんだ程度で簡単に勝てるようになると
底の浅いゲームだと思って興味をなくすか。

69 名前:デフォルトの名無しさん [04/08/23 01:26]
>>68
>ばれないように接待オセロと言っても、PCが弱いと、わざと負けてるって
>バレバレじゃん。(もしくはプログラムが下手で本気で弱いか)
だから、単に強いだけのプログラムを作るより難しいといったのですが・・・。
強いプログラムというのは、評価関数がしっかりしていないと出来ません。
(意図的に)手加減をするプログラムも、評価関数がしっかりしていないと出来ません。
強いプログラムの上に上手な手加減の仕方をプログラムしないと、接待プログラムは出来ないのでは?

>これは人によりけりだとおもう。
>逆に、ちょっとコツをつかんだ程度で簡単に勝てるようになると
>底の浅いゲームだと思って興味をなくすか。
それを見極めるのもプロだと思います。
「こいつなら最初に(ゲーム上で)ボコボコにした方が伸びる」
「こいつはボロ負けすると挫折するタイプだから手加減してやろう」
みたいな感じで。

70 名前:デフォルトの名無しさん [04/08/23 05:29]
そこでニューラルネットですよ。


71 名前:デフォルトの名無しさん mailto:sage [04/08/23 06:17]
すばらしいオセロって、強い奴?それとも売れる奴?

72 名前: ◆R/rLuLKeEI [04/08/23 08:18]
相手とともに成長する奴

73 名前:デフォルトの名無しさん mailto:sage [04/08/23 09:48]
気づかないうちにオセロを移動させればいいんだよ。

74 名前:デフォルトの名無しさん mailto:sage [04/08/23 09:57]
>>69
>だから、単に強いだけのプログラムを作るより難しいといったのですが・・・。

なんか論点がずれてるな。
簡単か難しいかの話なんてしてないよ。

>それを見極めるのもプロだと思います。

だから、そういう論点じゃないでしょ。

75 名前:デフォルトの名無しさん mailto:sage [04/08/23 09:58]
>>71
将棋や囲碁だと、基本的に強いのが売れる。

76 名前:デフォルトの名無しさん mailto:sage [04/08/23 10:16]
>>69
オセロで接待されたい人っているの?

77 名前:デフォルトの名無しさん mailto:sage [04/08/23 10:40]
元々接待用ゲームだったらしいよ。



78 名前:デフォルトの名無しさん mailto:sage [04/08/23 10:54]
>>77
へー。

79 名前:デフォルトの名無しさん mailto:sage [04/08/23 11:03]
接待モードは、こんな感じで実装できそうだけど。

コンピュータが手番を渡されたら、まずその局面で探索。
評価値がマイナスだったら、最善手を打つ。
プラスが帰ってきたら、最善手だけでなく全ての手について点数を求める。
あらかじめ決めておいた最大値を点差が超えない範囲で、引き分けに近付く手を打つ。
最終的には僅差で負ける。

例えば最大下げ幅を8に設定してあって、最善手の点数が+16
他の候補手が+12,+10,+6,0,-4,-8だったら+10の手を選ぶというようにする。

80 名前:デフォルトの名無しさん mailto:sage [04/08/23 17:04]
相手が序盤からたくさん石取りまくるド素人だと、どんなに接待プレーしても
終盤調整で見え見えの手抜きしないといけなくなる。

81 名前:デフォルトの名無しさん mailto:sage [04/08/23 17:28]
>>71
エロい奴。
脱衣オセロとか。

82 名前:デフォルトの名無しさん mailto:sage [04/08/23 21:35]
>>81
技術の問題じゃない。
ヌードモデルやストリップの女性に金を払えば誰にでも可能。

83 名前:デフォルトの名無しさん mailto:sage [04/08/23 21:36]
アニメ絵でいいじゃん。

84 名前:デフォルトの名無しさん mailto:sage [04/08/23 22:21]
>>81
アタック 25 みたいに自分がとった分だけ見えるとか。(藁

85 名前:デフォルトの名無しさん [04/08/23 22:24]
それにしても、絵の才能の問題であって、技術的な部分はごく僅か。

そんな事より>>81>>83よ、ちょいと聞いてくれよ。スレとあんま関係ないけどさ。
昔、パソコン研究会をやってたんです。パソコン研究会。
そしたらなんか人がめちゃくちゃいっぱいで座れないんです。
で、よく見たらなんか盛り上がってて、エロゲーとか作っているんです。
もうね、アホかと。馬鹿かと。
お前らな、エロゲー如きで普段使ってないパソコンを使ってんじゃねーよ、ボケが。
エロゲーだよ、エロゲー。
なんか親子連れとかもいるし。一家4人でエロゲーか。おめでてーな。
よーしパパSM頼んじゃうぞー、とか言ってるの。もう見てらんない。
お前らな、エロゲーやるからその席空けろと。
パソコンってのはな、もっと殺伐としてるべきなんだよ。
デスクトップの隣に座った奴といつ喧嘩が始まってもおかしくない、
刺すか刺されるか、そんな雰囲気がいいんじゃねーか。女子供は、すっこんでろ。
で、やっと座れたかと思ったら、隣の奴が、モロ出し無修正ロリゲーで、とか言ってるんです。
そこでまたぶち切れですよ。
あのな、ロリゲーなんてきょうび流行んねーんだよ。ボケが。
得意げな顔して何が、ロリゲーで、だ。
お前は本当にロリゲーを作りたいのかと問いたい。問い詰めたい。小1時間問い詰めたい。
お前、ロリ絵を見たいだけちゃうんかと。
パソコン通の俺から言わせてもらえば今、パソコン通の間での最新流行はやっぱり、
特盛り計算量、これだね。
特盛り計算量AIプログラミング。これが通の使い方。
特盛り計算量ってのはアルゴリズムが多めに入ってる。そん代わりエロが少なめ。これ。
で、それにAIプログラミング(人工知能)。これ最強。
しかしこれをやると次からひろゆきにマークされるという危険も伴う、諸刃の剣。
素人にはお薦め出来ない。
まあお前、>>81>>83は、エロゲーでも作ってなさいってこった。

86 名前:デフォルトの名無しさん mailto:age [04/08/23 22:42]
>>85は昔のネタで一人で盛り上がり、面白いと勘違いするバカ

87 名前:デフォルトの名無しさん [04/08/23 23:34]
オセロを教せーろ。



88 名前:デフォルトの名無しさん mailto:sage [04/08/23 23:46]
>>87

>>85なんかよりも格段に面白い

89 名前:デフォルトの名無しさん mailto:sage [04/08/23 23:52]
>>66
このオセロ2時間くらい楽しめたぞ
久々にオセロなんかしたら面白かった
ひまがあったらコードも見てみるよ

90 名前:66 mailto:sage [04/08/24 00:40]
>>89
ありがとうございますm(_ _)m

91 名前:デフォルトの名無しさん [04/08/24 02:17]
C言語に関する雑談ならこちら

ラウンジでC言語
etc3.2ch.net/test/read.cgi/entrance/1093006298/l50


92 名前:デフォルトの名無しさん mailto:sage [04/08/24 09:09]
なんかコピペにクレームつけてるやつがいるな。
つまらなかったらスルーすればいいのに。

93 名前:85 mailto:sage [04/08/24 12:11]
>>92
ごめん、吉野家テンプレを自分で改造して作った

94 名前:デフォルトの名無しさん mailto:sage [04/08/24 13:39]
ここはAIという高尚なスレなんだから、雑談は他でやってくれ。


95 名前:デフォルトの名無しさん [04/08/24 14:33]
>>94
とりあえず、>>62よりも強いプログラムをC言語で作って見せて下さい。

アップローダー
ttp://yam-jp.com/~nanashi/uploadzx.php

96 名前:94 mailto:sage [04/08/24 14:43]
よし、おとーさんがんばっちゃおうかなー。


97 名前:デフォルトの名無しさん mailto:sage [04/08/24 15:09]
>>62
白黒の初期配置が逆じゃない?
他のプログラムとか、サイトとか見てたら逆っぽいのだけれど。




98 名前:デフォルトの名無しさん mailto:sage [04/08/24 15:29]
手加減させたいなら、読みの深度を落とすとか評価値が一番じゃない箇所に
置くとかそれだけで済むことだ。

99 名前:デフォルトの名無しさん mailto:sage [04/08/24 15:34]
>>97
変えておきます。

100 名前:デフォルトの名無しさん [04/08/24 21:48]
ttp://yam-jp.com/~nanashi/img/gogogo1299.c
アルファベータ法を使って読みの深さを上げました。
遅すぎるようだったら27行めの
#define DEPTH 11
のところを小さな値にして下さい。

101 名前:デフォルトの名無しさん mailto:sage [04/08/26 16:09]
アルファベータなんざ糞もいいところ。つまらん。本当につまらんアルゴリズム。
もっとセンセーショナルでドマラスティックなやつがいい。

102 名前:デフォルトの名無しさん mailto:sage [04/08/26 16:34]
何か弱くなってないか・・・。

103 名前:デフォルトの名無しさん mailto:sage [04/08/31 15:33]
>>101
αβ法よりも効率の良いプログラムとなると、いかに効率よく枝を落とすかという話になりますが、
それは殆ど人工知能に近いものになると思います。

ドマラスティックって、、、
 ~~~~

104 名前:デフォルトの名無しさん [04/09/14 17:44:32]
αβ法より優れているものとなると Null Window Search になると思いますが、
それよりも優れた方法ってあるんでしょうか?

105 名前:デフォルトの名無しさん mailto:sage [04/09/15 21:43:22]
>>104
ぬるぽ

106 名前:デフォルトの名無しさん mailto:sage [04/09/20 19:48:45]
ガッ

107 名前: ◆R/rLuLKeEI [04/09/20 23:57:34]
>>104
Null Window Search といってもその基礎になる考え方はαβじゃなかったかな。
MTD(f)も確かαβだし。



108 名前: ◆FIcNi4f8js mailto:sage [04/09/21 03:52:40]
「負けオセロ」のプログラムって作った人います?


109 名前:デフォルトの名無しさん [04/09/21 05:50:25]
アルファベータ法

110 名前:デフォルトの名無しさん [04/09/21 11:30:32]
>>108
勝ちオセロの評価関数の符号を変えればすぐに出来ます。

111 名前:デフォルトの名無しさん mailto:sage [04/09/21 14:45:55]
盤面が全て白になった局面から逆算していけば必勝手順が分かる

112 名前:デフォルトの名無しさん mailto:sage [04/09/24 14:21:58]
WZebraって無茶苦茶強いし速いな。あんなの簡単に作れるんか?

113 名前:デフォルトの名無しさん [04/09/29 01:51:36]
ループオセロを作ってみました。

ルール(機能)は、通常のオセロの他に、
・左端と右端はつながっている(DQやFFのワールドマップを想像してください)
・1つを除いて一列全て相手側の色の場合、その開いた一つに置くと一列取ることが出来る
・盤面をいつでも自在にシフト(ループ)させることが出来る。
というものがあります。

どなたか、ゲームとして面白いかどうか評価して頂けないでしょうか?
ソースコードは手元にあります。

114 名前:デフォルトの名無しさん mailto:sage [04/09/29 04:49:57]
>>112
昔、IOSっていうオセロプログラム同士を自己学習させるために自動でひたすら
戦わせるサーバがあって、WZebraはそこで鍛えられたプログラムだから
一朝一夕のものじゃないよ。

115 名前:デフォルトの名無しさん mailto:hoge [04/09/29 06:02:00]
>>21のX軸Y軸入力というのが手間だったので入力部分を追加したインターフェース改造版です。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>/*処理系によりconio.h→console.h*/
char*h="・○●☆\n";int p,t,a,d,c,v,i,e=10,s,o,z[255]={0},m[90]={0},r[]={-10,-
9,-8,-1,1,8,9,10};void k(){if(m[p]==0)for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==
3-t;v+=r[i])c++;if(c&&m[v]==t){a+=c;v=p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);
}}}void b(){system("cls");for(p=9;p<82;++p)a?a:k(),printf("%.2s",&h[m[p]*2]);}
int main(){for(50[z]=80[z]=9,54[z]=77[z]=m[40]=m[50]=t=s=i=1,52[z]=75[z]=-1,56
[z]=72[z]=-9,m[41]=m[49]=2;i<e;m[i++*9]=4);for(;;a=d=0){b();if(a)for(d=a=s=p=8
;a==8;k())if(t-2){o=e[m];for(i=0,e[m]=3;i!=13;c=(i=_getch())[z]){if(c&&e+c>9&&
e+c<81)e[m]=o,o=(e+=((e+c)%9?c:c*2))[m],e[m]=3;b();}e[m]=o,i=e/9,p=e%9+i*9;}
else++p;else if(s)s=0,printf("pass");else break;t=3-t;}return 0;}

テンキーか矢印キーで石を置く位置を指定でき、リターンキーで決定します。
この入力方式でこれよりダウンサイジングはかなり高度になってくるかと思われ。

116 名前: ◆R/rLuLKeEI [04/09/29 08:20:08]
>>113:
トーラスリバーシかと思た。
Googleでざっと見たところ、類似のは見当たらなかった。
海外まで含めたらあるかも。
トーラス碁はあるのにな

117 名前:デフォルトの名無しさん [04/09/29 08:41:45]
>>116
多分、それだと思います→トーラスリバーシ
ドラクエ世界は実はドーナツ状だという話(というかネタ的解釈)があるので。

ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1096414722_1/othello_text_loop.c
ソースをうpしました。



118 名前:デフォルトの名無しさん mailto:sage [04/09/29 17:11:44]
  ,、_,、  
 ( 'ο') <ゥンポコー

119 名前:デフォルトの名無しさん mailto:sage [04/09/29 22:29:17]
ttp://yam-jp.com/~nanashi/img/gogogo1386.rar

cygwin の Xサーバー使ってオセロのGUIだけ作ってみました。
AIはなくって人間VS人間ならできます。
アルゴリズムなら作りたいけど、他めんどくせーという方、どうぞ。
AIの組み込みはしやすいつくりになってる・・・と思う。
ダメだしもお願いしますw

120 名前:デフォルトの名無しさん mailto:sage [04/09/30 00:03:52]
>>119
ざっと見た感じだと、

(1)升目ごとに構造体を作るのは非常に冗長
 マウス今どの升目を指しているか(あるいは盤外か)を調べるには、一字式で簡単に出来る。
 升目ごとに構造体があって、さらにそれを総当りで調べるのは冗長。

(2)8方向に処理する部分は、別に関数を作った方がコンパクト
 例えば、judge_setting_unit_dir という関数を作って、
 引数を指定するだけで値を得られるようにすれば、コードが短くなってバグも出にくくなり、
 あとで修正するときの手間が、(その部分だけ見れば)8分の1で済む。

(3)ヘッダ名と本体の名前は一致させた方が良い
 global.h で宣言されている関数定義が global.c に書かれていないのを見てちょっと拍子抜けした。
 大抵のプログラムでは、余程の事情がない限り、ヘッダファイルの名前と本体の名前が
 一致している。

正直言って、そのソースにAIを組み込むのはちょっと辛いものがある。

121 名前: ◆R/rLuLKeEI [04/09/30 02:09:27]
>>119:
まだダウンロードしてないんで分からんけど思考部を別プロセスにしてGUI部とプロセス間通信したらどう?
思考部とGUI部で共通の通信ルーチンや盤面の更新、合法手の生成はインタフェイスを公開してリンカで繋げるだけになってたら嬉しい。
プロトコルさえしっかりしてたら言語に縛られなくて、なおいい。

などと勝手なことを書いてますが、こんなことするにはかなりの手間がかかりますね。すんません。
他人の作ったのと自分のを特定フォルダに入れとくだけでGUI部に一切変更無しで色んな組合わせの対戦が出来るなぁって思ったり。
共通ルーチンはdllにしておいたり…妄想炸裂中

122 名前:デフォルトの名無しさん [04/10/02 10:31:25]
>>121

思考ルーチンだけdllで作るってやつがあるよ。C#オンリー?だけど。
GUIを作る必要ないし、.NET Framework SDK(無料)だけでつくれるよ。

www.vector.co.jp/games/soft/win95/game/se301574.html
www.geocities.jp/team8bit/AIReversi/AIReversi_top.htm

思考ルーチン作成中なのでできたらupします。
だれか対戦する人いないかなー?

123 名前: ◆FIcNi4f8js mailto:sage [04/10/02 12:01:39]
>>113
上下左右はもちろん、斜め方向にもトーラスなはずだから、

ABCDEFGH
O+++++++ 1
+++++++O 2
++++++++ 3
+++++O++ 4
++++O+++ 5
+++O++++ 6
++O+++++ 7
+O++++++ 8

みたいなときに、G3にXを置くとこの絵のOの位置は全部Xにならないといけないよね。


124 名前: ◆FIcNi4f8js mailto:sage [04/10/02 12:04:06]
>>121
だからIOSがそれなんだってば。

125 名前: ◆R/rLuLKeEI [04/10/02 12:50:06]
>>124: ◆FIcNi4f8js
じゃあ、アルゴリズム実装の練習以外ではもう何も新たに作る必要ないやん。

126 名前: ◆FIcNi4f8js mailto:sage [04/10/02 13:45:12]
>>125 ◆R/rLuLKeEI
通常のルール通りでってことであれば、そうだね。


127 名前: ◆R/rLuLKeEI [04/10/02 14:38:04]
>>126: ◆FIcNi4f8js
通常のルールは分離されてないの?
n人非零和協力非確定非ターン制…までなんでもあり…スレ違いだな



128 名前:122 [04/10/02 15:31:17]
思考ルーチン作りました。対戦きぼんぬ!
www.geocities.jp/team8bit/AIReversi/ai_place.htm
EasyAI

AIリバーシ
リバーシ(オセロ)のフレームワーク。
UI等やルール等のプログラミングを必要なくして、
オセロの人工知能の作成ができます。作成した人工知能で
コンピュータ同士の対戦や人間との対戦ができます。
www.geocities.jp/team8bit/

129 名前: ◆FIcNi4f8js mailto:sage [04/10/04 16:31:07]
これの普通レベルってBoobyのレベル3くらい?







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<112KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef