dos扫雷的小游戏 但这样写为什么会错,还有请指出我的不良之处(我是新学C语言的)

#include<stdio.h>#include<stdlib.h>#include<time.h>inte[8][8]={{0,0,0,0,0,0,0,0},{0,0... #include<stdio.h>
#include<stdlib.h>
#include<time.h>
int e[8][8]={{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
};
char h[8][8]={{" 123456"},
{"1******"},
{"2******"},
{"3******"},
{"4******"},
{"5******"},
{"6******"},
};
int k,i,j,s,n=30,l=0;
void slq()
{srand(time(0));
for(k=0;k<=n;)
{ i=rand()%6+1;
j=rand()%6+1;
if(e[i][j]==1)
{continue;}
else
{e[i][j]=1;
k=k+1;}
}
}
void xql()
{
for(int a=0;a<=7;a++)
{
for(int b=0;b<=7;b++)
{
printf("%c",h[a][b]);
if(b==7)
printf("\n");}
}
}
void main()
{
slq();

do
{
system("cls");
xql();
printf("请输入坐标");
scanf("%d,%d",&i,&j);
if(e[i][j]==1)
{printf("****GAMEOVER****\n");
goto loop;}
else
{s=e[i-1][j-1]+e[i][j-1]+e[i+1][j+1]+e[i-1][j]+e[i+1][j]+e[i-1][j+1]+e[i][j+1]+e[i+1][j-1];
h[i][j]=(char)(s+48);
l++;
}
}while(l<=36-n);
printf("you win\n");
loop:;
}
展开
 我来答
betty_sxy
2010-10-03 · TA获得超过135个赞
知道答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
扫雷”概述“扫雷”游戏的目标是尽快找到雷区中的所有地雷,而不许踩到地雷。如果挖开的是地雷,您将输掉游戏。

策略与技巧:
a.如果无法判定某方块是否有雷,请用右键单击两次给它标记一个问号 (?)。以后,您可以用鼠标右键单击方块一次将该方块标记为地雷或者或用鼠标右键单击方块两次去掉标记。
b.如果某个数字方块周围的地雷全都标记完,可以指向该方块并同时点击鼠标左右键,将其周围剩下的方块挖开。如果编号方块周围地雷没有全部标记,在同时使用两个按钮单击时,其他隐藏或未标记的方块将被按下一次(即闪烁一下)。
c.寻找常见的数字组合,这通常会指示地雷的常见组合。例如,在一组未挖开的方块的边上相邻的三个数字 2-3-2 表示这三个数旁边有一排有三个地雷。

策略与技巧:
a.如果无法判定某方块是否有雷,请用右键单击两次给它标记一个问号 (?)。以后,您可以用鼠标右键单击方块一次将该方块标记为地雷或者或用鼠标右键单击方块两次去掉标记。
b.如果某个数字方块周围的地雷全都标记完,可以指向该方块并同时点击鼠标左右键,将其周围剩下的方块挖开。如果编号方块周围地雷没有全部标记,在同时使用两个按钮单击时,其他隐藏或未标记的方块将被按下一次(即闪烁一下)。
c.寻找常见的数字组合,这通常会指示地雷的常见组合。例如,在一组未挖开的方块的边上相邻的三个数字 2-3-2 表示这三个数旁边有一排有三个地雷。

扫雷玩法:
在“游戏”菜单上,单击“开局”。
要启动计时器,请单击游戏区中的任何方块。

注意:
通过单击即可挖开方块。如果挖开的是地雷,则您输掉游戏。
如果方块上出现数字,则表示在其周围的八个方块中共有多少颗地雷。
要标记您认为可能有地雷的方块,请右键单击它。
游戏区包括雷区、地雷计数器和计时器。

然后就剩下多加练习了,毕竟任何游戏都是熟能生巧的.
郁_诗
推荐于2016-09-09 · TA获得超过494个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:211万
展开全部
  我来帮你看下哈:
  嗯,一开始是不能编译成功,但我只修改了一处就可以了喔,就那个后面写了注释的,你自己看下哈,如果可以了不要忘记给分喔~~~

  #include<stdio.h>
  #include<stdlib.h>
  #include<time.h>
  int e[8][8]={{0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  {0,0,0,0,0,0,0,0},
  };
  char h[8][8]={{" 123456"},
  {"1******"},
  {"2******"},
  {"3******"},
  {"4******"},
  {"5******"},
  {"6******"},
  };
  int k,i,j,s,n=30,l=0;
  void slq()
  {srand(time(0));
  for(k=0;k<=n;)
  { i=rand()%6+1;
  j=rand()%6+1;
  if(e[i][j]==1)
  {continue;}
  else
  {e[i][j]=1;
  k=k+1;}
  }
  }
  void xql()
  {
  int b,a;//就这修改了下就可以运行了,有些编译器就这么变态...
  for(a=0;a<=7;a++)
  {
  for(b=0;b<=7;b++)
  {
  printf("%c",h[a][b]);
  if(b==7)
  printf("\n");}
  }
  }
  void main()
  {
  slq();

  do
  {
  system("cls");
  xql();
  printf("请输入坐标");
  scanf("%d,%d",&i,&j);
  if(e[i][j]==1)
  {printf("****GAMEOVER****\n");
  goto loop;}
  else
  {s=e[i-1][j-1]+e[i][j-1]+e[i+1][j+1]+e[i-1][j]+e[i+1][j]+e[i-1][j+1]+e[i][j+1]+e[i+1][j-1];
  h[i][j]=(char)(s+48);
  l++;
  }
  }while(l<=36-n);
  printf("you win\n");
  loop:;
  }
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式