【オセロ,将棋】ボードゲーム【囲碁,War】

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
03/07/10 00:10ID:6FQp6G+O
比較的地味なボードゲーム専用のスレが欲しくて立ててみました。

私はc言語で作ったデータベースを使って人間と対戦できる将棋かチェス
みたいなソフトを作りたいと思ってますが、グラフィックインターフェースの
作り方がわからなくてつっかえているレベルです。
03/07/10 00:46ID:c+Tl/JM7
>>1
まずユーザインタフェースは、テキストベースで作れ。
盤面を表示して、指す座標をひとつずつ入力させるタイプ。
AIのテストなら、それくらいで十分だろ。
03/07/10 00:48ID:c+Tl/JM7
もうひとつ逝っておくと、「私は云々」みたいなことは、>>1に書くべきではないな。
単発質問スレだとおもわれるぞ?(もし真性単発質問スレだったらスマソw)
4名前は開発中のものです。
垢版 |
03/07/10 06:47ID:ZYbxAUmJ
ありがとうございます。単発というわけでなく話題提供のつもりでしたが
まぎらわしかったですね。すみません。ボードゲームに関するいかなる
話題でも参考になるのでそういう風に解釈してください。
あと2でいわれたテキストベースというのは具体的にどのようなことを
すればいいのかもう少し詳しく教えてくださいませんか。当方c言語を
はじめて一ヶ月。BCCだけでとりあえず思考ルーチンだけはめどが
たってきた程度で表示はまったくの素人なのです。
5名前は開発中のものです。
垢版 |
03/07/10 21:54ID:661ntdMC
自信作のエロサイト!

http://alink3.uic.to/user/angeler.html
6直リン
垢版 |
03/07/10 22:12ID:NVbp/PY1
http://homepage.mac.com/maki170001/
7_
垢版 |
03/07/10 22:44ID:MmlDAKc1
http://homepage.mac.com/hiroyuki44/jaz09.html
03/07/10 23:37ID:c+Tl/JM7
>>4
盤面の状態はどうやって持ってるの?
9
垢版 |
03/07/11 02:32ID:tBkU7GoV
ミニゲームなのであらゆる可能なポジションに対しそれが最善で
何手で詰むかまたは引き分け(ドロー)かの情報を得ることができますので
それを一度作ってデータベースとしてそれを参照しながら(数MBになる予定)
次の一手を考えるようにしたいと思ってます。まだ途中ですが。
03/07/11 03:08ID: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さんが言っているような感じ。思考ルーチンができるなら、
めちゃ強いのを作ってから、グラフィカルなのに入っても遅くない。
03/07/11 11:04ID: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");
  }
12続き
垢版 |
03/07/11 11:05ID: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:06ID:JYguR8yG

  cpu_no_sikou_routine(&i, &j);
  banmen[i][j] = 2;
だった。ごめ。
14名前は開発中のものです。
垢版 |
03/07/16 10:39ID:/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
もありますしプラットフォームから作るのもおもしろいんじゃないかと
03/07/24 15:23ID:WvOHnIpg
放置されてるスレなんで上げてみた。
いいんじゃね、東大将棋とかがどうかしましたかって言うのは無理だけど
なんか作りたいね。
16名前は開発中のものです。
垢版 |
03/07/24 15:31ID:KoHs+Voy
http://www.k-514.com/sample/sample.html
  _、_ 癒し系か・・・
( ,_ノ` )y━・~~~ 見たらどうだ・・・
17名前は開発中のものです。
垢版 |
03/07/24 16:03ID: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━━━━━━ グッジョブ!!!!!
03/07/25 00:23ID:fakPmJ3A
結局>>1はどうなったの?
19名前は開発中のものです。
垢版 |
03/07/29 07:57ID:g9GIpNGm
1より森田さんはどうなったの?
2020
垢版 |
03/09/27 13:02ID: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:19ID:V9CFc5A8
あぼーん
2220
垢版 |
03/09/27 14:53ID:BQIe1Jzq
歩、香車、桂馬、銀、金、角、飛車、王、と金、成り香、成り桂、成り銀、竜馬、竜
pawn,lance,night,silver,gold,bishop,rook,oh,Tokin,yari,narikeiMa,argent,dragonHorse,dragon
で行く。

lnsgogsnl
.r.....b.
ppppppppp
.........
.........
.........
PPPPPPPPP
.B.....R.
LNSGOGSNL
03/09/27 15:33ID:GI1kgLEP
囲碁や将棋で一番アツいところは、コンピュータの思考ルーチンだと思う。
24_
垢版 |
03/09/27 15:38ID: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
2520
垢版 |
03/09/27 15:56ID:BQIe1Jzq
>>23
もち、ろん、です。

名人が最善手と次善手しか指さないと仮定すれば、1兆局面を用意
すれば、80手まではOKになる。あとは森田将棋に頼む。
よもや3善手を指すような事はあるまいが、そのときは灯台将棋に引き継ぐ。
26直リン
垢版 |
03/09/27 18:56ID:rs35jAW+
http://www.leverage.jp/bloom/qry/search.qry?function=first
2720
垢版 |
03/09/27 20:58ID: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");
}}}}
03/09/28 11:11ID:yU8F/DmP
>>20さん
22の見ると、なんか将棋は素人っぽくてワロタ(悪い意味ではないです)


駒をテキスト表示するなら一文字で下記を使うと良いかも(下段は成り駒)

飛、角、歩、香、桂、銀、金、玉
竜、馬、个、仝、今、全
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況