鱼C论坛

 找回密码
 立即注册
查看: 5218|回复: 6

求一个用C语言写的扫雷代码!

[复制链接]
发表于 2015-5-17 19:15:46 | 显示全部楼层 |阅读模式
20鱼币
要求有扫雷的全部功能以及详细注释

最佳答案

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-5-17 19:15:47 | 显示全部楼层
转一个:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include<time.h>
showmine();
setmine(int x);
printmine();
countmine(int rowno, int colno);
char rowhead[20]="  1 2 3 4 5 6\n";
char rowhead2[20]="  ----------- \n";
char rowone[20]=  "1|\xf \xf \xf \xf \xf \xf \n";
char rowtwo[20]=  "2|\xf \xf \xf \xf \xf \xf \n";
char rowthree[20]="3|\xf \xf \xf \xf \xf \xf \n";
char rowfour[20]= "4|\xf \xf \xf \xf \xf \xf \n";
char rowfive[20]= "5|\xf \xf \xf \xf \xf \xf \n";
char rowsix[20]=  "6|\xf \xf \xf \xf \xf \xf \n";
                    
int mines[8][8]={{0,0,0,0,0,0,0,0},
    {0,0,0,1,0,0,0,0},
    {0,0,0,0,1,0,0,0},
    {0,0,1,0,0,1,0,0},
    {0,0,0,0,0,0,0,0},
    {0,0,0,0,0,0,1,0},
    {0,0,0,0,1,0,0,0},
    {0,0,0,0,0,0,0,0},
     };  
 
int countstep=0;
int n=10;
main()
{
 int i,j;
 int flag=1;
 showmine();
  setmine(n);
      printmine();
 while(flag)
 {
  printf("\n请输入位置:行号,列号:");
  scanf("%d,%d", &i,&j);
  if (mines[i][j]==1)
  {
   
   printmine();
   printf("\n BOOM!!!");
   getchar();
   getchar();
   flag=0;
  }
  else
  {
   countmine(i,j);
    system("cls"); 
   showmine();
   if(countstep==36-n)
   {
    printf("You Wind!");
    getchar();
    getchar();
    flag=0;
   }
  }
 }
 
}
countmine(int rowno, int colno)
{
 int count;
 int i,j;
 i=rowno;
 j=colno;
 count=mines[i-1][j]+mines[i+1][j]+mines[i][j-1]+mines[i][j+1]
  +mines[i-1][j-1]+mines[i-1][j+1]+mines[i+1][j-1]+mines[i+1][j+1];
 switch(i)
 {
 case 1:
  rowone[2*j]=(char)(count+48);
  
  break;
 case 2:
  rowtwo[2*j]=(char)(count+48);
  
  break;
 case 3:
  rowthree[2*j]=(char)(count+48);
  
  break;
 case 4:
  rowfour[2*j]=(char)(count+48);
  
  break;
 case 5:
  rowfive[2*j]=(char)(count+48);
  
  break;
 case 6:
  rowsix[2*j]=(char)(count+48);
  
  break;
 }
  countstep=countstep+1;
}
showmine()
{
 printf(rowhead);
 printf(rowhead2);
 printf(rowone);
 printf(rowtwo);
 printf(rowthree);
 printf(rowfour);
 printf(rowfive);
 printf(rowsix);
}
setmine(int x)
{  int i,j,k;
   for(i=1;i<=6;i++)
    for(j=1;j<=6;j++)
         mines[i][j]=0;
     srand(time(0));
 for(k=1;k<=x;)
 {
  i=rand()%6+1;
        j=rand()%6+1;
        if(mines[i][j]!=1)
   mines[i][j]=1;
  else
   continue;
  k++;
 }
}
printmine()
{  int i,j,k;
  system("cls");
   for(i=1;i<=6;i++)
   {for(j=1;j<=6;j++)
        if( mines[i][j]==1)
   printf("%c ",15);
   else
    printf("%c ",2);
   printf("\n");}
 
 }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-5-17 21:17:02 | 显示全部楼层

你这个扫雷不正宗,我以前就看过了,我要的是弄个新的界面想win7里面的那种,不过还是谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-6-6 00:21:19 | 显示全部楼层
混个鱼币走人:big:big:big
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-6 13:50:34 | 显示全部楼层
你这个网上搜的吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-6 13:51:07 | 显示全部楼层

早在网上看过了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-6-6 13:52:03 | 显示全部楼层

算了也不打算用c写了,送你鱼币吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 01:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表