1 :
名前は開発中のものです。 :
03/07/10 00:10 ID:6FQp6G+O 比較的地味なボードゲーム専用のスレが欲しくて立ててみました。 私はc言語で作ったデータベースを使って人間と対戦できる将棋かチェス みたいなソフトを作りたいと思ってますが、グラフィックインターフェースの 作り方がわからなくてつっかえているレベルです。
>>1 まずユーザインタフェースは、テキストベースで作れ。
盤面を表示して、指す座標をひとつずつ入力させるタイプ。
AIのテストなら、それくらいで十分だろ。
もうひとつ逝っておくと、「私は云々」みたいなことは、
>>1 に書くべきではないな。
単発質問スレだとおもわれるぞ?(もし真性単発質問スレだったらスマソw)
4 :
名前は開発中のものです。 :03/07/10 06:47 ID:ZYbxAUmJ
ありがとうございます。単発というわけでなく話題提供のつもりでしたが まぎらわしかったですね。すみません。ボードゲームに関するいかなる 話題でも参考になるのでそういう風に解釈してください。 あと2でいわれたテキストベースというのは具体的にどのようなことを すればいいのかもう少し詳しく教えてくださいませんか。当方c言語を はじめて一ヶ月。BCCだけでとりあえず思考ルーチンだけはめどが たってきた程度で表示はまったくの素人なのです。
5 :
名前は開発中のものです。 :03/07/10 21:54 ID:661ntdMC
6 :
直リン :03/07/10 22:12 ID:NVbp/PY1
7 :
_ :03/07/10 22:44 ID:MmlDAKc1
9 :
1 :03/07/11 02:32 ID:tBkU7GoV
ミニゲームなのであらゆる可能なポジションに対しそれが最善で 何手で詰むかまたは引き分け(ドロー)かの情報を得ることができますので それを一度作ってデータベースとしてそれを参照しながら(数MBになる予定) 次の一手を考えるようにしたいと思ってます。まだ途中ですが。
>>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 さんが言っているような感じ。思考ルーチンができるなら、
めちゃ強いのを作ってから、グラフィカルなのに入っても遅くない。
いきなり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"); }
12 :
続き :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]);
13 :
間違い :03/07/11 11:06 ID:JYguR8yG
↑ cpu_no_sikou_routine(&i, &j); banmen[i][j] = 2; だった。ごめ。
14 :
名前は開発中のものです。 :03/07/16 10:39 ID:/YDbp02a
放置されてるスレなんで上げてみた。 いいんじゃね、東大将棋とかがどうかしましたかって言うのは無理だけど なんか作りたいね。
16 :
名前は開発中のものです。 :03/07/24 15:31 ID:KoHs+Voy
17 :
名前は開発中のものです。 :03/07/24 16:03 ID:xMvniY6D
19 :
名前は開発中のものです。 :03/07/29 07:57 ID:g9GIpNGm
1より森田さんはどうなったの?
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"); } } } }
21 :
あぼーん :03/09/27 13:19 ID:V9CFc5A8
あぼーん
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
囲碁や将棋で一番アツいところは、コンピュータの思考ルーチンだと思う。
24 :
_ :03/09/27 15:38 ID:8HTp6N1L
25 :
20 :03/09/27 15:56 ID:BQIe1Jzq
>>23 もち、ろん、です。
名人が最善手と次善手しか指さないと仮定すれば、1兆局面を用意
すれば、80手まではOKになる。あとは森田将棋に頼む。
よもや3善手を指すような事はあるまいが、そのときは灯台将棋に引き継ぐ。
26 :
直リン :03/09/27 18:56 ID:rs35jAW+
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"); }}}}
>>20 さん
22の見ると、なんか将棋は素人っぽくてワロタ(悪い意味ではないです)
駒をテキスト表示するなら一文字で下記を使うと良いかも(下段は成り駒)
飛、角、歩、香、桂、銀、金、玉
竜、馬、个、仝、今、全
29 :
20 :03/09/28 12:58 ID:JqB40bUM
>>28 はじめて見るアイディアで参考になります。色携帯、アジアスタンダードには良いかもしれない。
敵方表現で4バイトは必要?
当方、敵駒含めても1バイトで表現したいので、大文字先手、小文字後手、
日本語成らず、英語(フランス語)成り、で。 改定版は
fymsgokh,plnagobr
チェス屋含めてインターナショナル。
30 :
20 :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; } }}
31 :
局面表示 :03/09/28 21:45 ID:JqB40bUM
初期面: 's00000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY' この派板にチェスはなかったのか。
'S0000000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY'
困らないか、盤上の駒数を計算すれば、足りないものが持ち駒。 0S5210y4o1my1y2gs1g1f4f1ff4s1f4bm2F3F2FS3F2G1F2F2S3H2YMOG3MY 0:平手 S:つぎ、先手番 5:先手持ち歩5 2:後手持ち歩2 1:先手持ち角1 0:後手持ち角0 任意の局面から、100万分の1秒以内で合法的な手を指したい。 200行から400行のプログラムで達成できればなんとかなるか。 9一に自分の駒があるか 8一に、、、、、 3五に自駒あるか、yes 自駒は前にひとつ進めるか、yes 進む先は盤内空枡または敵駒か、yes 候補手決定、return
>>31-33 >'S0000000000000000ymsgogsmy1h5k1fffffffff999FFFFFFFFF1K5H1YMSGOGSMY'
この暗号みたいな文字列が何を表わすのか教えて栗
35 :
名前は開発中のものです。 :03/10/01 02:39 ID:JUQLzkMt
>>34 まあ、なんとなく"ymsgogsmy"は"香桂銀金王金銀桂香"であろうことはわかるのだが。
36 :
旧版 :03/10/01 05:29 ID:BGyx/9fV
>>34 2日古い旧版ですが、
"S0000000000000000"
S:次の手番、先手
00:先手持ち歩
000000:先手その他持ち駒の数
00:後手持ち歩
000000:後手持ち駒
小文字英字:後手盤上駒
大文字英字:先手盤上駒
数字:連続空枡の数
のつもりでしたが、持ち駒については、盤上に足りないものだけを
表示すればよいことにした。
「何手目まで指したか」の情報も入れたほうが良いかな。
チェスプログラマからのアイディアですが、あちらは持ち駒がない。
37 :
34 :03/10/01 20:24 ID:IcaM+bMd
>36 なるほどあの文字列はそういう風にゲームの状態を表していたんですね。 当方将棋やチェスのプログラムを組んだことがないのでよくわかりませんが 初期状態としてプログラムを実行するときの引数などに与えれば、テストを 行ったり詰将棋を解かせたりするときに便利そうですね。 ただちょっと人間が読むにはちょっと読みにくい形式なので、例えば次のような 感じにセパレータをいれてみたりして読みやすくしてはどうでしょうか? 先手番:00000000:00000000:ymsgogsmy/1h5k1/fffffffff/9/9/9/FFFFFFFFF/1K5H1/YMSGOGSMY
>>37 人間にもコンピュータにもと「ふたまた」をかけたものです。
気にかけていただき恐れ入ります。
2台のPC間の通信、局面データを保存するときのキーなどを想定しています。
ちなみに
>>33 の
'平手先手番:52:10:y4o1my/1y2gs1g1/f4f1ff/4s1f2/2bm2F2/1F2FS3/F2G1F2F/2S3H2/YMOG3MY'は
後手持ち駒:歩2
y・・・・o・my
・y・・gs・g・
f・・・・f・ff
・・・・s・f・・
・・bm・・歩・・
・歩・・歩銀・・・
歩・・金・歩・・歩
・・銀・・・飛・・
香桂王金・・・桂香
先手持ち駒:角1歩5
∨香 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨王 ̄ ̄∨桂∨香 後手:歩2  ̄ ̄∨香 ̄ ̄ ̄ ̄∨金∨銀 ̄ ̄∨金 ̄ ̄ ∨歩 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨歩 ̄ ̄∨歩∨歩  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨銀 ̄ ̄∨歩 ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄∨馬∨桂 ̄ ̄ ̄ ̄∧歩 ̄ ̄ ̄ ̄  ̄ ̄∧歩 ̄ ̄ ̄ ̄∧歩∧銀 ̄ ̄ ̄ ̄ ̄ ̄ ∧歩 ̄ ̄ ̄ ̄∧金 ̄ ̄∧歩 ̄ ̄ ̄ ̄∧歩  ̄ ̄ ̄ ̄∧銀 ̄ ̄ ̄ ̄ ̄ ̄∧飛 ̄ ̄ ̄ ̄ ∧香∧桂∧王∧金 ̄ ̄ ̄ ̄ ̄ ̄∧桂∧香 先手:角歩2
だれか、Cで10億回まわして。
42 :
◆R/rLuLKeEI :03/10/03 22:14 ID:6g0/L3Ad
>>1 >c言語で作ったデータベースを使って人間と対戦できる将棋かチェス
データーベースはC,JAVA無関係なので、作りましょう。
まずは先手、機械、19手まで。
1:76歩
3:
14歩:xxx;24歩:xxx;34歩:xxx;44歩:xxx;
54歩:xxx;64歩:xxx;74歩:xxx;84歩:xxx;
94歩:xxx;32銀:xxx;42銀:xxx;32金:xxx;
42金:xxx;52金左:xxx;42玉:xxx;52玉:xxx;
......
1手目は76歩:77760 3手目は後手指手にかかわらず26歩:27260 13140:27260 23240:27260 33340:27260 ... 91920:27260 5手目 13140,14150:26250 ... 33340,53540:39480 33340,41320:69780 ...
1手目、3手目、コンピュータがいつも同じ手では面白くない。 1手目:30 2手目:30 3手目:8 4手目:26 5手目:4 6手目:16 7手目:2 8手目:12 9手目:2 10手目:8 ..... 位が適当か、
30*30*8*26*4*16*2*12*2*8=40,0062,7200 すでに46億か、無理だ。 30*30*4*16*2*8*2*4*1*2=1474,5600 15百万、この程度か。 あと50手を先手1手、後手2手で、32百万、掛けると、 472兆、ちょっと苦しい。 8*30*2*16*1*8*1*4*1*2=491520 、30分の一になった。 16兆。 これで60手までOK 機械でうまくはじき出せるか。
47 :
無理 :03/10/09 03:57 ID:G6zbUIk0
相手の手を2手用意したのでは、すぐに定跡から外れて役に立たないか。 4手まで用意で、40手までで、1兆。
コンピューターの将棋は、終盤はプロ並の寄せをするようになったが 序盤から中盤はイマイチだからねぇ。
40手目まで先手後手5分の将棋を、コンピュータと強い人間が引き継いで指せば、人間勝利は当然。 では、130手で終局した互角の名勝負を、現在の最強ソフトと最強人間で指し継ぐとすれば、何手目くらいからが、良い勝負になるでしょう。
>>49 ま、言いたい事は大体分かるけど、もっと分かりやすい日本語使おうな(5分→互角)
ってか文章の最後のほうなんて、とても日本人とは思えんぞ。
あんまり将棋が指せない(棋力が低い)人なんだろうけど、
「40手目まで指し終わり、その状況がほぼ互角」ってのは、そうそうないと思うし、
お互いにプロ並の棋力があっても、なかなか互角だと断言できないだろうから難しいよ。
130手というと終盤の状況だろうし、その時点でもマァマァ長手数の部類になるから
「優劣なし、互角」と断言ができずに無理っぽい。
(矛盾してるっぽいが、もし本当に互角の状況なら手番があるほうが有利になる場合が多いのでは)
//www.colina.demon.co.uk/chu.html. 中将棋のソースがあった。 if timeRemaining == 60000 then do -- byo yomi basicTime=sp.getByoYomiTime() -- 13 seconds - cautious maximumTime=55 -- leaves 5 seconds in which to actually make the move end if abbrev.equals(String "P") then return "Pawn" else if abbrev.equals("+P") then return "Tokin" else if abbrev.equals(String "K") then return "King" else if abbrev.equals(String "L") then return "Lance" else if abbrev.equals(String "S") then return "Silver General" else if abbrev.equals(String "G") then return "Gold General" else if abbrev.equals(String "B") then return "Bishop" else if abbrev.equals(String "R") then return "Rook"
JavaにBitSetクラスというものがあるのを偶然見つけた。 81枡での駒の存非をビットで表現するのに便利そう。
53 :
名前は開発中のものです。 :03/10/18 00:28 ID:fl0E31RS
やさしいチェスプログラムがあった。 これを焼きなおして見よう。 //build start position int [] org = { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,124, 22, 23, 25,126, 23, 22,124, 99, 99, 21, 21, 21, 21, 21, 21, 21, 21, 99, 99, 00, 00, 00, 00, 00, 00, 00, 00, 99, 99, 00, 00, 00, 00, 00, 00, 00, 00, 99, 99, 00, 00, 00, 00, 00, 00, 00, 00, 99, 99, 00, 00, 00, 00, 00, 00, 00, 00, 99, 99, 11, 11, 11, 11, 11, 11, 11, 11, 99, 99,114, 12, 13, 15,116, 13, 12,114, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99 }; for (int i=0; i < 120; i++) board [i] = org [i]; //update screen repaint ();
>>36 後手盤上駒、先手盤上駒の順に分けると:
'0S:lnsgkgsnl/1r5b1/ppppppppp/108/ppppppppp/1b5r1/lnsgkgsnl'
'0S5210:l4k1nl/1r2gs1g1/p4p1pp4s1p/4Bn/83/p3p2ps3/p2g1p2p/2s3r2/lnkg3nl'
左上隅から順に81枡で後手駒終わり、次先手駒。大文字は成り。
文字の種類が少なくなってすっきりした。
>>38、39 8二香は誤り、8二飛
>>30 banmen[7][2]=17;は誤り、banmen[5][2]=17;
大文字と小文字を逆にして見た。 '0S5210:L4K1Nl/1R2GS1G1/F4F1FF/4S1F4bN/83/F3F2FS3/F2G1F2F/2S3R2/LNKG3NL' 「0S5210:香4王1桂香/1飛2金銀1金1/歩4歩1歩歩/4銀1歩2/2馬桂 /83/歩2/1歩2歩銀3/歩2金1歩2歩/2銀3飛2/香桂王金3桂香」
一兆と一口に言っても1秒で1局面を評価結論出して行って3万年かかる。 10000,0000,0000/60/60/24/365.25=31688.08781
まずは盤が必要。 9x9 11x11 16x16 どれが良いか。9x10を延長して13x10+1にしよう。 なぜプラス1か? 99,99,99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99,99,99, 99,18,19,20,21,24,21,20,19,18, 99,00,23,00,00,00,00,00,22,00, 99,17,17,17,17,17,17,17,17,17, .... .... 99,99,99,99,99,99,99,99,99,99, 99,99,99,99,99,99,99,99,99,99,99 のような感じ。99より48が良いか。 11x11の採用者は1列無駄だよね。チェスじゃないから 桂馬は横に飛ばないのに。
発見!! 64JAVA J2SE Itanium v 1.4.2_02 のダウンロード でも、ハードとOSの値段は?? あ、OSはRedHatでも良いか。
Itanium2はサーバー用か。Athlon64用だと良かった。
案1: 人間とプログラムが対戦する際、 人間側の選択肢を「2択」データベースで用意する。 例えば人間初手なら: 1:76歩 2:26歩 3:投了 その他の手は選択不可とする。 プログラム側の対応手を1手用意する。 初手より70手までで320億応手。 70手終了時点で、 歩:1点、小駒:2点、大駒:10点で集計。得点多いほうが勝ち。 これなら全ての手をゼロ秒で送り出せる。 遊べると思います?
ストレスが溜まると思う
中盤以降、どうやって2手に絞り込むのだ?
申し訳ない。へぼプログラムの考える最善2手だから、ロクな手では無いとおもわれ、 まずは携帯用ストレス解消用。ナズケテ「ストレス将棋」
序盤34手まで、13万通り、は過去局CDROMから頻出手を選ぶ。 以降は1局面あたり、プログラムで1000秒思考した結果最善2手を保存する。 PC1台で1314.9局面/年。1000台のPCにお願いして、131万局面。 約40手先、合計で74手まで用意できる。 コンピュータの考えた次善手をたどると実は人間側の勝ちになったりする?。
計算違いだ。34手目までは、過去の名局ただ1局のみをベースにする必要がある。 もしくは、最新の流行1局。こちらだと1年先の保証がない
計算バグ PC1台で31557.6局面/年 (24倍を忘れた) 40台程度の協力者でよい
40手までの「2ちゃんボードゲーム板標準手順」を将棋の強い方に上げてもらおう。 その後の30手をDB作成する。まずは1秒思考版で。
1. 盤、Bang、 は取りあえず 9x9=81の一次元配列にしよう。 あとで変更するかも知れない。 2. 駒、 こちらも適当に、 先手歩:16、先手香車:17、後手歩:32、、 3. generateArandomMove() 乱数で合法手を1手作成して返す。 4.何局か指して、勝率の良いもの選ぶ。 計画 1.詰め将棋、1手詰め 2.詰め将棋、3手詰め 3.詰め将棋、5手詰め 4、次の一手問題 5、2日制将棋1日目終了後指し継ぎ 6、序盤データベース
944422200 ....K.... ......... ....g.... ......... ......... ......... ......... ......... ......... 000010000 1手詰め、持ち駒、金 ランダムに3手指し終了した時点で駒台に敵玉がのっていれば 勝ち、その他は負け。
50万回試行した。結果は、、、、、、 41金:702 61金:727 42金:540 52金:663 62金:588 ちょっと予想と違う結果になった。 61金、62王、のあと9分の2の確率で王を取る。 52金、61王、のあと10分の1の確率で王が駒台にのる。 とりあえず理屈には合って居そう。 「逃げる」「取る」手を覚えさせれば、なんとかなりそう。 次の1手詰めをやってみよう 844322100 ......... ......G.. ......... ......dsK ........G ......... ......... ......... ......... 000000000 持ち駒無し
>>70 61金で41王に逃げる確率は5百数十分の一、
王が移動しなければ、9分の一で、王確保。
52金後、王が移動しないと10分の一で王捕獲される。
「取る」プログラムが「逃げる」よりは簡単そう。
あと何を工夫するか。
王手をチェックすれば、大幅に高速になるのは「見え」てるが、指し将棋の
強化には約に立たないから後回し。
次の1手詰めは50万回では差が出ない、500万回、朝までかかる。
>>70 10万回で
23銀不成り:468
23銀成り:341
35銀:245
少しはずしているが、まあ、近い。敵玉が逃げない場合も含めての敵玉捕獲確率のようなもの。
一気に次の1手問題。
601000000
LKS.....L
..S.r....
....B..PP
.PpG.....
P.P....p.
p.Nng.p.p
kpn..p.r.
..g......
l....B..l
000012000 持ち駒金銀2、(95歩まで) 500万回
先手生駒:plnsgbrk 先手成り駒:tycagmd
英語圏でも将棋プログラムを開発しているから、あまり外れないほうが良いか。(少なくとも生駒)
桂馬の「桂」は何の意味があるのだろう。金銀さんご、、、、、、などの言葉があるから、「珊瑚」に関係ないのかなーー。それで、 coral にしてみた。大外れかもしれない。
500万回で最頻手は92銀:5883回。 お目当ての手は第16位で1739回。 約150の可能手の内。 終盤なので、玉の防御をすれば、もう少し良くなるか。
中盤の問題。 100万回。 400100000 LN...G.NL ......SK. P........ ..PBPR.P. .P.P..P.P p.pN.p... .pb.pg.rp ......s.. ln...g.kl 000011000
初手48玉、第3手59玉と出た。
中盤問題は本の正解とは異なる66角。それでも某ソフトと同じ。 もっと序盤問題から: 000000000 LN・GKGSNL ・R・S・・・B・ P・PPPP・PP ・P・・・・P・・ ・・・・・・・・・ ・・歩歩・・・・・ 歩歩・・歩歩歩歩歩 ・角・・・・・飛・ 香桂銀金玉金銀桂香 000000000 先後逆 先生の正解は68飛だが、、、 とりあえず、王の防御だけは入れた。20回に1回防御しない、そのとき駒台に上げられる。つみ判定しなくて良いから省力
ほう、なんか面白いことやってる人がいますな。 1手指すのにものすごい時間かかりそうだが。
将棋ソフトの探索速度、秒速数十万手だそう。 DeepBlue の速度は秒速: 200Million moves だそうです。
>>76 あまり序盤すぎて、どうにもならない。65歩と68飛が嫌われた手。
王が動くのが好まれて居る、が、
可能な局面の数と、乱数そのものの数に圧倒的な差があるので、乱数の偏りを見ているのかもしれない。
もう少し局面を進めて見よう。
000000000
LN・・・GBNL
・R・・G・S・・
P・・P・・SK・
・・P・PPPP・
・P・歩・・・・P
歩・歩・銀歩歩歩・
・歩角・歩・桂・歩
・・・飛金・銀玉・
香桂・・・金・・香
000000000
200万回、嫌われた手:75歩:−236点
推奨手:25歩:1189点、45銀:637点、29玉:532点
どうなんでしょうか。先生推薦手は別の手。
全然駄目だ。25歩は確率的に取って来ない、24歩、20回に1回逃げない、敵玉捕獲確率が高い。 45銀も同じ、34銀、高確率敵玉捕獲。 相手が悪い手を指してこちらが勝ったとき、相手が良い手を指してこちらが勝ったときで、同じ1勝ではdame. 改善!
先手第1手目が10000勝10000敗とする。 第2手目が後手側100勝1敗の手で、この対局に先手が勝った場合: 100点与える。 負けた場合:1点引く。 やってみよう。
うーん、バグフルだ
正月の休みに虫と戦えり 新年にバグ取れぬ間は目出もせず 新年にバグの取れたるめでたさや
休みは終わり、バグとりまずまず、局面で勝った手を再使用。 秒速約5000手。1000倍速必要。次の課題はキラー手の採用。 特定手の生成、王手、取る手、逃げる手、成る手、を高速に生成したい。
詰め将棋に限って言えば、詰んだ王将の位置を想定して その逆順で手を考えるってパターンもありかもしれないと想像。 完全に詰んだ形でしかも持ち駒無しっていうかなり限定された状況だし 自分が詰め将棋考えるときにそうしてるから。
「想定」はコンピュータの不得意科目だから難しそう。 詰め将棋に関しては、現在ソフトは人間を超えてる模様。後発組はなかなか追いつけない。 序盤はすごく弱いとの評判だから、、、なんとか、、、 序盤で差をつけてそのまま、、、
いまのところ、あまりうまくいってない。バグなのか、、 ある新出局面が与えられる: 可能な指し手は200.そのうち190手以上が凡手。 全手試すと時間が足りない。如何に良い候補手を選ぶか、、 取る成るとか言っているとまた時間がかかる。 局面から何手目かの別に成功(killer)手を集積しようか。 手目別キラー勝率順、、、 どう? みんな、序盤がだめって言ってる、、、
89 :
20 :04/01/25 11:27 ID:4RpPXlNl
おーっ援護だー、有り難い。100まで行くのに半年、1000までいけるかな、新スレッドの立て方知らないし、心配ないか。
負けてるくせに、手を変えないバグ発見。ゆっくりなおそう。 乱数将棋の強さをゼロとして、C将棋の強さ標準を作成することが可能。 2枚落ちで勝率5割なら600点、それにまた2枚落ち5割で1200点、、、、 絶対零度のようなもの、、、ケルビンじゃなく、ボドゲー8000点とかで呼んでください。 うちの特許じゃよ! 【香 落】100点 【角 落】250点 【飛 落】350点 【飛香落】450点 【二枚落】600点
6手まで指し終った段階で一歩でも取られていれば負け。 76、34、26,84、66は66同角で先手負け。
n手まで将棋:n手まで指し終わり駒損の方が負け。 n=6: 76,14,56,13角、78銀、 n=8:
データベース: 第1手目76歩、第3手目26歩として、第5手目を準備しよう。 約900手くらい。第7手目は3万手以上か。後手の全手に対応。
グッドニュース:ひと月ぶりのバグ取りでやっと3手詰めが解けた。 5万局あまりの試行で発見。攻め手は王手に限ってないので、もち駒ありだとどこでも打って試す。29飛車とか 30万手程度だから、高速プログラムなら1秒以内か。とりあえず、というとこか。 30分程度かかった。秒速200手、デバッグ付きだから。 000000000 ・・・・・・・・・ ・・・・S・・・・ ・・・N・銀K・P ・・・飛・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ 001010000 飛金
32金、 43玉、 33飛車、 31桂馬:20分の1の確率で王手を無視して自由に指す。それにしても玉を取り返す気か。 20分の19はギブアップして決着する。 74飛車:王手を逃げないからと言って直ぐに取るとは限らない。あくまでも自由に。 95歩:玉将健在で後手の勝ち 次の問題 000000000 ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・・・・ ・・・・・・竜歩・ ・・・・・歩歩・b b=後手馬 ・・・・・銀K・・ ・・・・・・・桂香 001010000 飛金
>>95 ×:玉を取り返す
○:玉を取られて、飛車を取り返す
後手後手言わんで玉方かな。
日本語でもこれだけバグが出る、、、
コチコチコッチン、ボドゲーさん ................、動いてる にーにの角と、はーちはちの角が こんにちは、さようなら ちくたくコッチン角交換 「最強」もり上がっているな、、、わが道を行く、、、
98 :
◆R/rLuLKeEI :04/02/03 08:20 ID:Oi0TsbpK
まずは頑張れー。 あまり盛り上がるとあちらでは板違いなりそう。 まだゲーム関連ではおまいら最強の2スレッドだけなんでいいが…
お、訪問者だ。誰も来ないと思って、のんきに替え歌なぞ歌って失礼しました。 ちらかっていますが、、
100 :
◆R/rLuLKeEI :04/02/03 21:57 ID:Oi0TsbpK
やっ、どもども、お構いなく。 いつもは読み込み専門でしたが、陽気な替え歌に誘われてつい。 また不意にお邪魔します。
表示実験。 MSゴシックでOKだが、MSP(Proportional)だと表示がずれる。 <font color=red/>L LNSGKGSNL ◇◇◇◇◇◇◇◇◇ PPPPPPPPP ◇◇◇◇◇◇◇◇◇ ◇◇◇◇◇◇◇◇◇ ◇◇◇◇◇◇◇◇◇ 歩歩歩歩歩歩歩歩歩 ◇角◇◇◇◇◇飛◇ 香桂銀金王金銀桂香
やはり英字はうまくいかない。「ツール、インターネットオプション、フォント、MSゴシック」 でお願いします。
>>95 の5手詰めがまだ解けない。バグを数個直した。このバグありでよく3手詰めが解けたものだ、と再度解かせてみたら7万回試行で解決。
5手を解くには、1,3,5,7手目が正答である必要がある。確率で行けば、1手目正解が160分の一、3手目が100分の一、5手目80、7手目、10として
1280万回に1回正解が出る。 現在、100分、42万局、秒速492手で進行中。
持ち駒のない問題が簡単か。 postが100を超えた。
相手の手の場合の数もあるので、正解に遭遇する確率はもっと小さい。 持ち駒が多い、飛車角が多いと難問となるので、新問題に変更。 000000000 ◇◇◇◇◇角◇◇L ◇◇◇◇飛◇と◇◇ ◇◇◇◇◇R◇K◇ ◇◇◇B◇◇◇PP ◇◇◇◇◇◇歩◇◇ ◇◇◇◇◇◇◇◇◇ ◇◇◇◇◇◇◇◇◇ ◇◇◇◇◇◇◇◇◇ 持ち駒なし
ふらりと寄ってみた。なんか色々頑張ってますな。 ここを見てふと思った。 詰め将棋って王の側の選択肢をどんどん少なくしていくゲームなんだよな。 最終的に選択肢が0で詰み。 つまり王が動く時に選択肢が少ない手を優先させれば 余計な探索は減るだろうと思った。 でもここのやり方とは違うから参考にはならんね。スマソ。
お立ちよりありがとうございます。といっても私のスレというわけではないが。 詰め将棋特化ならそれがいいらしい。今のところ、序盤プログラムのデバッグに詰め将棋を利用している。 そろそろ16時間になるが、100万局以上で結論が出ない。今夜半までには何とかなって欲しい。 それとは別に高速化と序盤DBでも考えよう。
107 :
◆R/rLuLKeEI :04/02/08 16:14 ID:t2AC4xnx
なんだか「最強」の序盤DB、考えがこちらと似て来た。急がないと。
以前、七行プログラムで将棋がありましたよね。駒打ちはなかったようですが。今見つからない。
21と、キタ−−,108万局疾走中。まだ勝率5割以下だが、あと11万局勝てば5割超。玉方の手がめまぐるしく変わる、、バタバタしている。 やったね。
RedHat9に付属の Iagno 2.2.0 なんだけど、レベル3でやると猛烈に時間が かかる。(5手目辺り)3分くらい待っても打たないから終了させたけど、 せめて時間だけでもカウントして欲しい。PC側も思考中にカウントしてな いとハングしたと思ってしまう。(もしかしてマジでハングか?) メール しようと思ったけど英語できねーからここでちょっとグチ。。。
113 :
名前は開発中のものです。 :04/07/28 16:27 ID:r+zgac5E
114 :
名前は開発中のものです。 :04/08/19 01:53 ID:7LEsf4i7
Linuxで逆さの漢字を表示しようとすると地獄なんですけど、皆さんどうしてますか? Xlib を使って強引に表示するという手もありますけど・・・・・・。
>>115 教えて頂いてありがたいのですが、残念ながらアドミンじゃないのでインストール出来ません・・・。
>>116 X Serverさえ手元の端末で動かせれば何とかなる。ガンガレ。
Knoppixなりcygwinなり何なりでなんとかならんか。
>>117 Windowsに移植したいのではなくて、Linux環境(の麻疹)のほうで実行・表示したいのですが・・・。
逆さ文字が駄目ならせめて、画像ファイル(データ)を読み込んで、
その画像をWindow上の任意の場所に表示できるだけでもいいです。
たったこれだけのことですが、表示するだけの方法ならいくらでもあるのですが、
Window領域(グラフィック領域)の任意の場所に表示となると、途端に方法が見つからなくなってしまいます。
思考ルーチンをCPUの速度で実行したいので、出来ればC言語でやりたいです。
こうなると、やはりX Windowを使うしかないのでしょうか・・・。
出来ないことはないですが・・・。
>>118 移植とは関係ないよ。
LinuxとかXとかの理解に誤解があるんだろうけど、
勉強していけばそのうちわかるだろうからいいや。
画像なら画像で、Javaとパイプでつなぐもよし、Tcl/Tkを呼ぶもよし、
QtかwxWidgetsで少し本気にGUIプログラミングするもよし、好きにしたら。
121 :
名前は開発中のものです。 :04/08/21 17:37 ID:+7pTN+59
そのアップローダーは流れが速いからもう落ちてるぽい。
123 :
名前は開発中のものです。 :04/09/24 16:30:21 ID:Wb26arGV
皆さん世界で一番強いチェスのAIを作り上げましょう。 typedef enum {B_KING = -6,B_QUEEN = -5,B_ROOK = -4,B_BISHOP = -3, B_KNIGHT = -2,B_PAWN = -1,NONE=0, PAWN=1, KNIGHT=2, BISHOP=3, ROOK=4, QUEEN=5, KING=6} PieceT; typedef enum {A1=0, A2, A3, A4, A5, A6, A7, A8, B1, B2, B3, B4, B5, B6, B7, B8, C1, C2, C3, C4, C5, C6, C7, C8, D1, D2, D3, D4, D5, D6, D7, D8, E1, E2, E3, E4, E5, E6, E7, E8, F1, F2, F3, F4, F5, F6, F7, F8, G1, G2, G3, G4, G5, G6, G7, G8, H1, H2, H3, H4, H5, H6, H7, H8} SquareT; 皆様どうな手法・探索方法でも構いません。 ありとあらゆるやり方でレスポンスの早くて弱いAIからレスポンスが早くて強い AI。ありとあらゆるやり方でAIの部分だけ考えていきましょう。 とりあえず上のに基礎的な部分をつけるんでそこからは皆さんの力をお借りしながら 地道に強くて早いAIから弱くて遅いAIも作ル予定です。 皆様の案やアルゴリズムの知識をお借りして作り上げていく所存でございます。 では失礼します。
124 :
名前は開発中のものです。 :04/09/26 00:22:15 ID:uMKqZE6G
126 :
124 :04/09/26 19:13:56 ID:uMKqZE6G
対戦きぼんぬ!
127 :
名前は開発中のものです。 :04/09/28 21:45:55 ID:SANJ/ziE
将棋・オセロ・囲碁・チェス・その他ボードゲームでソースが公開されている サイトなど知っておられる方おりましたら教えて頂けますか。 よろしくお願いします。
129 :
124 :04/10/02 15:29:45 ID:vOgyK91B
130 :
124 :04/10/18 00:05:09 ID:6lxdirBj
age
>>129 昔作ったオセロを移植中。
評価関数が正しく機能してなくて、
あからさまに変な手を打つ・・・。
勝てるかどうかだけでも確かめたいんだけど、
これってコンピュータ対人間ってできないのかな?
132 :
sage :04/10/30 20:37:51 ID:/7gGlUhq
>>>>
>>123 なんでチェスなん、しょうぎにしなはれ、てつだうよ
>>124 .NET系しか無理なの?ネイティブな言語を使えるならちょっと興味あるんだけど。
134 :
124 :04/11/22 20:25:43 ID:0ypaIRpp
135 :
131 :04/11/23 18:55:07 ID:U7/P+cw3
>>134 お、ありがとん。
バグは直ったけど、勝てないw
Sample2が妙に強いような・・・
136 :
124 :04/11/23 19:23:01 ID:JiDSQ1Zx
>>131 完成したら対戦みてみたいので公開きぼんぬ。
>>134 対戦ログ吐かないの?
リーグ戦とかできないしAI作るのに向いてなさげ
138 :
131 :04/11/23 23:49:20 ID:U7/P+cw3
初期配置が変 正式には左上が白 これはダメ ●○ ○● これが正解 ○● ●○
143 :
131 :04/11/26 01:36:53 ID:CO1qZ58U
144 :
名前は開発中のものです。 :04/11/26 19:28:22 ID:nwd/oqGi
AIリバーシの開発者です。 いろいろ修正箇所があるみたいなので、 近いうちに修正します。 リーグ戦モードとかもほしいですね。 選択した、複数のdllを対戦させて結果を集計する。
145 :
124 :04/12/04 14:49:42 ID:gQgEz/b/
保守あげ
>>141 アメリカ式だと逆じゃなかったか?
Yahoo USAに行けば分かる
147 :
名前は開発中のものです。 :04/12/05 01:49:20 ID:hcIz+0Iu
観戦する人が真横から見た状態と考えてみる
149 :
124 :04/12/05 19:25:57 ID:WZALd2Lv
>>149 ただの総当りで順位とかは考えてないです。
わかりやすいようにwikiに勝敗数を書き加えておきました。
先手後手を入れ替えて同じ相手と二度戦います。
基本的には一発勝負ですが時間切れなどは再試合となります。
強さの目安とAI作成のやる気に繋がればと思い表を作成しました。
このスレでアップされたAIは全て戦わせていこうと思っています。
>>左下に白or黒?
他のソフトにあわせていただけると対戦させるときに楽ができていいなぁ・・・なんて。
151 :
名前は開発中のものです。 :04/12/09 05:28:48 ID:xa3u+hyT
152 :
124 :04/12/15 20:48:32 ID:JZjqhTry
新しいAI来ないね。
>>150 勝敗数同じ場合は、全対戦で取得した
こまの数の多いほうが勝ちですか?
156 :
名前は開発中のものです。 :05/02/28 20:23:06 ID:IrM267L5
nage
角周りは取らないぐらいしとけよ・・・
AIはLispが開発効率が良いと聞いた
>>159 迷信
同じ関数型言語ならライブラリの量が決め手。
あと、リストを効率良く扱える言語。
最近の型推論のある関数型言語に触っちゃうとLispは不便に感じる
将棋,チェスでの詰みの判定ってどうやるんだ? 俺にはまったくわからん(;´Д`)
王を取る手の評価を評価できる値の最大値として 王を取られる手の評価を最小値とする。 指すことができる手がどれも最小値なら詰み。
手番側に御飯がなかったら詰み
間違えた、 手番側に合法手がなかったら詰み
167 :
名無し名人 :2005/04/03(日) 02:08:06 ID:NgV9szJO
168 :
名前は開発中のものです。 :2005/06/09(木) 22:13:50 ID:ZSMa8wY6
Bonanza?
169 :
名前は開発中のものです。 :2005/06/10(金) 18:51:50 ID:Qn2POV14
170 :
名前は開発中のものです。 :2005/10/12(水) 15:15:38 ID:WI1zqV2M
四通八達図式を自動的に導き出すプログラムをC言語を使って作りたいんです が、参考になるサイト、または本があったら教えてください。
172 :
名前は開発中のものです。 :2005/10/16(日) 10:19:01 ID:4Acp8/ip
174 :
名前は開発中のものです。 :2006/03/16(木) 00:41:18 ID:yzRgxseK
あ
175 :
名前は開発中のものです。 :2006/03/22(水) 23:42:04 ID:vkTXhv7l
176 :
名前は開発中のものです。 :2006/04/19(水) 23:08:29 ID:DffBqyLp
円形オセロ
177 :
名前は開発中のものです。 :2006/05/17(水) 16:17:21 ID:zNRWs9Vk
178 :
名前は開発中のものです。 :2006/05/24(水) 02:42:18 ID:uUkE2Sm7
保守
180 :
名前は開発中のものです。 :2006/09/11(月) 07:47:50 ID:53++tl6w
オセロの簡単な裏返し判定の仕方がわからん! 思いつくのはめんどくさいものばかり・・・。 5行ぐらいで書けんものかね
普通に書いても5行くらいじゃないかね。 }だけの行とかを省けば。
182 :
名前は開発中のものです。 :2006/09/11(月) 17:01:08 ID:53++tl6w
それをぜひ教えてもらいたい
183 :
王 :2006/10/03(火) 19:48:14 ID:ssSQFQDH
皆さん:
私はc言語を勉強し始めたばかりなので、何方が教えて欲しいんですが、”typedef”って何ですか。分かっている方に説明して頂く、もしくは適当なホームページを教えてください。
メールアドレス:
[email protected]
型名の定義
構造体をつくるのに typedef struct 型名{〜} って書く以外に使った事がないな。 他に使い方あるの?
関数ポインタ
187 :
名前は開発中のものです。 :2006/10/19(木) 22:25:50 ID:JdYr9qe3
ボイーンた
188 :
名前は開発中のものです。 :2006/12/23(土) 12:04:02 ID:Hiyjpqfb
>>188 昨日からいろんなスレageてる阿呆か
いい加減にしろ
190 :
名前は開発中のものです。 :2007/08/15(水) 14:23:59 ID:eTu4t7jm
最近囲碁にハマってるからなんか作ってよ
191 :
名前は開発中のものです。 :2007/10/11(木) 18:25:21 ID:WcPq61Rp
>>191 ここは、作る人の板なので、板違いですよ
194 :
名前は開発中のものです。 :2008/02/16(土) 09:58:58 ID:KtZWjP5k
CUDAなどを使ってGPUで計算させると面白そうだ。
195 :
名前は開発中のものです。 :2008/04/30(水) 15:20:28 ID:4Fbo/hMM
コンピューターの読みを出力させるにはどうすればいいの?
196 :
名前は開発中のものです。 :2008/05/10(土) 23:17:40 ID:UE0xWEqz
実際の音声で単語を録音して、組み合わせるしかない
197 :
名前は開発中のものです。 :2008/05/12(月) 14:49:54 ID:mBwB2m7O
やはり女性の声がいいですよね、探してみます
>>180 オープンソースでいくらでもあるからわからないってことはないだろ
おれが難しく感じるのは評価関数のほう、膨大な棋譜から学習しないと
パターンの重み付けができない・・・
オセロはとりあえず、全検索で獲得枚数で重み付け出来れば形にはなる。 環境によって5〜6手読めればそこそこ強いんじゃないか?オレはその時点で勝てない。 定跡は難しいね。そもそも定跡あるかも知らん
200 :
名前は開発中のものです。 :2008/06/04(水) 14:37:57 ID:FeKBeHI/
200
201 :
名前は開発中のものです。 :2008/06/04(水) 14:45:10 ID:FeKBeHI/
201
202 :
名前は開発中のものです。 :2008/06/08(日) 10:45:03 ID:37N7/8Py
203 :
名前は開発中のものです。 :2008/06/11(水) 11:49:01 ID:vU6TibJg
204 :
名前は開発中のものです。 :2008/08/11(月) 16:47:59 ID:LInsAIev
室内ゲームのオリンピックとかあったら面白そうだよね(´・ω・`)下は主な種目 バックギャモン等の勝敗が運という不確定要素で変わるものは除外 囲碁 将棋 麻雀 チェス チェッカー ダイヤモンドゲーム オセロ
206 :
名前は開発中のものです。 :2008/08/12(火) 00:01:54 ID:SwJzMxYu
>>204 バックギャモンより麻雀のほうが運の要素が高い気がする
麻雀は非公開の不確定でしかも通常4人だろ
208 :
206 :2008/08/14(木) 04:14:09 ID:pnoBoDTH
確かに不確定要素除外なら 二人零和有限確定完全情報ゲーム限定になってしまうね。 バックギャモンは上手い人には勝てないし 覚えたての人には絶対負けなさそうだけど 麻雀は半荘だとルールを知っただけのその日に トップを取れることもあるから 麻雀のほうが運の要素が高いと考えてるんだけど。 確かに麻雀は研究が進んでないから 勝負になるのかもしれないけどね。
伏せてある要素を知らない限り運だろ
配牌要素のある麻雀がありなら、UNOもありになるな。 不確定要素もありにして、数回勝負にするほうがよくね? あと、個人的にはジェンガなんかの手先系も欲しい。
>208 207だが、だから運の要素が強いんだよな?
うん 伏せられてる要素を知っちゃったらプレイしてるとは言えないから
麻雀って研究進んでない? 最善手の検索自体は頭打ちのようなキガスルが。
今将棋ソフトをC#で作ってます ベースの将棋プログラムがあって AI部分はそれぞれのプログラマがdllで書いて、みんなでdllファイルをうpし合って対戦 みたいなのがあればなと思っています .
つ 将棋所
>>215 わかってねーな
他にソフトが有ろうと無かろうと関係ねーんだよ
これから何かを学ぼうとする人間の態度じゃないな、この雑魚
>>215 ほーこういうのが既にあるんですね
ちょっと作ってみるかな
219 :
名前は開発中のものです。 :2008/10/02(木) 14:32:26 ID:BqcJEAH9
思考エンジンを
>>218 がうpしてくれるのwktkしてまってる
まず将棋の駒なんだがダサい。 もっとチェスみたいにセンス良いのに変えて。 それと動かし方も特殊なの作って。
そう思うなら自分が作れば良いのに
チェスの駒なんて幼稚でダサイ
古いチェスソフトだがBattleChess コマが甲冑着た兵士で、動かすとそのマスまで歩いていって敵のコマを斬りつけて倒すのが衝撃的だった
224 :
218 :2008/10/06(月) 03:50:43 ID:1QX8X5Nt
>>219 ありがとう
ようやく合法手が打てるようになって、
駒はまだランダムに動いているだけ
完成まで何年かかるのかしらw
>>223 衝撃的でもなんでもない。
元が兵士だの王様だのの戦いだろが。
そういうのをゲームにしたのがチェスだろ。
>>225 ビジュアル的に衝撃的という意味だ、馬鹿がw
衝撃的でもなんでもない。 元が兵士だの王様だのの戦いだろが。 そういうのをゲームにしたのがチェスだろ。
将棋もチェスも元が兵士だの王様だのの戦いなのは今さら口に出して言うことが恥ずかしいほどの常識
明言してないからと言ってそれを汲み取れない
>>223 が馬鹿
これだからチェス厨は┐(´〜`;)┌
ん、斬新な解釈じゃなくて、アニメーション効果に衝撃を受けたんじゃないのかと思ったんだが、 なんで古代の戦争を模したという常識を知らないという前提で叩いてるの?
ハゲタカのえじきとかなら、さっくりさくさく作れないかなあ
234 :
名前は開発中のものです。 :2009/06/13(土) 07:41:09 ID:2+1LYKG9
あげ
235 :
名前は開発中のものです。 :2009/06/16(火) 02:11:21 ID:1CAlzcIC
習作のため、一番簡単なゲームってなんだろ?
┌─┬─┬─┐ │ │ │ │ ├─┼─┼─┤ │ │○│ │ ├─┼─┼─┤ │ │ │×│ └─┴─┴─┘
言われてみれば確かにッ!
238 :
名前は開発中のものです。 :2009/06/25(木) 22:18:37 ID:5GUe6Bd4
オセロ完全解析してゲ製作板大勝利しようぜ
うむ
例えばポーカーなんかで、 1枚ドローするところを、内部的に2枚引いておいて強い方を採用する… っていうのは、プレイヤーにバレちゃうものだろうか。
採用しなかったほうを引く山に戻すならばれにくい。 捨て札にしたら、最後に山の数が合わなくなってばれる。
山札に戻すのは、当然として。 戻すときに一番上/下に戻すのと、ランダムな位置に戻すのとでは、また変わってきそうね。 対戦相手となるキャラ(コンピュータ)ごとに特殊能力が設定してあって、 ドロー運がとんでもなく高いキャラとかなら、十分に使える方法かなとは思ってるけれど。
243 :
242 :2009/08/07(金) 18:30:04 ID:R45zmvwz
失礼。 >242の1段落目は>241へのレス、2段落目は2枚ドローの話題全体へのレス。 んー、確率計算をちゃんとするプレイヤーには評判悪そうだなあ。
将棋モドキなら昔から誰もがいくつも考えて出してる。 そのどれもが将棋を超えられなかった。 なぜなら新しくルールを覚えるのが面倒だから。 なので将棋型対戦ゲームは、面白くてプレイ人口が多いものに収束していってしまう。 新作側がそれを乗り越えるには、作り手がよほど苦労して広めるしかない。 ドラクエは実は構想時にはすでにドラクエ3の要素まで考えられていた。 ただ、いきなり3を出してしまうとプレイヤーがルールについていけない。 なので、ポートピア殺人事件というコマンド選択型ゲームをまず出し 次にドラクエ1でRPGの基本的要素を広め 続いて2で仲間を一人づつ増やしてパーティープレイ型を定着させ それが出来てからやっとドラクエ3を出した。 どんなに面白いものでも、段階的に簡単なものから広めないとうまくいかない。 斬新ルールだが基本的な要素のみに特化した簡易バージョンが必要だ。
>>246 駒二種類減らした4面体(占領、武士、巫女、怨霊)ではどうです?
実際に作ったら、とても手が出せない見積もりを頂きましたので、
没にして6面体に戻しましたけど。
パソコン上で動かすだけなら、負担は減るはずです。
あと駒数を減らすのはOKです。
2個づつから試して慣れるごとに駒数を増やしていってください。
盤面を「5×5」にして試してもいいと思います。
あと「段階的に簡単なもの」があれば、お願いします。
ただ、以上のことを段階的に教えるのはともかく、
各段階のをつくれとかいわれるのは無意味だし経費的にも無理ですね。
そういう問題じゃねぇって。遊ぶ側に苦労を押しつけんなって言ってんの。 テキストでルールとだいたいの遊び方が説明してあるだけの 面白さがわからないゲームで、しかも二人必要だから相手にもルールを覚えさせて なおかつコマやらボードやらも用意しないといけない、なんて今じゃ誰も手を出さない。 面白さの中心部のみを抽出してすぐに覚えられるゲームにして フラッシュですぐに遊べるようにして、しかもそこそこ強いCPUが相手してくれる ぐらいじゃないと、今は客が寄り付かないの。 本気で遊んで欲しいなら、あちこちコピペ貼り付ける苦労をするんじゃなくて プログラム覚えて自分で完成させるぐらいの苦労をしろ。 俺は自分が遊びたいゲームを作るためにプログラムを覚えた。
>>248 そうですね。
例えは悪いけど勇者の手を引いて代わりにモンスター倒して
魔王のところにつれてってて言うくらいの親切さがないと
ダメかもしれませんね。
でもそれで面白いのって感じはしますが。
だからそういう問題じゃねぇって。 >面白さの中心部のみを抽出してすぐに覚えられるゲームにして >フラッシュですぐに遊べるようにして、しかもそこそこ強いCPUが相手してくれる のは、やってるゲームはあるけど >例えは悪いけど勇者の手を引いて代わりにモンスター倒して >魔王のところにつれてってて言うくらいの親切さがないと なんてゲームはないだろうが。例えが悪すぎる。
ゲーム中の楽しい苦労と、ゲーム始めるまでの煩わしい準備の苦労を 同一視するから変な例えになるんだよ。 例えるならハイキングのちょっとした山登りだ。 山のふもとに行くまでに普通の市街地や住宅地を何十キロも歩くのは苦痛。 だから山のふもとまで行くバスが必要だ。ってのが俺の言いたいこと。 お前はそれを「だったら頂上までバスで行けないとダメかもしれませんね」 って言うから話がおかしくなる。 山登りの途中は景色楽しみながらの苦労だからいいんだよ。
>>248 ご指摘ありがとう。
俺はおもちゃ屋で将棋やオセロの隣に並べるのが目標だったから、
プログラム組むとかそういうのは考えてなかった。
ていうか、そんな技術持ってないし。
でも、おっしゃることはごもっともです。
どこかプログラムを替わりにつくってくれるところを検索して探してみます。
ああ、そっちの方で目指してるのか。なるほど。 でも、それもかなりの茨の道だぞ。 おもちゃ屋で定番になって対戦思考ボードゲームなんて ホントその将棋やオセロか囲碁ぐらいしかないし。 その他のゲームは出ては消えていくだけの存在だ。 目指すとしたら、ドイツボードゲームの系統かな。 基本的にはサイコロやシャッフルカードを使うものだけど まれに運要素無しのガチ思考ゲーもあったりするし。 でもその場合、最初に覚える要素が凄く単純なものしか残れないし、ウケない。
あと、プログラムを替わりにってのは、金出さないとまず無理だと思う。 ゲームを本気で広めたいなら、プログラムしてでも自分で作るべき。 それが出来ないなら、その程度の本気度でその程度のゲームだったって事だ。
将棋プログラムできるサイトない?
過疎ってるし質問とりやめます
258 :
通りすがりの妖術僧 :2012/07/27(金) 16:18:03.62 ID:GFEdOn68
以下のような本もあるしサイトも結構ありますね。 アマゾンで取扱い 「コンピュータ将棋のアルゴリズム―最強アルゴリズムの探求とプログラミング-I・O-BOOKS-池-泰弘」
259 :
名前は開発中のものです。 :2012/10/17(水) 06:16:37.40 ID:uzozAJ35
将棋
>>258 かなり古いが森田和郎が書いたコンピュータ将棋の本もあるな
「もしかしたら世界初のコンピュータ将棋の本」らしいから、今からしたらかなり初歩的なことしか書かれてないが
261 :
難しいね :2013/01/24(木) 19:30:18.98 ID:Kycj3XA0
最近覚えたけど、ぜんぜん勝てない
262 :
名前は開発中のものです。 :2013/02/06(水) 18:16:09.27 ID:wjeuu1Tw
263 :
名前は開発中のものです。 :2013/03/06(水) 12:40:47.06 ID:W+jOiTz2
>>255 >あと、プログラムを替わりにってのは、金出さないとまず無理だと思う。
金を出さないなら、企画ごとプログラム担当に乗っ取られても文句言えないよな
265 :
◆taka1B7CEQ :2013/04/26(金) 18:31:25.31 ID:CXgUOPi8
▽持ち駒: ┌──┐ │▽王│一 最終手 ├──┤ には │▽歩│二 ★☆を ├──┤ 付けて │▲歩│三 下さい ├──┤ │▲王│四 └──┘ ▲持ち駒:
266 :
名前は開発中のものです。 :2013/05/11(土) 22:28:05.03 ID:5yfnRn37
友達と将棋盤に、自分は将棋、相手はチェスを並べて戦っている (チェスは1列足りないので、キングを中央にくるように、端列は開ける) 取った駒は再利用不可で、昇格は昇格する駒に応じて、チェスは相手の最前線、将棋は相手の3段目で昇格 チェス側が強くて勝てないよ・・・
将棋側は、あまり動かずに、金・銀を密に連携させて防御陣形をとるべし チェス側は、ポーン以外はすべて大駒だから、機動力が大きいが、多方向に利くのはクイーンとキングのみだから、そこを狙うべし クイーンもキングも取られるわけにはいかないから、玉と金2枚で支援して銀2枚を捨てられる将棋側は有利 チェス側はポーンで斜めスクラムを組んで防御前線を張れるが、正面の駒を取れないのが痛い
268 :
名前は開発中のものです。 :2013/05/13(月) 17:58:19.66 ID:be264q5E
将棋対チェスのゲームって売ってるのかな?
わざわざそれだけのために買うやつなんていないだろ
ZoGの中将棋AIは最強らしいから、やってみたいな 有料だから残念か 将棋対チェスは、ggると調整されたルールが出てくる
272 :
名前は開発中のものです。 :2013/05/24(金) 18:09:30.06 ID:35JPsAxI
チェス側も6枚以上になると駒打てるってルールだったかな 将棋が日本、チェスがアメリカか
>>265 ▲ニ歩
△同玉
▲三歩打
△一玉
▲ニ歩
△同玉
▲三王
まで
6手にて変化の余地なくスティールメイト負け。
276 :
名前は開発中のものです。 :2013/05/26(日) 02:43:56.90 ID:Px4RuB9Z
>>273 サンクスです
確かに大駒中心のチェス側は、高い機動力を生かして序盤は優勢だけど、
終盤は取り合いになると、守備範囲が狭いチェス側は守りきれなくて死ぬ
ある程度、駒をとってから打てるようになるわけね・・・
将棋側はチェス駒を打つわけだけど、チェス駒はナイト以外は向きが分かりにくいから、相手に使用されると嫌だな
リアでやる時は色反転させるからおk これでもチェス側が勝つとなれば、一気に決める必要があったりして。(w 将棋が金銀で固めてしまうと手がでないヨ。。。 将棋対シャンチーもあるかな
>>278 は、ソフト購入しないと無理?
シャンチーとかはちょい特殊なので、
同じ盤でやるのはムズイか
まずはHPでソフト(体験版:無料)をダウンロード これで、デフォルトの48種類のゲームが可能(将棋,チェス,チャンギ,シャンチー,マックルックなど) 使用期限はないけど、機能制限(自作ルールが使用不能)あり 次に、Help>Unlock Full Versionを開いて、NameとCodeに数字を入力すると、機能制限が解除されるよ これで、OpenRuleGamesから参照することで、ダウンロードサイトの亜種ゲームや変則ゲームも使用可能になる 間違っても、「Zillions of Games」,「keycode」,「serial number」,「passward」などでググってはいかん! (倫理的にね・・・)
>277 そうか、将棋側は、使っていない相手(チェス側と逆の色)のチェス駒を使えば良いのか・・・ チェスの駒は、打ち詰めたり、合い駒を打ったりするのに向いていない・・・ でも、チェス側が手に入れるのは将棋側の駒だから良いのか 相手に取られたチェス駒を、さらに取り返して打てるとなると、チェス側はチェス駒を打てるわけで、新感覚だな
>>278 チェス側はナイトが1個足りなくないかい?
ナイトとルークの位置が逆なのも意味があるのかな
チャンギとシャンチーは似てるから、シャンチー VS チェスなら、すぐにできそう
3Dチェスのソフトを作るスレに乗っ取り!
>>281 ありが糖
中将棋やってみるよ^^
調べてみると、摩訶大将棋まであるな
286 :
名前は開発中のものです。 :2013/06/08(土) 19:23:27.40 ID:NBTDQ+RS
立体チェスとか、円形チェスとか、六角形チェスとか、チェス系はバリエーションがスゴイ!
287 :
◆ZSCoFl63NY :2013/06/09(日) 17:15:43.33 ID:R+TCfNWQ
他スレでなかなかレスがつかずにこちらにカキコしました。
ループオセロを作りました。exeファイルなどはトラブル防止のため、あえて添付していません。
動作環境はWindowsです。Cコンパイラがない方は、同梱のreadme.txtを参照してください。
コンパイル方法はreadme.txtに全て記述してあります。
↓にうpしてあります。
http://soft186.e-whs.jp/cgi-bin/up2/img/55.zip 少々強引なコーディングですが、何とか形になりました。
率直な感想を聞きたいので、どうかダウンロード&コンパイル&プレイしてやって下さい。
私のスペックですが、C/C++がそこそこ使えて、フリーソフトを公開した実績がありますが
プログラマとしての実務経験はほぼゼロです。
なんかドラクエの世界地図みたいですね 東西ループ+南北ループ もはや角や端は意味を持たない 最後までどんでん返しがあり得るが、盤のマスは有限と なかなか面白いのでは? メール希望者には、exeで送っても良いのでは? できれば、その技術で、「チェスVS将棋」のインターフェイスを作って欲しい AIなしの対人対戦専用ソフトで
ドーナツオセロか
正確には、平坦トーラス(曲率0の円環円筒)です
291 :
名前は開発中のものです。 :2013/06/15(土) 21:26:29.87 ID:Yvu65IEz
縦列が一周ごとに下にずれたり 横列が一周ごとに右にずれたりすると 更にややこしくなる。 ていうか残り1枚から大逆転が可能になる
赤・白・黒の3色オセロは既出?
4色でやってるTV番組があるぜ
296 :
名前は開発中のものです。 :2013/06/25(火) 20:10:45.63 ID:8VH9PpPP
ほ
297 :
名前は開発中のものです。 :2013/06/30(日) 12:35:57.68 ID:epiVBrxw
リアルタイムストラテジー型のチェスとか、HP制の将棋とか、おもしろいかも?
298 :
名前は開発中のものです。 :2013/06/30(日) 20:09:35.38 ID:CusNUCHO
その昔、バトルチェスってのがあってな・・・
Battle chessでggると、駒を1手で1回ずつ全部動かせるらしい
FFみたいなアクティブタイムバトル(ATB)制とか、 タクティクス・オウガみたいなウエイトターン(WT)制は?
ハンターハンターの軍棋をゲーム化するとかね。 つうか軍棋って同じ名前で実在するんだな。日本にも軍人将棋ってのがあるが。 ここで色々案も挙がってるが、すでにPCもない時代からこういう考えはあったわけだ。
軍蟻は良いかも! 著作権が難しいが・・・ 軍人将棋はバリエーションとローカルルールがありすぎて対応が大変 ZoGにも欲しいな 西洋軍人将棋(ストラテゴ)は、PCでも割と見かけるが
ハンターのあれってちゃっとルール公開されてたの? コマが3つまで重ねられるって事しか解んないわw
ルールなんて自分でこさえちゃえばいいよ。 コマを重ねるってのは、要するに馬にのせたり方天画戟といった装備だったり 名声や決意・覚悟といった精神的なものの加点要素なんじゃないのか? あるいは倒れた仲間を回収して回復ポイントまで運べるとか。逆に補給物資を運んでいるか。 将棋やチェスなら、味方のコマと重なると2倍の能力になり、一回とられても相打ちで敵も倒せて、自分はそこに残れる、的なシステム。
なるほど、高さ=三次元的なゲームだったのか。 二段や三段のコマは一段のコマには抜けれず壁の役割になれる。 壁構築で地形みたいな要素にもなる感じかな?
高さを考慮したSLGといえば、タクティクスオウガ系のゲーム画面(盤面)になりそう・・・
308 :
名前は開発中のものです。 :2013/08/03(土) NY:AN:NY.AN ID:gVJOFEFN
age
309 :
名前は開発中のものです。 :
2014/09/08(月) 16:59:53.68 ID:67y2qr+m 教京サーバアビエ無戸籍交際薬剤消毒介護職利権ローション羽田帝国上層部24時間パトロール義務上野飲み会マックさむらいニューヨーク森林火災チェック問題ヤーフォー確定申告不足ラーメンスーパーポイントdビデオデッキ破壊タイピングGTX860MIGOZ 教京サーバアビエ無戸籍交際薬剤消毒介護職利権ローション羽田帝国上層部24時間パトロール義務上野飲み会マックさむらいニューヨーク森林火災グリーにんにく牡丹黒家宝ラーメン 教京サーバアビエ無戸籍交際薬剤消毒介護職利権ローション羽田帝国上昇部24時間パトロール義務セコム強盗マックさむらいニューヨーク森林火災グリーにんにく牡丹黒家宝ラーメン 築地TPP偏食中国人勧誘マナー憤怒北京オリンピックパブ立橋フロアWHO経済制裁代協議会飲み食い代官僚日テレ漏洩ボーリングITC問題調査福岡駐車近代道廃人画税幕張銀行ググール無断決裁広告料寒孫ゼリー失調栄養士指的フィルム不毛ハンバーグースラーメン 糞箱弐個弐個沖縄ランド近年ペット原発難民船頭100万円コミックコラムシフト廃品鉄工業プラチナ小スモ再販問題WHO光金アナ雪エネルギーソーシャル決裁ニッカン奮闘鬼記者サービスカ米ラマン露店捜査キセルストアアイダホ会長農家不動産工場感激息子