扫雷程序用c语言怎样写
整理:yaobaiwang.com 时间:03月31日
[电脑程序里的扫雷怎么玩啊]电脑程序里的扫雷怎么玩啊:扫雷的游戏规则: 扫雷就是要把所有非地雷的格子揭开即胜利;踩到地雷格子就算失败。 游戏主区域由很多个方格组成。使用鼠标左键随机点击一个方格,方格...+阅读
扫雷程序用c语言怎样写
这个程序应该不下一千行。。。要干什么用的?总体来说,是用一个二维数组a[][]来保存雷的存储情况。然后用一个二维数组chang[][]表示雷的现实情况。我今天写了近一个小时的时间,把关键部分,也可以说全部与算法有关的部分写出来了,并不是很完善你可以自己完善一下,希望能帮上忙。 #include
{ int chang[i][j]=a[i+1][j]+a[i][j+1]+a[i+1][j+1]+a[i-1][j-1]+a[i-1][j]+a[i][j-1]+a[i+1][j-1]+a[i-1][j+1];//把i行j列显示为四周雷的数目之和。(共八个方向。) *k++; if(chang[i][j]==0)//如果点击的地方四周没有雷,即雷的数目为0,(就是玩扫雷的时候一点一片的情况),那么递归调用自己,直到显示四周雷的数目之和。 { weseechang(i,j-1,*k, chang[N][N],a[][]); weseechang(i,j+1, *k, chang[N][N],a[][]); weseechang(i,j, *k, chang[N][N],a[][]); weseechang(i-1,j, *k, chang[N][N],a[][]); weseechang(i+1,j,*k, chang[N][N],a[][]); weseechang(i+1,j-1, *k, chang[N][N],a[][]); weseechang(i-1,j+1, *k, chang[N][N],a[][]); weseechang(i+1,j+1, *k,chang[N][N],a[][]); weseechang(i-1,j-1, *k, chang[N][N],a[][]); } void startbomd(void)//随机产生两个数,这两个数大于0小于5。 { int *bomb_here1,*bomb_here2; srand((unsigned)time(null)) *bomb_here1=rand()%5; *bomb_here2=rand()%5; return *bomb_here1,*bomb_here2; } weseechang(i,j,*k,chang[][]);再不上一个参数weseechang(i,j,*k,chang,a); weseechang函数里的所有chang[N][N]参数改为chang[][] 应该没什么问题了 二维数组chang[][]表示点击过程中雷的显示情况。
扫雷 c语言代码告诉我
北京理工大学电子信息谢锦峰的答案,只要不是很奇怪的输入就应该可以过。然而北理网络教室的一个隐藏用例过不了。艹#include struct lei {int n,m; char ch[110][110]; }; static struct lei work[100]; void output(int ii); int jishu(int j,int k,int ii); void main() { int pd1=1,pd2=1; int i=1,j,k; int flag=1; while(flag) {scanf("%d%d",&pd1,&pd2);getchar(); //printf("%d,%d\n",pd1,pd2); if(pd1==0||pd2==0) flag=0; else {work[i].n=pd1; work[i].m=pd2; for(j=1;j {for(k=1;k scanf("%c",&work[i].ch[j][k]); getchar(); } i++; } } /*for(j=1;j {for(k=1;k printf("%c,",&work[i].ch[j][k]); printf("\n"); }*/ int ii; for(ii=1;ii {if(ii==1)printf("Field #%d:\n",ii); else printf("\nField #%d:\n",ii); output(ii); //if(ii==1&i!=1)printf("\n"); } } void output(int ii) {int j,k; for(j=1;j {for(k=1;k {if(work[ii].ch[j][k]=='*') printf("*"); else {printf("%d",jishu(j,k,ii)); } } printf("\n"); } } int jishu(int j,int k,int ii) {int ji,ki,count=0; if(j==1&k==1) {if(work[ii].ch[1][2]=='*')count++; if(work[ii].ch[2][1]=='*')count++; if(work[ii].ch[2][2]=='*')count++; return count; } if(j==1&k==work[ii].m) {if(work[ii].ch[1][k-1]=='*')count++; if(work[ii].ch[2][k-1]=='*')count++; if(work[ii].ch[2][k]=='*')count++; return count; } if(j==work[ii].n&k==1) {if(work[ii].ch[j-1][1]=='*')count++; if(work[ii].ch[j-1][2]=='*')count++; if(work[ii].ch[j][2]=='*')count++; return count; } if(j==work[ii].n&k==work[ii].m) {if(work[ii].ch[j-1][k]=='*')count++; if(work[ii].ch[j][k-1]=='*')count++; if(work[ii].ch[j][k]=='*')count++; return count; } //四个角落处理完毕 if(j==1&k>1&k {for(ji=1;ji for(ki=k-1;ki {if(k==ki&j==ji)continue; if(work[ii].ch[ji][ki]=='*') count++; } return count; } if(j==work[ii].n&k>1&k {for(ji=j-1;ji for(ki=k-1;ki {if(k==ki&j==ji)continue; if(work[ii].ch[ji][ki]=='*') count++; } return count; } if(j>1&j {for(ji=j-1;ji for(ki=1;ki {if(k==ki&j==ji)continue; if(work[ii].ch[ji][ki]=='*') count++; } return count; } if(j>1&j {for(ji=j-1;ji for(ki=k-1;ki {if(k==ki&j==ji)continue; if(work[ii].ch[ji][ki]=='*') count++; } return count; } //四条边处理完毕 if(j>1&j1&k {for(ji=j-1;ji for(ki=k-1;ki {if(k==ki&j==ji)continue; if(work[ii].ch[ji][ki]=='*') count++; } return count; } }
c程序编程扫雷
希望对你有帮助! #include#include#include#define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUSEMOVE 0xff08 int num[10][10];/*范围*/ int p[10][10];/*统计雷的数组*/ int loop;/*重新来的标志*/ int again=0;/*是否重来的变量*/ int scorenum;/*一开始统计有几个雷*/ char score[3];/*输出一共有几个地雷*/ int Keystate; int MouseExist; int MouseButton; int MouseX; int MouseY; /*鼠标光标形状定义*/ typedef struct { unsigned int shape[32]; char hotx; char hoty; }SHAPE; /*箭头型*/ SHAPE ARROW={ { 0x3fff,0x1fff,0x0fff,0x07ff, 0x03ff,0x01ff,0x00ff,0x007f, 0x003f,0x00ff,0x01ff,0x10ff, 0x30ff,0xf87f,0xf87f,0xfc3f, 0x0000,0x7c00,0x6000,0x7000, 0x7800,0x7c00,0x7e00,0x7f00, 0x7f80,0x7e00,0x7c00,0x4600, 0x0600,0x0300,0x0300,0x0180 }, 0,0, }; /*鼠标光标显示*/ void MouseOn() { _AX=0x01; geninterrupt(0x33); } /*鼠标光标掩示*/ void MouseOff()/*鼠标光标隐藏*/ { _AX=0x02; geninterrupt(0x33); } void MouseSetXY(int x,int y)/*设置当前位置*/ { _CX=x; _DX=y; _AX=0x04; geninterrupt(0x33); } int LeftPress()/*左键按下*/ { _AX=0x03; geninterrupt(0x33); return(_BX&1); } void MouseGetXY()/*得到当前位置*/ { _AX=0x03; geninterrupt(0x33); MouseX=_CX; MouseY=_DX; } begain()/*游戏e69da5e6ba9062616964757a686964616f31333332623963开始画面*/ { int i,j; loop: cleardevice(); MouseOn(); MouseSetXY(180,30); MouseX=180; MouseY=30; scorenum=0; setfillstyle(SOLID_FILL,7); bar(190,60,390,290); setfillstyle(SOLID_FILL,8); for(i=100;i
以下为关联内容:
怎么用vb做扫雷程序怎么用vb做扫雷程序,关于扫雷程序设计:先说一个 扫雷的吧,,没办法给你源程序, 就给你说制作过程吧, 打开VB6.0 在窗体的上半部分,用pictureBOX控件画一定的区域用来模仿WINDOWS那样...
小白现在一个扫雷最简单的编程程序小白现在一个扫雷最简单的编程程序,新手vb编程做扫雷程序怎样生成9 9的格子:我不懂IT但是可以告诉你扫雷是怎么进行的。希望可以帮助你计算扫雷就是九宫格粘贴复制,给你讲下九...
c程序编程扫雷c程序编程扫雷,用VB编程实现扫雷的思路:希望对你有帮助! #include#include#include#define LEFTPRESS 0xff01 #define LEFTCLICK 0xff10 #define LEFTDRAG 0xff19 #define MOUS...
怎样用C Builder编写扫雷游戏怎样用C Builder编写扫雷游戏,java程序设计扫雷帮助看看:import java.awt.*; import javax.swing.*; import java.util.Random; import java.awt.event.*; class Min extends...
扫雷有什么技巧怎样成为扫雷高手扫雷有什么技巧怎样成为扫雷高手,扫雷怎么玩?我只知道最基本的。教我一些技巧吧:扫雷技巧 废话不多说,本人总结高级扫雷练习目标为三个阶段:速度--技巧--速度 第一阶段:速度(适用人...
C语言课设扫雷游戏设计及论文!C语言课设扫雷游戏设计及论文!c程序编程扫雷:c语言课程设计_扫雷游戏设计/*5.3.4 源程序*/#include#include#include#define LEFTPRESS 0xff01#define LEFTCLICK 0xff10#defin...
关于扫雷c语言程序的问题!得往里边加代码以实现扫雷功能可问题关于扫雷c语言程序的问题!得往里边加代码以实现扫雷功能可问题,vc语言可以设计贪吃蛇和扫雷游戏吗:定义一个两维常量数组const int directions[8][2] 为8个方向对应的坐标变化...
扫雷 c语言代码告诉我扫雷 c语言代码告诉我,vb做windows自带的扫雷游戏急代码和解释:北京理工大学电子信息谢锦峰的答案,只要不是很奇怪的输入就应该可以过。然而北理网络教室的一个隐藏用例过不了...
一份扫雷的c语言代码自己编的一份扫雷的c语言代码自己编的,雷电皇皮卡丘传说的金手指所有的技能代码越多越好:#include int width;/* 输出横向坐标 */ void print_HB() { int row = 0; printf(" "); for (row...