コンピュータ将棋作成中

/*-- unix cで作ってます。borland cでもたぶん動くよ。--*/
/*-- スペースがnbspに置き換わって消えています(汗)--*/

#include "stdio.h"

char koma[30][3] = {
" ", /* 0: 空地 */
"歩 ", /* 1: 歩 */
"香 ", /* 2: 香 */
"桂 ", /* 3: 桂 */
"銀 ", /* 4: 銀 */
"金 ", /* 5: 金 */
"飛 ", /* 6: 飛 */
"角 ", /* 7: 角 */
"王 ", /* 8: 王 */
"と ", /* 9: と */
"香N", /* 10: 成香 */
"桂N", /* 11: 成桂 */
"銀N", /* 12: 成銀 */
"龍 ", /* 13: 龍 */
"馬 ", /* 14: 馬 */
"歩@", /* 15: 歩@ */
"香@", /* 16: 香@ */
"桂@", /* 17: 桂@ */
"銀@", /* 18: 銀@ */
"金@", /* 19: 金@ */
"飛@", /* 20: 飛@ */
"角@", /* 21: 角@ */
"玉@", /* 22: 玉@ */
"と@", /* 23: と@ */
"香!", /* 24: 成香@ */
"桂!", /* 25: 成桂@ */
"銀!", /* 26: 成銀@ */
"龍@", /* 27: 龍@ */
"馬@", /* 28: 馬@ */
"err", /* 29: 盤外 */
};

/* 盤 */
int table[11][11] = {
{29,29.29,29.29,29.29,29.29,29.29}, /* - */
{29,16,17,18,19,22,19,18,17,16,29}, /* 1 */
{29, 0,20, 0, 0, 0, 0, 0,21, 0,29}, /* 2 */
{29,15,15,15,15,15,15,15,15,15,29}, /* 3 */
{29, 0, 0, 0, 0, 0, 0, 0, 0, 0,29}, /* 4 */
{29, 0, 0, 0, 0, 0, 0, 0, 0, 0,29}, /* 5 */
{29, 0, 0, 0, 0, 0, 0, 0, 0, 0,29}, /* 6 */
{29, 1, 1, 1, 1, 1, 1, 1, 1, 1,29}, /* 7 */
{29, 0, 7, 0, 0, 0, 0, 0, 6, 0,29}, /* 8 */
{29, 2, 3, 4, 5, 8, 5, 4, 3, 2,29}, /* 9 */
{29,29.29,29.29,29.29,29.29,29.29} /* - */
};

/* 持ち駒 */
int hand[2][7] = {
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}
};

/* 駒を進める(先手) */
int move(int x1, int y1, int x2, int y2) {
int n, k;
n = table[y1][x1]; /* 駒を持つ */
table[y1][x1] = 0; /* 駒のあった場所を空き地に */
k = table[y2][x2]; /* 目的の駒 */
switch( k ) {
case 15:
case 16:
case 17:
case 18:
case 19:
case 20:
case 21:
hand[0][k-15]++;/* 駒をとる */
break;
}

table[y2][x2] = n; /* 駒を置く */
}

main(){
char i, x1, y1, x2, y2;
while(1) {
printf(" 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | \n");
for (i=1;i<10;i++) {
printf("------------------------------------\n");

printf("%c%c%c|%c%c%c|%c%c%c|%c%c%c|%c%c%c|%c%c%c|%c%c%c|%c%c%c|%c%c%c|%d
\n",

koma[table[i][1]][0],koma[table[i][1]][1],koma[table[i][1]][2],

koma[table[i][2]][0],koma[table[i][2]][1],koma[table[i][2]][2],

koma[table[i][3]][0],koma[table[i][3]][1],koma[table[i][3]][2],

koma[table[i][4]][0],koma[table[i][4]][1],koma[table[i][4]][2],

koma[table[i][5]][0],koma[table[i][5]][1],koma[table[i][5]][2],

koma[table[i][6]][0],koma[table[i][6]][1],koma[table[i][6]][2],

koma[table[i][7]][0],koma[table[i][7]][1],koma[table[i][7]][2],

koma[table[i][8]][0],koma[table[i][8]][1],koma[table[i][8]][2],

koma[table[i][9]][0],koma[table[i][9]][1],koma[table[i][9]][2],
i);
}
printf("------------------------------------\n");
printf("あなたの番です\n");
printf("列:");
scanf("%c", &x1); x1 -= '0';
if(x1 == 0) { return 0; } /* 0入力でとりあえず終了 */
printf("行:");
scanf("%*c%c", &y1); y1 -= '0';
printf("列:");
scanf("%*c%c", &x2); x2 -= '0';
printf("行:");
scanf("%*c%c", &y2); y2 -= '0';
scanf("%*c");
x1 = 10 - x1;
x2 = 10 - x2;
printf("x1=%d y1=%d x2=%d y2=%d\n", x1, y1, x2, y2);
printf("先手 %d %d %c%c%c\n", 10 - x2, y2,
koma[table[y1][x1]][0], koma[table[y1][x1]][1],
koma[table[y1][x1]][2] );
move(x1,y1,x2,y2);
}
}


🄫1999-2023 id:karmen