C语言扫雷游戏源代码 扫雷游戏 c语言

C\u8bed\u8a00\u626b\u96f7\u6e38\u620f\u6e90\u4ee3\u7801

"\u626b\u96f7"\u5c0f\u6e38\u620fC\u4ee3\u7801
#include#include#include#includemain( ){char a[102][102],b[102][102],c[102][102],w;int i,j; /*\u5faa\u73af\u53d8\u91cf*/int x,y,z[999]; /*\u96f7\u7684\u4f4d\u7f6e*/int t,s; /*\u6807\u8bb0*/int m,n,lei; /*\u8ba1\u6570*/int u,v; /*\u8f93\u5165*/int hang,lie,ge,mo; /*\u81ea\u5b9a\u4e49\u53d8\u91cf*/srand((int)time(NULL)); /*\u542f\u52a8\u968f\u673a\u6570\u53d1\u751f\u5668*/leb1: /*\u9009\u62e9\u6a21\u5f0f*/printf("\n \u8bf7\u9009\u62e9\u6a21\u5f0f\uff1a\n 1.\u6807\u51c6 2.\u81ea\u5b9a\u4e49\n");scanf("%d",&mo);if(mo==2) /*\u82e5\u9009\u62e9\u81ea\u5b9a\u4e49\u6a21\u5f0f\uff0c\u8981\u8f93\u5165\u4e09\u4e2a\u53c2\u6570*/{do{t=0; printf("\u8bf7\u8f93\u5165\n\u884c\u6570 \u5217\u6570 \u96f7\u7684\u4e2a\u6570\n");scanf("%d%d%d",&hang,&lie,&ge);if(hang100){printf("\u884c\u6570\u592a\u591a\n");t=1;}if(lie100){printf("\u5217\u6570\u592a\u591a\n");t=1;}if(ge=(hang*lie)){printf("\u96f7\u592a\u591a\u4e86\n");t=1;}}while(t==1);}else{hang=10,lie=10,ge=10;} /*\u5426\u5219\u5c31\u662f\u9009\u62e9\u4e86\u6807\u51c6\u6a21\u5f0f(\u9ed8\u8ba4\u53c2\u6570)*/for(i=1;i<=ge;i=i+1) /*\u786e\u5b9a\u96f7\u7684\u4f4d\u7f6e*/{do{t=0; z[i]=rand( )%(hang*lie);for(j=1;j<i;j=j+1){if(z[i]==z[j]) t=1;}}while(t==1);}for(i=0;i<=hang+1;i=i+1) /*\u521d\u59cb\u5316a,b,c*/{for(j=0;j<=lie+1;j=j+1) {a[i][j]='1'; b[i][j]='1'; c[i][j]='0';} }for(i=1;i<=hang;i=i+1){for(j=1;j<=lie;j=j+1) {a[i][j]='+';} }for(i=1;i<=ge;i=i+1) /*\u628a\u96f7\u653e\u5165c*/{x=z[i]/lie+1; y=z[i]%lie+1; c[x][y]='#';}for(i=1;i<=hang;i=i+1) /*\u8ba1\u7b97b\u4e2d\u6570\u5b57*/{for(j=1;j<=lie;j=j+1){m=48;if(c[i-1][j-1]=='#')m=m+1; if(c[i][j-1]=='#')m=m+1;if(c[i-1][j]=='#')m=m+1; if(c[i+1][j+1]=='#')m=m+1;if(c[i][j+1]=='#')m=m+1; if(c[i+1][j]=='#')m=m+1;if(c[i+1][j-1]=='#')m=m+1; if(c[i-1][j+1]=='#')m=m+1;b[i][j]=m;}}for(i=1;i<=ge;i=i+1) /*\u628a\u96f7\u653e\u5165b\u4e2d*/{x=z[i]/lie+1; y=z[i]%lie+1; b[x][y]='#';}lei=ge; /*\u4ee5\u4e0b\u662f\u6e38\u620f\u8bbe\u8ba1*/do{leb2: /*\u8f93\u51fa*/system("cls");printf("\n\n\n\n");
printf(" ");for(i=1;i=1;j=j-1){s=0;if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;if(a[i-1][j]=='0')s=1; if(a[i+1][j-1]=='0')s=1;if(a[i+1][j+1]=='0')s=1; if(a[i+1][j]=='0')s=1;if(a[i][j-1]=='0')s=1; if(a[i][j+1]=='0')s=1;if(s==1)a[i][j]=b[i][j];}}for(i=hang;i>=1;i=i-1){for(j=1;j=1;i=i-1){for(j=lie;j>=1;j=j-1){s=0;if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;if(a[i-1][j]=='0')s=1; if(a[i+1][j-1]=='0')s=1;if(a[i+1][j+1]=='0')s=1;if(a[i+1][j]=='0')s=1;if(a[i][j-1]=='0')s=1; if(a[i][j+1]=='0')s=1;if(s==1)a[i][j]=b[i][j];}}for(i=1;i<=hang;i=i+1) /*\u68c0\u6d4b0\u533a*/{for(j=1;j<=lie;j=j+1){if(a[i][j]=='0'){if(a[i-1][j-1]=='+'||a[i-1][j-1]=='@'||a[i-1][j-1]=='?')t=1;if(a[i-1][j+1]=='+'||a[i-1][j+1]=='@'||a[i-1][j+1]=='?')t=1;if(a[i+1][j-1]=='+'||a[i+1][j-1]=='@'||a[i+1][j-1]=='?')t=1;if(a[i+1][j+1]=='+'||a[i+1][j+1]=='@'||a[i+1][j+1]=='?')t=1;if(a[i+1][j]=='+'||a[i+1][j]=='@'||a[i+1][j]=='?')t=1;if(a[i][j+1]=='+'||a[i][j+1]=='@'||a[i][j+1]=='?')t=1;if(a[i][j-1]=='+'||a[i][j-1]=='@'||a[i][j-1]=='?')t=1;if(a[i-1][j]=='+'||a[i-1][j]=='@'||a[i-1][j]=='?')t=1;}}}if(t==1)goto leb3;}n=0; /*\u68c0\u67e5\u7ed3\u675f*/for(i=1;i<=hang;i=i+1){for(j=1;j<=lie;j=j+1){if(a[i][j]!='+'&&a[i][j]!='@'&&a[i][j]!='?')n=n+1;}}}while(a[u][v]!='#'&&n!=(hang*lie-ge));for(i=1;i<=ge;i=i+1) /*\u6e38\u620f\u7ed3\u675f*/{x=z[i]/lie+1; y=z[i]%lie+1; a[x][y]='#'; }printf(" ");for(i=1;i<=lie;i=i+1){w=(i-1)/10+48; printf("%c",w);w=(i-1)%10+48; printf("%c ",w);}printf("\n |");for(i=1;i<=lie;i=i+1){printf("---|");}printf("\n");for(i=1;i<=hang;i=i+1){w=(i-1)/10+48; printf("%c",w);w=(i-1)%10+48; printf("%c |",w);for(j=1;j<=lie;j=j+1){if(a[i][j]=='0')printf(" |");else printf(" %c |",a[i][j]);}if(i==2)printf(" \u5269\u4f59\u96f7\u4e2a\u6570");if(i==3)printf(" %d",lei); printf("\n |");for(j=1;j<=lie;j=j+1) {printf("---|");}printf("\n");}if(n==(hang*lie-ge)) printf("\u4f60\u6210\u529f\u4e86!\n");else printf(" \u6e38\u620f\u7ed3\u675f!\n");printf(" \u91cd\u73a9\u8bf7\u8f93\u51651\n");t=0;scanf("%d",&t);if(t==1)goto leb1;}
/*\u6ce8\uff1a\u5728DEV c++\u4e0a\u8fd0\u884c\u901a\u8fc7\u3002\u884c\u53f7\u548c\u5217\u53f7\u90fd\u4ece0\u5f00\u59cb\uff0c\u6bd4\u5982\u8981\u786e\u5b9a\u7b2c0\u884c\u7b2c9\u5217\u4e0d\u662f\u201c\u96f7\u201d\uff0c\u5c31\u57280\u548c9\u4e2d\u95f4\u52a0\u5165\u4e00\u4e2a\u5b57\u6bcd\uff0c\u53ef\u4ee5\u8f93\u5165\u30100a9\u3011\u4e09\u4e2a\u5b57\u7b26\u518d\u6309\u56de\u8f66\u952e\u30023\u884c7\u5217\u4e0d\u662f\u96f7\uff0c\u5219\u8f93\u5165\u30103a7\u3011\u56de\u8f66\uff1b\u7b2c8\u884c\u7b2c5\u5217\u662f\u96f7\uff0c\u5c31\u8f93\u5165\u30108#5\u3011\u56de\u8f66\uff0c9\u884c0\u5217\u662f\u96f7\u5219\u8f93\u5165\u30109#0\u3011\u5e76\u56de\u8f66*/

10\u5757\u94b1\u90fd\u6ca1\u4eba\u641e \u771f\u5fc3\u8bdd

"扫雷"小游戏C代码

#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
main( )
{char a[102][102],b[102][102],c[102][102],w;
int i,j;  /*循环变量*/
int x,y,z[999];  /*雷的位置*/
int t,s;  /*标记*/
int m,n,lei;  /*计数*/
int u,v;  /*输入*/
int hang,lie,ge,mo;  /*自定义变量*/
srand((int)time(NULL));  /*启动随机数发生器*/
leb1:  /*选择模式*/
printf("
   请选择模式:
  1.标准  2.自定义
");
scanf("%d",&mo);
if(mo==2)  /*若选择自定义模式,要输入三个参数*/
{do
{t=0; printf("请输入
行数 列数 雷的个数
");
scanf("%d%d%d",&hang,&lie,&ge);
if(hang<2){printf("行数太少
"); t=1;}
if(hang>100){printf("行数太多
");t=1;}
if(lie<2){printf("列数太少
");t=1;}
if(lie>100){printf("列数太多
");t=1;}
if(ge<1){printf("至少要有一个雷
");t=1;}
if(ge>=(hang*lie)){printf("雷太多了
");t=1;}
}while(t==1);
}
else{hang=10,lie=10,ge=10;}  /*否则就是选择了标准模式(默认参数)*/
for(i=1;i<=ge;i=i+1)  /*确定雷的位置*/
{do
{t=0; z[i]=rand( )%(hang*lie);
for(j=1;j<i;j=j+1){if(z[i]==z[j]) t=1;}
}while(t==1);
}
for(i=0;i<=hang+1;i=i+1)  /*初始化a,b,c*/
{for(j=0;j<=lie+1;j=j+1) {a[i][j]='1'; b[i][j]='1'; c[i][j]='0';} }
for(i=1;i<=hang;i=i+1)
{for(j=1;j<=lie;j=j+1) {a[i][j]='+';} }
for(i=1;i<=ge;i=i+1)  /*把雷放入c*/
{x=z[i]/lie+1; y=z[i]%lie+1; c[x][y]='#';}
for(i=1;i<=hang;i=i+1)  /*计算b中数字*/
{for(j=1;j<=lie;j=j+1)
{m=48;
if(c[i-1][j-1]=='#')m=m+1; if(c[i][j-1]=='#')m=m+1;
if(c[i-1][j]=='#')m=m+1;  if(c[i+1][j+1]=='#')m=m+1;
if(c[i][j+1]=='#')m=m+1;  if(c[i+1][j]=='#')m=m+1;
if(c[i+1][j-1]=='#')m=m+1; if(c[i-1][j+1]=='#')m=m+1;
b[i][j]=m;
}
}
for(i=1;i<=ge;i=i+1)  /*把雷放入b中*/
{x=z[i]/lie+1; y=z[i]%lie+1; b[x][y]='#';}

lei=ge;  /*以下是游戏设计*/
do
{leb2:  /*输出*/
system("cls");printf("



");

printf("    ");
for(i=1;i<=lie;i=i+1)
{w=(i-1)/10+48; printf("%c",w);
w=(i-1)%10+48; printf("%c  ",w);
}
printf("
  |");
for(i=1;i<=lie;i=i+1){printf("---|");}
printf("
");
for(i=1;i<=hang;i=i+1)
{w=(i-1)/10+48; printf("%c",w);
w=(i-1)%10+48; printf("%c |",w);
for(j=1;j<=lie;j=j+1)
{if(a[i][j]=='0')printf("   |");
else printf(" %c |",a[i][j]);
}
if(i==2)printf(" 剩余雷个数");
if(i==3)printf(" %d",lei);
printf("
   |");
for(j=1;j<=lie;j=j+1){printf("---|");}
printf("
");
}

scanf("%d%c%d",&u,&w,&v);  /*输入*/
u=u+1,v=v+1;
if(w!='#'&&a[u][v]=='@')
goto leb2;
if(w=='#')
{if(a[u][v]=='+'){a[u][v]='@'; lei=lei-1;}
else if(a[u][v]=='@'){a[u][v]='?'; lei=lei+1;}
else if(a[u][v]=='?'){a[u][v]='+';}
goto leb2;
}
a[u][v]=b[u][v];

leb3:  /*打开0区*/
t=0;
if(a[u][v]=='0')
{for(i=1;i<=hang;i=i+1)
{for(j=1;j<=lie;j=j+1)
{s=0;
if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;
if(a[i-1][j]=='0')s=1;  if(a[i+1][j-1]=='0')s=1;
if(a[i+1][j+1]=='0')s=1; if(a[i+1][j]=='0')s=1;
if(a[i][j-1]=='0')s=1;  if(a[i][j+1]=='0')s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=1;i<=hang;i=i+1)
{for(j=lie;j>=1;j=j-1)
{s=0;
if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;
if(a[i-1][j]=='0')s=1;  if(a[i+1][j-1]=='0')s=1;
if(a[i+1][j+1]=='0')s=1; if(a[i+1][j]=='0')s=1;
if(a[i][j-1]=='0')s=1;   if(a[i][j+1]=='0')s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=hang;i>=1;i=i-1)
{for(j=1;j<=lie;j=j+1)
{s=0;
if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;
if(a[i-1][j]=='0')s=1;  if(a[i+1][j-1]=='0')s=1;
if(a[i+1][j+1]=='0')s=1; if(a[i+1][j]=='0')s=1;
if(a[i][j-1]=='0')s=1;  if(a[i][j+1]=='0')s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=hang;i>=1;i=i-1)
{for(j=lie;j>=1;j=j-1)
{s=0;
if(a[i-1][j-1]=='0')s=1; if(a[i-1][j+1]=='0')s=1;
if(a[i-1][j]=='0')s=1;  if(a[i+1][j-1]=='0')s=1;
if(a[i+1][j+1]=='0')s=1;if(a[i+1][j]=='0')s=1;
if(a[i][j-1]=='0')s=1;  if(a[i][j+1]=='0')s=1;
if(s==1)a[i][j]=b[i][j];
}
}

for(i=1;i<=hang;i=i+1)  /*检测0区*/
{for(j=1;j<=lie;j=j+1)
{if(a[i][j]=='0')
{if(a[i-1][j-1]=='+'||a[i-1][j-1]=='@'||a[i-1][j-1]=='?')t=1;
if(a[i-1][j+1]=='+'||a[i-1][j+1]=='@'||a[i-1][j+1]=='?')t=1;
if(a[i+1][j-1]=='+'||a[i+1][j-1]=='@'||a[i+1][j-1]=='?')t=1;
if(a[i+1][j+1]=='+'||a[i+1][j+1]=='@'||a[i+1][j+1]=='?')t=1;
if(a[i+1][j]=='+'||a[i+1][j]=='@'||a[i+1][j]=='?')t=1;
if(a[i][j+1]=='+'||a[i][j+1]=='@'||a[i][j+1]=='?')t=1;
if(a[i][j-1]=='+'||a[i][j-1]=='@'||a[i][j-1]=='?')t=1;
if(a[i-1][j]=='+'||a[i-1][j]=='@'||a[i-1][j]=='?')t=1;
}
}
}
if(t==1)goto leb3;
}

n=0;  /*检查结束*/
for(i=1;i<=hang;i=i+1)
{for(j=1;j<=lie;j=j+1)
{if(a[i][j]!='+'&&a[i][j]!='@'&&a[i][j]!='?')n=n+1;}
}
}
while(a[u][v]!='#'&&n!=(hang*lie-ge));

for(i=1;i<=ge;i=i+1)  /*游戏结束*/
{x=z[i]/lie+1; y=z[i]%lie+1; a[x][y]='#'; }
printf("    ");
for(i=1;i<=lie;i=i+1)
{w=(i-1)/10+48; printf("%c",w);
w=(i-1)%10+48; printf("%c  ",w);
}
printf("
  |");
for(i=1;i<=lie;i=i+1){printf("---|");}
printf("
");
for(i=1;i<=hang;i=i+1)
{w=(i-1)/10+48; printf("%c",w);
w=(i-1)%10+48; printf("%c |",w);
for(j=1;j<=lie;j=j+1)
{if(a[i][j]=='0')printf(" |");
else  printf(" %c |",a[i][j]);
}
if(i==2)printf(" 剩余雷个数");
if(i==3)printf(" %d",lei); printf("
   |");
for(j=1;j<=lie;j=j+1) {printf("---|");}
printf("
");
}
if(n==(hang*lie-ge)) printf("你成功了!
");
else printf("    游戏结束!
");
printf("    重玩请输入1
");
t=0;
scanf("%d",&t);
if(t==1)goto leb1;
}

/*注:在DEV c++上运行通过。行号和列号都从0开始,比如要确定第0行第9列不是“雷”,就在0和9中间加入一个字母,可以输入【0a9】三个字符再按回车键。3行7列不是雷,则输入【3a7】回车;第8行第5列是雷,就输入【8#5】回车,9行0列是雷则输入【9#0】并回车*/



  • 鑳藉湪dev-c++涓婅繍琛岄氳繃鐨鎵浄,璐悆铔,绛灏忔父鎴鐨c璇█浠g爜
    绛旓細void Initialize(void); /* 鍥惧舰椹卞姩 */ void CloseGame(void); /* 鍏抽棴娓告垙鍑芥暟 */ void DrawGame(void); /* 鐢诲浘鍑芥暟 */ void GameOver(void); /* 杈撳嚭澶辫触鍑芥暟 */ void PlayGame(); /* 娓告垙鎺у埗鍑芥暟 涓昏鎺у埗搴忓垪 */ void Delay(char ch); /* 璋冭妭娓告垙閫熷害 */ /* 涓诲嚱鏁 */ ...
  • C璇█ 娓告垙 浠g爜
    绛旓細void Control(void);/*娓告垙寮濮,閲嶆柊,鍏抽棴*/ void GameBegain(void);/*娓告垙寮濮嬬敾闈*/ void DrawSmile(void);/*鐢荤瑧鑴*/ void DrawRedflag(int,int);/*鏄剧ず绾㈡棗*/ void DrawEmpty(int,int,int,int);/*涓ょ绌烘牸瀛愮殑鏄剧ず*/ void GameOver(void);/*娓告垙缁撴潫*/ void GameWin(void);/*鏄剧ず...
  • C璇█鎵浄娓告垙婧愪唬鐮
    绛旓細"鎵浄"灏忔父鎴廋浠g爜 include<stdio.h>#include<math.h>#include#include<stdlib.h>main( ){char a[102][102],b[102][102],c[102][102],w;int i,j; /*寰幆鍙橀噺*/int x,y,z[999]; /*闆风殑浣嶇疆*/int t,s; /*鏍囪*/int m,n,lei; /*璁℃暟*/int u,v; /*杈撳叆*/int ...
  • C璇█绋嬪簭璁捐璇剧▼璁捐鎵湴闆锋父鎴,鎬庝箞鍋?
    绛旓細void InitMap();/* 娓告垙寮濮嬫椂,鍔犺浇鐢ㄦ埛閫夋嫨鐨勪竴骞呴浄鍥 */void LoadMap(int index);/* 鐜鎵浄娓告垙 */int Play();/* 缁樺埗涓昏彍鍗 */void DrawMainMenu();/* 鏄剧ず缁撴灉 */void ShowResult(int result);/* 涓诲嚱鏁 */int main(int argc, char* argv[]){ char ch; int result; srand(time(NULL));...
  • C璇█缂栫▼,鏁扮粍搴旂敤,妯℃嫙鎵浄銆傚湪绾跨瓑
    绛旓細璋冭瘯閫氳繃锛屾簮绋嬪簭濡備笅锛歩nclude<stdio.h> include include<stdlib.h> int map[9][9] = {0};int result[9][9] = {0};int mine[10][2];bool Check(int i){ int j;for(j=0;j=0 && x+1<=8 && y-1>=0 && y+1<=8){//涓棿浣嶇疆 for(i=x-1;i<=x+1;i++...
  • 鑳藉湪dev-c++涓婅繍琛岄氳繃鐨鎵浄,璐悆铔,绛灏忔父鎴鐨c璇█浠g爜
    绛旓細void Close(void); /*鍏抽棴娓告垙鍑芥暟*/ void DrawK(void); /*鐢诲浘鍑芥暟*/ void GameOver(void);/*杈撳嚭澶辫触鍑芥暟*/ void GamePlay(); /*娓告垙鎺у埗鍑芥暟 涓昏绋嬪簭*/ void PrScore(void); /*鍒嗘暟杈撳嚭鍑芥暟*/ DELAY(char ch)/*璋冭妭娓告垙閫熷害*/ { if(ch=='3'){ delay(gamespeed); /*delay鏄欢杩...
  • C璇█缂栫畝鍗曠殑鎵浄
    绛旓細缁欎綘涓涓畬鏁寸殑鎵浄婧愮爜 include <conio.h> include <graphics.h> include <stdio.h> include <stdlib.h> include include <ctype.h> include "mouse.c"define YES 1 define NO 0 define XPX 15 /* X pixels by square */ define YPX 15 /* Y pixels by square */ define DEFCX 30 ...
  • 濡備綍鐢C璇█缂栫▼ 鎵浄!~
    绛旓細鎵浄 include<stdio.h> include<graphics.h> include<stdlib.h> struct list { int x;int y;int num;int bomb;int wa;};struct list di[10][10];int currentx=210;int currenty=130;void initxy(void){ int i,j;for(i=0;i<=9;i++)for(j=0;j<=9;j++){ di[j].x=i*20+...
  • C璇█鎵浄婧愪唬鐮 鐢ㄥ埌鍥惧舰鍑芥暟 骞朵笖鑳界敤榧犳爣鐜
    绛旓細/*宸﹂敭鎸変笅*/ { _AX=0x03;geninterrupt(0x33);return(_BX&1);} void MouseGetXY()/*寰楀埌褰撳墠浣嶇疆*/ { _AX=0x03;geninterrupt(0x33);MouseX=_CX;MouseY=_DX;} begain()/*娓告垙寮濮嬬敾闈*/ { int i,j;loop: cleardevice();MouseOn();MouseSetXY(180,30);MouseX=180;MouseY=30;...
  • 鎵浄c璇█浠g爜 鍛婅瘔鎴憕~
    绛旓細scanf("%c",&work[i].ch[j][k]);getchar();} i++;} } /*for(j=1;j<=work[i].n;j++){for(k=1;k<=work[i].m;k++)printf("%c,",&work[i].ch[j][k]);printf("\n");}*/ int ii;for(ii=1;ii<=i-1;ii++){if(ii==1)printf("Field #%d:\n",ii);else ...
  • 扩展阅读:吓人的编程代码 ... 输入代码即可玩的小游戏 ... 免费游戏代码 ... c语言编程扫雷代码 ... c++推箱子小游戏源代码 ... 输入一串代码玩小游戏 ... 扫雷c++代码 ... 100个小游戏代码 ... java设计扫雷游戏代码 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网