2016-09-08 6 views
0

チェスボードのコンテンツをC言語の文字列(チェスのピースや空白のスペースやスペース)として表示し、文字列をテーブルに格納するにはどうすればよいですか? 私はすでに何をしたのかを示すことができます。チェス盤の内容をC言語の文字列として表示し、文字列をテーブルに格納するにはどうすればよいですか?

+2

質問があまりにも一般的です。画面や内部表現に印刷することを求めていますか?あなたが持っているものを共有してください。 – eyalm

+2

あなたがすでにやっていることを示して、あなたの質問にできる限り具体的にしようとしてください。 –

+1

ようこそスタックオーバーフロー! __ "私は表示することができます..." __、はい、これまでのあなたの研究/デバッグの努力を示してください。まず[Ask]ページをお読みください。 –

答えて

1

一般的に、8×8の文字列が必要です。 Cの文字列は、ゼロ終端の文字配列であるため、3D文字配列として終了します。以下のような

何か:

for (i=0; i<8; i = i + 7) // i will be 0 and 7 
{ 
    for (j=1; j<8; j = j + 5) // j will be 1 and 6 
    { 
     strcpy(board[i][j], "knight"); // Put a knight at location (0, 1) 
             //       (0, 6) 
             //       (7, 1) 
             //       (7, 6) 
    } 
} 

P.S.:原因

#define MAX_TEXT 30 
char board[8][8][MAX_TEXT]; 

int i, j; 
for (i=0; i<8; ++i) 
{ 
    for (j=0; j<8; ++j) 
    { 
     strcpy(board[i][j], "."); // Make all spots empty 
    } 
} 

strcpy(board[0][1], "knight"); // Put a knight at location (0, 1) 

// and so on ... 

更新

は、ループを使用して4人の騎士を配置するためにコメントするには、次のような何かを行うことができますボードの各部分は

+0

そして、4人の騎士を書くことなく4人の騎士を追加する方法はありますか? –

+0

@ J.Doe - 更新された回答を参照 – 4386427

+0

場所は正しいです!私はプログラムをコンパイルして実行し、それは働いた! –

4
char board[][sizeof("♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜")] = { 
    {"♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜"}, 
    {"♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟"}, 
    {"… … … … … … … …"}, 
    {"… … … … … … … …"}, 
    {"… … … … … … … …"}, 
    {"… … … … … … … …"}, 
    {"♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙"}, 
    {"♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖"} 
}; 

...私はチェスプレーヤーじゃないとドットが

strlen("♜") == 3

strlen("…")マルチバイト文字である - 私は場所が一度正しいと願っています== 3

馬を移動させる例:

♜ … ♝ ♛ ♚ ♝ ♞ ♜ 
♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ 
… … ♞ … … … … … 

#define ROWS 8 
#define DOT "…" 
#define MBSZ sizeof(DOT) 
#define CELLS (MBSZ + 1) 

char *pt1 = board[0] + (CELLS * 1); /* 1 cell */ 
char *pt2 = board[2] + (CELLS * 2); /* 2 cells */ 

memmove(pt2, pt1, MBSZ); 
memmove(pt1, DOT, MBSZ); 

for (int i = 0; i < ROWS; i++) { 
    printf("%s\n", board[i]); 
} 
+1

涼しいです - OPが求めていたものではないかもしれませんが、それほどクールです。私はスペースを削除します。 – 4386427

+0

ありがとうございます@ 4386427、空白のない狭い、多分フォントを調整するように見えます... –

+0

私はアルターマンの答えを使用することはできません、私はピースの代わりに疑問符を持っています –

関連する問題