[過去ログ]
【オセロ,将棋】ボードゲーム【囲碁,War】 (1002レス)
【オセロ,将棋】ボードゲーム【囲碁,War】 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
8: 名前は開発中のものです。 [sage] 03/07/10 23:37 ID:c+Tl/JM7 >>4 盤面の状態はどうやって持ってるの? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/8
9: 1 [] 03/07/11 02:32 ID:tBkU7GoV ミニゲームなのであらゆる可能なポジションに対しそれが最善で 何手で詰むかまたは引き分け(ドロー)かの情報を得ることができますので それを一度作ってデータベースとしてそれを参照しながら(数MBになる予定) 次の一手を考えるようにしたいと思ってます。まだ途中ですが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/9
10: 名前は開発中のものです。 [sage] 03/07/11 03:08 ID:h6ee7c7G >>1 Cのコンソールでやるなら、オセロ、囲碁なら、●〇+で 将棋は歩v等か外字エディタとか。僕は今時間が空いているので、 コンソール×外字エディタの将棋をウインアプリに作り直している。 Win32APIにCreateFont関数があるから、それで逆の文字も表示できる。 一番良いのはやっぱりビットマップを用意して表示する。 参考に7行プログラミングで作られたもの。Cコンソール。 http://pc.2ch.net/test/read.cgi/tech/984182993/372 #include <stdio.h> int*i,p,t,a,d,v,m[91]={-10,-9,-8,-1,1,8,9,10},s;void k(){if(m[p]==0)for(i=m;*i ;i++){for(v=p+*i;m[v]==9-t;v+=*i);if(v-p-*i&&m[v]==t&&(s=a=v=p,d))do m[v]=t,v +=*i;while(m[v]-t);}}main(){for(m[40]=m[50]=s=t=3,m[41]=m[49]=6;s-1;a=d=0){for (p=8;++p<82;printf("・\0○\0●\0\n"+m[p]))p%9?k():m[p]=9;for(a?d=a=p=9:s?s=0, puts("pass"):s++;a==9;k())t-6?scanf("%d%d",&p,&v),p+=v*9:++p;t=9-t;}return 0;} >>2さんが言っているような感じ。思考ルーチンができるなら、 めちゃ強いのを作ってから、グラフィカルなのに入っても遅くない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/10
11: 名前は開発中のものです。 [sage] 03/07/11 11:04 ID:JYguR8yG いきなり7行オセロかよ!初心者にはつらそう。 まぁ、適当にサンプルを書いておこう。 syouhai_hantei() cpu_no_sikou_routine() の二つの関数さえ書けば、完璧な囲碁ソフトだぜ! ちなみに、↓は囲碁だけどbanmen,koma,syohaiを変えれば、将棋でもチェスでも同じ。 ------------------ int banmen[19][19] = {{0}}; /* ←グローバル変数 */ char *koma[] = {"+", "●", "○"}; char *syohai[] = {"", "●の勝ちです", "○の勝ちです", "引き分けです"}; int i, j, r; while (1) { for (i = 0; i < 19; i++) { for (j = 0; j < 19; j++) { printf("%s", koma[banmen[i][j]]); } printf("\n"); } http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/11
12: 続き [sage] 03/07/11 11:05 ID:JYguR8yG do { printf("縦?\n"); scanf("%d", &i); printf("横?\n"); scanf("%d", &j); } while(i < 0 || i >= 19 || j < 0 || j >= 19); banmen[i][j] = 1; r = syouhai_hantei(); if (r != 0) break; cpu_no_sikou_routine(&i, &j); banmen[i][j] = 1; r = syouhai_hantei(); if (r != 0) break; } printf("%sの勝ちです。", syohai[r]); http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/12
13: 間違い [sage] 03/07/11 11:06 ID:JYguR8yG ↑ cpu_no_sikou_routine(&i, &j); banmen[i][j] = 2; だった。ごめ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/13
14: 名前は開発中のものです。 [] 03/07/16 10:39 ID:/YDbp02a 話題もないですし対戦でもしてみます? 一応プラットフォームとしては リバーシ http://dahlia.xrea.jp:8080/hikky/index.php?%5B%5B%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%BB%A8%C3%CC%2FReversi%5D%5D もありますしプラットフォームから作るのもおもしろいんじゃないかと http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/14
15: 名前は開発中のものです。 [age] 03/07/24 15:23 ID:WvOHnIpg 放置されてるスレなんで上げてみた。 いいんじゃね、東大将棋とかがどうかしましたかって言うのは無理だけど なんか作りたいね。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/15
16: 名前は開発中のものです。 [] 03/07/24 15:31 ID:KoHs+Voy http://www.k-514.com/sample/sample.html _、_ 癒し系か・・・ ( ,_ノ` )y━・~~~ 見たらどうだ・・・ http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/16
17: 名前は開発中のものです。 [] 03/07/24 16:03 ID:xMvniY6D http://www.39001.com/cgi-bin/cpc/gateway.cgi?id=ookazujp http://www.39001.com/cgi-bin/cpc/welcome.cgi?id=ookazujp http://www.bannerbridge.net/cgi-bin/click.cgi?mid=b000000002&pid=p000000244 http://www.bannerbridge.net/cgi-bin/click.cgi?mid=b000000003&pid=p000000244 http://www.bannerbridge.net/cgi-bin/click.cgi?mid=b000000017&pid=p000000244 http://www.adultshoping.com/index.cgi?id=1057809839 http://www.bannerbridge.net/cgi-bin/click.cgi?mid=b000000008&pid=p000000244 !!!!! ━━━━━━(゚∀゚)b━━━━━━ グッジョブ!!!!! http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/17
18: 名前は開発中のものです。 [sage] 03/07/25 00:23 ID:fakPmJ3A 結局>>1はどうなったの? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/18
19: 名前は開発中のものです。 [] 03/07/29 07:57 ID:g9GIpNGm 1より森田さんはどうなったの? http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/19
20: 20 [] 03/09/27 13:02 ID:BQIe1Jzq JAVA、将棋、行ってみます。 方針は、1億局指す、すべての局面の勝率を記憶する。 public class example3{ public static void main(String arg[]){ // int banmen[][] = new int[9][9]; char koma[] = {'+','F','O','+','f','o'}; String syohai[] = {" ","先手の勝ちです","後手の勝ちです","引き分けです"}; int i, j, r; banmen[0][4]=5;banmen[2][4]=4; banmen[6][4]=1; banmen[8][4]=2; { for (i = 0; i < 9; i=i+1) { for (j = 0; j < 9; j=j+1) { System.out.print(koma[banmen[i][j]]); } System.out.print("\n"); } } } } http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/20
21: あぼーん [http://endou2.kir.jp/] 03/09/27 13:19 ID:V9CFc5A8 あぼーん http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/21
22: 20 [] 03/09/27 14:53 ID:BQIe1Jzq 歩、香車、桂馬、銀、金、角、飛車、王、と金、成り香、成り桂、成り銀、竜馬、竜 pawn,lance,night,silver,gold,bishop,rook,oh,Tokin,yari,narikeiMa,argent,dragonHorse,dragon で行く。 lnsgogsnl .r.....b. ppppppppp ......... ......... ......... PPPPPPPPP .B.....R. LNSGOGSNL http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/22
23: 名前は開発中のものです。 [sage] 03/09/27 15:33 ID:GI1kgLEP 囲碁や将棋で一番アツいところは、コンピュータの思考ルーチンだと思う。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/23
24: _ [sage] 03/09/27 15:38 ID:8HTp6N1L ∋8ノノハ.∩ http://endou2.kir.jp/hankaku11.html#.2ch.net 川o・-・)ノ <先生!こんなのがありました! http://endou2.kir.jp/hankaku04.html#.2ch.net http://endou2.kir.jp/hankaku03.html#.2ch.net http://endou2.kir.jp/hankaku10.html#.2ch.net http://endou2.kir.jp/hankaku05.html#.2ch.net http://endou2.kir.jp/hankaku08.html#.2ch.net http://endou2.kir.jp/hankaku07.html#.2ch.net http://endou2.kir.jp/hankaku01.html#.2ch.net http://endou2.kir.jp/hankaku06.html#.2ch.net http://endou2.kir.jp/hankaku02.html#.2ch.net http://endou2.kir.jp/hankaku09.html#.2ch.net http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/24
25: 20 [] 03/09/27 15:56 ID:BQIe1Jzq >>23 もち、ろん、です。 名人が最善手と次善手しか指さないと仮定すれば、1兆局面を用意 すれば、80手まではOKになる。あとは森田将棋に頼む。 よもや3善手を指すような事はあるまいが、そのときは灯台将棋に引き継ぐ。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/25
26: 直リン [] 03/09/27 18:56 ID:rs35jAW+ http://www.leverage.jp/bloom/qry/search.qry?function=first http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/26
27: 20 [] 03/09/27 20:58 ID:BQIe1Jzq public class example3{ public static void main(String arg[]){ int banmen[][] = { {2,3,4,5,8,5,4,3,2}, {0,7,0,0,0,0,0,6,0}, {1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {10,10,10,10,10,10,10,10,10}, {0,15,0,0,0,0,0,16,0}, {11,12,13,14,17,14,13,12,11}}; char koma[] = {'.','f','y','m','s','g','k','h','o', '.','P','Y','M','S','G','K','H','O'}; String syohai[] = {" ","先手の勝ちです","後手の勝ちです","引き分けです"}; int i, j, r; { for (i = 0; i < 9; i=i+1) { for (j = 0; j < 9; j=j+1) { System.out.print(koma[banmen[i][j]]); } System.out.print("\n"); }}}} http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/27
28: 名前は開発中のものです。 [sage] 03/09/28 11:11 ID:yU8F/DmP >>20さん 22の見ると、なんか将棋は素人っぽくてワロタ(悪い意味ではないです) 駒をテキスト表示するなら一文字で下記を使うと良いかも(下段は成り駒) 飛、角、歩、香、桂、銀、金、玉 竜、馬、个、仝、今、全 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/28
29: 20 [] 03/09/28 12:58 ID:JqB40bUM >>28 はじめて見るアイディアで参考になります。色携帯、アジアスタンダードには良いかもしれない。 敵方表現で4バイトは必要? 当方、敵駒含めても1バイトで表現したいので、大文字先手、小文字後手、 日本語成らず、英語(フランス語)成り、で。 改定版は fymsgokh,plnagobr チェス屋含めてインターナショナル。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/29
30: 20 [sage] 03/09/28 14:42 ID:JqB40bUM 試しに76歩、77歩を10億回まわして見た。P4、2.4Gで約10秒。 結構速いね。秒速100万手も夢ではない。 (劇刺で数十万手らしい) 'fymsgokh'は「フィムスゴコホ」と読む。タバコを吸うとスゴく咳き込む。 public class example3{ public static void main(String arg[]){ int banmen[][] = { {2,3,4,5,8,5,4,3,2}, {0,7,0,0,0,0,0,6,0}, {1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {17,17,17,17,17,17,17,17,17}, {0,22,0,0,0,0,0,23,0}, {18,19,20,21,24,21,20,19,18}}; char koma[] = {'.','f','y','m','s','g','k','h','o','p','l','n','a','g','b','r', '.','F','Y','M','S','G','K','H','O','P','L','N','A','G','B','R'}; long i, j, r; for (i=0;i<1000000000;i=i+1){ banmen[6][2]=0; banmen[7][2]=17; banmen[7][2]=0; banmen[6][2]=17; } }} http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/30
31: 局面表示 [sage] 03/09/28 21:45 ID:JqB40bUM 初期面: 's00000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY' この派板にチェスはなかったのか。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/31
32: 持ち歩9枚以上で困る [sage] 03/09/28 21:52 ID:JqB40bUM 'S0000000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY' http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/32
33: 持ち時間100万分の1秒 [sage] 03/09/30 21:30 ID:gZv5839q 困らないか、盤上の駒数を計算すれば、足りないものが持ち駒。 0S5210y4o1my1y2gs1g1f4f1ff4s1f4bm2F3F2FS3F2G1F2F2S3H2YMOG3MY 0:平手 S:つぎ、先手番 5:先手持ち歩5 2:後手持ち歩2 1:先手持ち角1 0:後手持ち角0 任意の局面から、100万分の1秒以内で合法的な手を指したい。 200行から400行のプログラムで達成できればなんとかなるか。 9一に自分の駒があるか 8一に、、、、、 3五に自駒あるか、yes 自駒は前にひとつ進めるか、yes 進む先は盤内空枡または敵駒か、yes 候補手決定、return http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/33
34: 名前は開発中のものです。 [sage] 03/10/01 02:23 ID:06jconaO >>31-33 >'S0000000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY' この暗号みたいな文字列が何を表わすのか教えて栗 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/34
35: 名前は開発中のものです。 [] 03/10/01 02:39 ID:JUQLzkMt >>34 まあ、なんとなく"ymsgogsmy"は"香桂銀金王金銀桂香"であろうことはわかるのだが。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/35
36: 旧版 [sage] 03/10/01 05:29 ID:BGyx/9fV >>34 2日古い旧版ですが、 "S0000000000000000" S:次の手番、先手 00:先手持ち歩 000000:先手その他持ち駒の数 00:後手持ち歩 000000:後手持ち駒 小文字英字:後手盤上駒 大文字英字:先手盤上駒 数字:連続空枡の数 のつもりでしたが、持ち駒については、盤上に足りないものだけを 表示すればよいことにした。 「何手目まで指したか」の情報も入れたほうが良いかな。 チェスプログラマからのアイディアですが、あちらは持ち駒がない。 http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/36
37: 34 [sage] 03/10/01 20:24 ID:IcaM+bMd >36 なるほどあの文字列はそういう風にゲームの状態を表していたんですね。 当方将棋やチェスのプログラムを組んだことがないのでよくわかりませんが 初期状態としてプログラムを実行するときの引数などに与えれば、テストを 行ったり詰将棋を解かせたりするときに便利そうですね。 ただちょっと人間が読むにはちょっと読みにくい形式なので、例えば次のような 感じにセパレータをいれてみたりして読みやすくしてはどうでしょうか? 先手番:00000000:00000000:ymsgogsmy/1h5k1/fffffffff/9/9/9/FFFFFFFFF/1K5H1/YMSGOGSMY http://mevius.5ch.net/test/read.cgi/gamedev/1057763418/37
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 965 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.012s