<分区>
如何在 C 语言中将棋盘内容显示为字符串(棋子和点或空白点的空格)并将字符串存储在表中? 我可以展示我已经做过的事情。
<分区>
如何在 C 语言中将棋盘内容显示为字符串(棋子和点或空白点的空格)并将字符串存储在表中? 我可以展示我已经做过的事情。
最佳答案
char board[][sizeof("♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜")] = {
{"♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜"},
{"♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟"},
{"… … … … … … … …"},
{"… … … … … … … …"},
{"… … … … … … … …"},
{"… … … … … … … …"},
{"♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙"},
{"♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖"}
};
棋盘上的每一 block 和点都是多字节字符
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]);
}
关于c - 如何用C语言将棋盘内容显示为字符串并将字符串存储在表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39395316/