| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:求教大神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: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册: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
快速回复:求教大神c语言扫雷。。。谁能帮我改对么
数据加载中...
 
   



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

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