有什么错误,一运行到“x,y”就出错
xcode吧
全部回复
仅看楼主
level 1
雪羽绒 楼主
#include <iostream>
#include <stdlib.h>
#include <time.h>
int main(int argc, const char * argv[])
{
//定义雷的个数
int numBomb = -1;
//创建随机种子,根据时间的不同,产生的随机数字也不同
srand(time(0));
//最多五颗地雷
numBomb = rand() %5 +1;
//产生五颗雷的位置
//每组有x,y两个元素值
int arrayPos[5][2] = {0};
//随机产生雷的位置
for(int i = 0;i < numBomb;i++)
{
int xPos = rand() %5 +1;
int yPos = rand() %5 +1;
//如果有雷的位置重合,放弃此次操作,重新产生一颗
for(int j = 0;j < 5;j++)
{
if(xPos == arrayPos[j][0] &&
yPos == arrayPos[j][1])
{
i--;
continue;
}
}
arrayPos[i][0] = xPos;
arrayPos[i][1] = yPos;
}
//地图数组
int arrayMap[7][7] = {0};
//雷区数组
int arrayBomb[7][7] = {0};
for(int i = 0;i < numBomb;i++)
{
int xPos = arrayPos[i][0];
int yPos = arrayPos[i][1];
arrayBomb[xPos][yPos] = 1;
arrayMap[xPos][yPos] = -1;
}
for(int i = 1;i < 6;i++)
{
for(int j = 1;j < 6;j++)
{
if(arrayMap[i][j] == -1)
{
continue;
}
arrayMap[i][j] =
arrayBomb[i][j-1] +
arrayBomb[i+1][j-1] +
arrayBomb[i+1][j+1] +
arrayBomb[i+1][j] +
arrayBomb[i][j+1] +
arrayBomb[i-1][j-1] +
arrayBomb[i-1][j] +
arrayBomb[i-1][j+1];
}
}
int isExit = 0;
int arrayMask[7][7] = {0};
while(isExit == 0)
{
for(int i = 1;i < 6;i++)
{
for(int j = 1;j < 6;j++)
{
if(arrayMask[i][j] == 1)
{
printf("%d",arrayMap[i][j]);
}
else
{
printf("*");
}
}
printf("\n");
}
int choice = -1;
printf("数组数字:1:雷,2:空地,3:退出游戏\n");
scanf("%d",&choice);
if(choice == 3)
{
isExit = 1;
continue;
}
int xPos = -1;
int yPos = -1;
printf("请输入坐标:x,y\n");
scanf("%d%d",&xPos,&yPos);
if(arrayMap[xPos][yPos] == -1 && choice == 2)
{
printf("你中雷了,游戏结束!\n");
for(int i = 0;i < 7;i++)
{
for(int j = 0;j < 7;j++)
{
printf("%3d ",arrayMap[i][j]);
}
printf("\n");
}
isExit = 1;
}
arrayMask[xPos][yPos] = 1;
}
return 0;
}
2018年12月13日 13点12分 1
1