當前位置:編程學習大全網 - 編程語言 - 方案編制-排雷

方案編制-排雷

調試通過,源程序如下:

# include & ltstdio.h & gt

# include & lttime.h & gt

# include & ltstdlib.h & gt

int map[9][9]= { 0 };

int result[9][9]= { 0 };

int mine[10][2];

布爾校驗(整數I)

{

int j;

for(j = 0;j & lt我;j++)

if(mine[j][0]= = mine[I][0]& amp;& ampmine[j][1] == mine[i][0])返回true

返回false

}

Int MineNum(int x,int y) //這個函數計算坐標(x,y)周圍的地雷數量。

{

int sum = 0;

int i,j;

if(x-1 & gt;= 0 & amp& ampx+1 & lt;= 8 & amp& ampy-1 & gt;= 0 & amp& ampy+1 & lt;=8)

{//中間位置

for(I = x-1;我& lt= x+1;i++)

for(j = y-1;j & lt= y+1;j++)sum+= map[I][j];

return(sum-map[x][y])/9;

}

if(x = = 0 & amp;& ampy = = 0)return(map[0][1]+map[1][0]+map[1][1])/9;//左上角

if(x = = 0 & amp;& ampy = = 8)return(map[0][7]+map[1][7]+map[1][8])/9;//右上角

if(x = = 8 & amp;& ampy = = 0)return(map[7][0]+map[7][1]+map[8][1])/9;//左下角

if(x = = 8 & amp;& ampy = = 8)return(map[7][7]+map[7][8]+map[8][7])/9;//右上角

如果(x==0)

{//上限

for(I = x;我& lt= x+1;i++)

for(j = y-1;j & lt= y+1;j++)sum+= map[I][j];

return(sum-map[x][y])/9;

}

如果(x==8)

{//下邊界

for(I = x-1;我& lt= x;i++)

for(j = y-1;j & lt= y+1;j++)sum+= map[I][j];

return(sum-map[x][y])/9;

}

如果(y==0)

{//左邊界

for(I = x-1;我& lt= x+1;i++)

for(j = y;j & lt= y+1;j++)sum+= map[I][j];

return(sum-map[x][y])/9;

}

如果(y==8)

{//右邊界

for(I = x-1;我& lt= x+1;i++)

for(j = y-1;j & lt= y;j++)sum+= map[I][j];

return(sum-map[x][y])/9;

}

}

void main()

{

int i,j,x,y;

srand((int)time(0));

for(I = 0;我& lt10;i++)

{

做{

mine[I][0]= rand()% 9;

mine[I][1]= rand()% 9;

} while(Check(I));

printf("%d\t%d\n ",mine[i][0],mine[I][1]);

}

//標記地雷

for(I = 0;我& lt10;i++)map[mine[I][0]][mine[I][1]]= 9;

//數壹下地雷的數量

for(I = 0;我& lt9;i++)

{

for(j = 0;j & lt9;j++)

{

if(map[i][j] == 9)結果[I][j]= 9;

else result[i][j] = MineNum(i,j);

printf("%d ",result[I][j]);

}

printf(" \ n ");

}

}

  • 上一篇:江蘇省大學生電子設計競賽獲獎名單
  • 下一篇:現在的數控人才應具備什麽知識?
  • copyright 2024編程學習大全網