标题:求教大神c语言扫雷。。。谁能帮我改对么
只看楼主
bian0531
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-25
结帖率:0
 问题点数:0 回复次数:6 
求教大神c语言扫雷。。。谁能帮我改对么
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int map[9][9] = {0};
int result[9][9] = {0};
int mine[10][2];

int Check(int i)
{
 int j;
 for(j=0;j<i;j++)
  if(mine[j][0] == mine[i][0] && mine[j][1] == mine[i][0]) return 0;
 return 1;
}

int MineNum(int x,int y)
{
 int sum = 0;
 int i,j;
 if(x-1>=0 && x+1<=8 && y-1>=0 && y+1<=8)
 {
  for(i=x-1;i<=x+1;i++)
   for(j=y-1;j<=y+1;j++) sum += map[i][j];
  return (sum-map[x][y])/9;
 }
 if(x==0 && y==0) return (map[0][1]+map[1][0]+map[1][1])/9;
 if(x==0 && y==8) return (map[0][7]+map[1][7]+map[1][8])/9;
 if(x==8 && y==0) return (map[7][0]+map[7][1]+map[8][1])/9;
 if(x==8 && y==8) return (map[7][7]+map[7][8]+map[8][7])/9;
 if(x==0)
 {
  for(i=x;i<=x+1;i++)
   for(j=y-1;j<=y+1;j++) sum += map[i][j];
  return (sum-map[x][y])/9;
 }
 if(x==8)
 {
  for(i=x-1;i<=x;i++)
   for(j=y-1;j<=y+1;j++) sum += map[i][j];
  return (sum-map[x][y])/9;
 }
 if(y==0)
 {
  for(i=x-1;i<=x+1;i++)
   for(j=y;j<=y+1;j++) sum += map[i][j];
  return (sum-map[x][y])/9;
 }
 if(y==8)
 {
  for(i=x-1;i<=x+1;i++)
   for(j=y-1;j<=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;i<10;i++)
 {
  do{
   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;i<10;i++) map[mine[i][0]][mine[i][1]] = 9;


 for(i=0;i<9;i++)
 {
  for(j=0;j<9;j++)
  {
   if(map[i][j] == 9) result[i][j] = 9;
   else result[i][j] = MineNum(i,j);
   printf("%d ",result[i][j]);
  }
  printf("\n");
 }
}
   
搜索更多相关主题的帖子: c语言 扫雷 include return result 
2012-12-29 09:50
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
代码从哪弄来的  哪里不正确

DO IT YOURSELF !
2012-12-29 10:22
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
回复 楼主 bian0531
这个代码只能生成。。。

你是要这个不?
do{
    mine[i][0] = rand()%9;
    mine[i][1] = rand()%9;
   }while(!Check(i));


[fly]存在即是合理[/fly]
2012-12-29 11:14
bian0531
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-25
得分:0 
回复 3楼 azzbcc
这个能给我一份么?
2012-12-29 16:26
bian0531
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-10-25
得分:0 
回复 2楼 wp231957
这个只能生成啊
2012-12-29 16:27
重大C语言
Rank: 2
等 级:论坛游民
帖 子:76
专家分:70
注 册:2012-11-16
得分:0 
各位请快把源程序改好吧,我想引用一下。
顺便问一句,输出的结果与电脑上的扫雷一样吗?
我们老师也写了一个,但结果不理想。
2012-12-29 18:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-394407-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.558252 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved