C语言对二维数组进行赋值
写了一个五子棋程序15*15的棋盘,下子是用指针输入的,如下typedefstruct//typedef的作用是在C中定义一个结构体类型{intiFlag;chariX;...
写了一个五子棋程序15*15的棋盘,下子是用指针输入的,如下
typedef struct//typedef的作用是在C中定义一个结构体类型
{
int iFlag;
char iX;int iY;
}ScmPiece;
ScmPiece *player;
printf("玩家1请下子:");
scanf("%c%d",&player->iX,&player->iY);
现在我想记录每一步的下子坐标,用一个数组char record[225][4]来记录可以吗?要怎么写,或者有什么其他的记录这两个指针坐标 的方法呢?
我的目的是写五子棋的行棋记录 展开
typedef struct//typedef的作用是在C中定义一个结构体类型
{
int iFlag;
char iX;int iY;
}ScmPiece;
ScmPiece *player;
printf("玩家1请下子:");
scanf("%c%d",&player->iX,&player->iY);
现在我想记录每一步的下子坐标,用一个数组char record[225][4]来记录可以吗?要怎么写,或者有什么其他的记录这两个指针坐标 的方法呢?
我的目的是写五子棋的行棋记录 展开
1个回答
展开全部
你的意思是你要分别记录玩家1 和 玩家2 的所有的走棋的坐标吗?如果是的话, 可以分别用两个指针数组来表示,不需要用到二维数组。如果是记录整张棋盘的信息, 可以用二维数组。
更多追问追答
追问
其实我的目的是做行棋记录,但不大清楚该怎么按走子顺序记录每一步下到了哪里,用二维数组又不大清楚该怎么让它等于两个指针,就是每一步的横纵坐标player->iX和player->iY
追答
按照你的思路来, ScmPiece 是玩家每一步下子信息的结构
ScmPiece *playerA[255];
ScmPiece *playerB[255];
int i = 0;
while(1)
{
printf("玩家A下子: \n")
playerA[i] = (ScmPiece *)malloc(sizeof(ScmPiece)); // 指针分配空间
scanf("%c%d", &playerA[i]->iX, &playerA[i]->iY);
printf("玩家B下子: \n")
playerA[i] = (ScmPiece *)malloc(sizeof(ScmPiece)); // 指针分配空间
scanf("%c%d", &playerB[i]->iX, &playerB[i]->iY);
i++; // 结束一轮
...
// 某种退出条件 结束游戏
}
大概就是这样吧, 可能有错误, 欢迎交流
我写过一个象棋的程序, 支持两个玩家联网对战,写得比较烂,也没心思去修改。如果需要的话可以把代码发你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询