我只有帮你把程式码改正,其他那个什么档的我也不太清楚,唯一知道的大概就是.H(标头档),其他的话我的猜测应该是编译过程中产生的中继档吧!
再次提醒你尽量多学着自己看错误讯息 , 以后这种小问题难不倒你的....
我在有错的后面都有加上 //修正# , 里面第几行我是用我改过后的行数来计算不知道有没有一样
修正1(第4行):这边我是把char那改成阵列,其他我没动,尽量保持原样
修正2(第34行):因为你的宣告是传址呼叫 , 所以 a , b可以直接丢进去 , 除非你宣告是用指标才要加&
修正3(第49行):最机车的一个错误,遽然会因为注解而编译错误,我在注解的最后面"成功"的后面加一个 . 就OK了
修正4(第50行):这里本来你是写 ( 应该是 {
修正5(第54行):你原本是用'◇',因为'◇'是代表两个Byte的字,可是char只能接受一个Byte的字元所以我换成 '-',如果你想把'◇'印出来,你可以在他print的时候加一个判定如果是'-'就print'◇'
我应该只有改这几个地方吧 , 如果还有我也不太记得是哪了....
里面值的一提的是第三个修正 , 错在这真的很冤枉 , 不过这似乎是dev c++的Bug,Visual C++就没这种问题 , 但是这也不是每次都会发生,似乎只会发生再 ) 后面加上注解才会出现错误 , 用dev C++的时候要特别留意"成功"这两个中文字 ....
复制程式
#include<stdio.h>
#include<stdlib.h>
void newchestplayer(char [][9],int &,int &);//修正1
int main(void)
{
int a,b;
char chest[9][9];//9X9大小的棋盘
int i=0,j=0;//i,j皆为计数器
for(i=0;i<9;i++)//用来变换横座标
{
for(j=0;j<9;j++)//用来变换直座标
{
chest[i][j] = ']'//把阵列中的元素设成 " ] "
}
}
for(i=0;i<9;i++)//用来移动横座标
{
printf("\n");
for(j=0;j<9;j++)//用来移动直座标
{
printf("%c",chest[i][j]);//将棋盘印出
printf(" ");//加入空格较为整洁
}
}
printf("\n\n\n");
printf("欢迎来到四子棋的世界\n\n");
printf("----电脑随机选择(先下或后下中)----\n");
newchestplayer( chest , a , b );//修正2
system("PAUSE");
return 0;
}
void newchestplayer(char chest[][9],int &a,int &b)//a,b是用来存玩家落子位置
{
//读入玩家下子位置
//判断是否可以下
//如果可以则下,不可以则继续要求输入
//下完之后印出最新棋盘
int i=0,j=0;
bool haveleaveplayer = false;//表示是否下子成功与否
while(haveleaveplayer == false)//判断是否下子成功. //修正3
{//修正4
scanf("%d %d",&a,&b);
if( chest[a][b] == ']' )//如果输入的位置没有落子
{
chest[a][b] = '-'//则可以下子 //修正5
haveleaveplayer = true;//已经下子了
}
else
{
printf("不好意思你输入的这个位置有人啰~~!\n");
printf("请重新输入一次!(x,y)>>\n");
}
}
for(i=0;i<9;i++)//印出玩家下子后的新棋盘
{
printf("\n");
for(j=0;j<9;j++)
{
printf("%c",chest[i][j]);
printf(" ");
}
}//end for
}//end newchestplayer