#include <stdio.h>
#include <stdlib.h>
int field[9][9] = {0};
int gameover = 1;
void fieldFormat();
void showGameField();
int deleteKoma();
void createKoma(int,int);
int main(void)
{
fieldFormat();
while(gameover)
{
createKoma(deleteKoma(),1);
showGameField();
createKoma(deleteKoma(),2);
showGameField();
}
return 0;
}
void fieldFormat()
{
int i,j;
for(i=0; i<9; i++)
{
for(j=0;j<9;j++)
{
field[i][j] = 0;
}
}
for(i=0;i<9;i++)
{
field[0][i] = 1;
field[8][i] = 2;
}
showGameField();
}
void showGameField()
{
int i, j;
system("cls");
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
switch(field[i][j])
{
case 0:
printf("+");
break;
case 1:
printf("@");
break;
default:
printf("o");
break;
}
}
printf("\n");
}
}
int deleteKoma()
{
int a,b;
int flag = 1;
while(flag)
{
printf("select tate and yoko:");
scanf("%d", &a);
scanf("%d", &b);
if(field[a][b] != 0)
{
field[a][b] = 0;
flag = 0;
}
}
return b;
}
void createKoma(int b,int i)
{
int a;
printf("select tate:");
scanf("%d", &a);
field[a][b] = i;
}
C言語ではさみ将棋
C言語ではさみ将棋
コードタグをご利用ください。 by softya(ソフト屋)
とりあえずここまで作りましたが,相手の駒を飛び越せない という条件はどのように挿入すべきでしょうか。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: C言語ではさみ将棋
他の人が作ったプログラムを読むことは困難が伴いますので、コメントとインデント(字下げ)の調整、仕様の説明などがあると回答者が助かります。
で、操作性としては
・入力のミスをレポートすること。
・縦横の番号を盤面にも表示すること。
・どちらの番なのか明確に指示すること。
・マイナスなど異常値が入力されたらガードすること。
を行なってみてください。
肝心の質問のポイントは、移動開始点から到着点までをforで回して途中に相手の駒があったらNGで良いと思います。
で、操作性としては
・入力のミスをレポートすること。
・縦横の番号を盤面にも表示すること。
・どちらの番なのか明確に指示すること。
・マイナスなど異常値が入力されたらガードすること。
を行なってみてください。
肝心の質問のポイントは、移動開始点から到着点までをforで回して途中に相手の駒があったらNGで良いと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。