我正在为一项任务开发战舰项目。我在寻找放置船只的好方法时遇到了麻烦。我一直在尝试的想法是用零填充 10x10 数组,然后用 c 表示航母、d 表示驱逐舰等替换特定坐标。但我还没有太成功。如果有人对我如何做到这一点有任何想法,或者如果您知道更好的方法,那么任何帮助或指导将不胜感激。
抱歉,这是我第一次在网上提供帮助。并回答问题。不,我不知道如何处理数组,这是我寻求帮助的部分原因。我一直在阅读我的教科书,但我没有发现任何类似的内容,并且在没有具体理解的情况下,很难思考超出书本内容的内容。但这是我到目前为止仅用于创建策略板和游戏板以及我放置船只的尝试的代码
//================================FillArray==========================================
void FillArray(int pboard[], int sboard[]);
{
//Statement
for(int y; y < col; y++);
{
printf("%d", y);//prints y axis boarder
for(int x=0; x < row; x++);
{
printf("%d", x);//prints x axis boarder
for(int y=0; y < col; y++);
pboard[row][col] = 0;
}//for
}//Fills array for play
for(int y; y < col; y++);
{
printf("%d", y);//prints y axis boarder
for(int x=0; x < row; x++)
{
printf("%d", x);//prints x axis boarder
for(int y=0; y < col; y++);
sboard[row][col] = 0;
}//for
}//Fills array for Ships
return;
}//FillArray
//================================PlaceShips==========================================
void PlaceShips(int air=5, int bat=4, int cru=3, int des=1, int sub=2);
{
char ship;
int x,y;
int k;
//Statement
printf("Enter first letter of ship name: ");
if(scanf("%c", ship) == a)
{ printf("You have 5 space, Please enter furthest left or futhest up coordinate: ");
scanf("%d%d", &x,&y);
while(x>10 && y > 10)
{
printf("Enter 1. to place ship vertically\nEnter 2. to place ship horizontally: ")
scanf("%d", &k)
for(k==1, y > 6, y++);
{ pboard[row][y-1] = a;
if(y<0 || y >9)
printf("error");
}
for(k==2, x > 6, x++);
{
pboard[x-1][col] = a;
if(x < 0 || x > 9)
printf("error");
}
}
}
}
这是一个好方法吗?或者是否有更有效的方法。我尝试了类似的结构:
typedef struct
{
char id[5]={a,a,a,a,a}
char name[]=aircraft
int hits=5
} Aircraft Carrier
但我不确定他们会如何提供帮助。
最佳答案
for(&k==1, y > 6, y++)
我想这是您遇到的问题之一。
首先,您需要使用 ;
分隔 for()
语句。
其次,您将访问 k 的地址,并检查是否相等。 for 语句的第一部分通常设置一个变量。你需要重新思考你的逻辑。
while(x>10 && y >> 10)
>>
与 >
不一样,要小心。
关于c - 在 C 中替换数组的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13888490/