扫雷游戏(c++)

[复制链接] 查看: 2892|回复: 0
等级:
论坛元老
帖子:
664
积分:
16343
威望:
0
金钱:
15679
贡献:
0
精华:
0
注册:
2021-10-31
跳转到指定楼层
楼主
发表于 2022-11-24 11:09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<bits/stdc++.h>
' K  [8 T4 G; b( }4 t* B' t) K" C2 }using namespace std;
4 _4 _# i/ l" T3 C' {4 b' r# lint a[12][12],b[12][12],m,n,c,f,k,s;
( V% j% V) `9 y3 p. ?bool dt[12][12];' _/ V5 Y8 D' f5 K. V' |7 H
void gs(){9 D' i& c  g' p' v% w  H1 A# P
        for(int i=1;i<=10;i++){
. c' V" w: q+ [# N% c                for(int j=1;j<=10;j++){
+ l5 z- K7 S2 t: j                        if(b[j]) printf("%3d",a[j]+b[j]*10);+ d- w( ?/ f2 d5 c$ O7 S
                        else printf("%3d",a[j]);; @, I% v7 M, s8 A' [( z* p& N- ^
                }: s7 W$ `4 @! p+ t  X) Z
                printf("\n");$ U; O, i3 V; V! ^' p) H; m
        }2 y, K; L" `3 |. U6 P
}
0 c: }( P" y+ Q! U& E% o" a9 ?void ks(){
! d+ i0 U* Q& i% G% w. l) ?! p        for(int i=1;i<=10;i++){
) E: T+ O5 I- N' z* v* O, `                for(int j=1;j<=10;j++){
6 ^  j2 W. x6 M+ R" X$ c9 }. }                        if(dt[j]) k++;# w7 h) v+ Y, b: Y
                        a[j]=9;* \, i) G. `: z4 F
                }' g$ z# I) B/ j/ ~: }
        }
  ?3 e- {# L& Y4 t" J8 R' y        printf("%d\n",k);
1 w3 t  c- g/ W/ S9 H}
: [- f% n+ H- B& F+ C; Xvoid sjs(){
0 ^% ~- V4 I& ]1 S' ]1 u) S        for(int i=1;i<=10;i++){
6 a. m9 `1 ]: {& c8 j) K- y                for(int j=1;j<=10;j++){
2 T! u: n; J8 `2 t% n& r" H# M                        if(dt[j]) printf("%d %d ",i,j);
9 r  g9 V0 }! z' r6 W4 @9 i                        if(b[j]!=2&&dt[j])printf("  hh  ");
, H$ W" D2 T( M; c4 o+ r                }
: N: A' ]% Z, u/ c% b                printf("\n");/ M/ X2 ]: z/ q7 N& r
        }
2 o' G8 ?0 m( Y$ Y% W        printf("SB");
8 _: o: Y" @, @1 k}  d: C  s6 z3 i: N. K# A% g% R; Z
void yjs(){7 E' s) `- r& P4 V
        for(int i=1;i<=10;i++){
' X1 S9 K$ Z/ ^1 g& J) w8 h                for(int j=1;j<=10;j++){
5 l) ?) O1 A$ |8 m! W                        if(dt[j]) printf("%d %d",i,j);- B" {: h: U1 R% H5 M; g
                        printf("NB\n");
+ ]0 y5 j  C/ y0 U% y                }3 e5 c- H. i" ?6 H( n
        }5 n& M3 H  G. @% w# H- L$ f
}! M; ~$ y. ?0 j' O" Q4 U1 U8 e. ~. ]
int jc(int s,int x,int y){8 h6 Z4 J, X/ Q# n* ]
        if(dt[x-1][y-1]) ++s;! k6 t5 Z8 P1 w
        if(dt[x-1][y+1]) ++s;$ s, v! B1 N3 }! i$ F6 I
        if(dt[x-1][y]) ++s;
5 h* ]8 @+ H: W6 s+ H        if(dt[x][y-1]) ++s;
1 L6 [) O& W- F( g        if(dt[x][y+1]) ++s;
: h3 \* B7 j7 e$ H+ Q4 _  i        if(dt[x+1][y]) ++s;5 a  }6 r" j4 f3 ~) u0 j
        if(dt[x+1][y-1]) ++s;" ?) J' `$ ^  |9 a* P$ ^
        if(dt[x+1][y+1]) ++s;; @6 v, j* j. T1 _0 S  F) s! N) ^
        a[x][y]=s;# h) h2 z' i0 j
        if(s==0){
) k, i; T$ O+ J8 e; j8 E" v                if(x-1&&y-1&&x<1&&y<11) jc(s,x-1,y-1);# F/ R+ e) d! _
                if(x-1&&x<11&&y<10) jc(s,x-1,y+1);
- W$ l" ?4 D" C4 C9 J* c7 V& O2 G6 `3 m                if(x-1&&y&&x<11&&y<11) jc(s,x-1,y);4 b( J* W7 Y, j- \! }
                if(x&&y-1&&x<11&&y<11) jc(s,x,y-1);
9 l+ Y- u  r- s$ A" H                if(x&&x<11&&y<10) jc(s,x,y+1);% A$ \7 q; v. y# X/ m
                if(y&&x<10&&y<11) jc(s,x+1,y);
( e; v5 H( }+ J! F$ y9 O& w                if(y-1&&x<10&&y<11) jc(s,x+1,y-1);+ P* a' e% p& {1 O" l
                if(x<10&&y<10) jc(s,x+1,y+1);
) L4 Z4 S; k) {3 ?        }
+ a8 m" n2 O1 F* ]6 `}
0 x9 I0 w7 R" p! C/ F$ uint main(){& N. U1 S$ f1 k& J( c
        bool ls[12][12];
  g/ n7 X* n1 x2 M$ V        for(int i=1;i<=10;i++)
! o6 w6 d6 A, I- D                for(int j=1;j<=10;j++)
" _  U6 h1 M: e; h                        dt[j]=ls[j];" U6 S/ h2 L- e1 D5 e2 P' [3 I
                        ks();' U8 K, s+ l. e
        while(k||f){7 f4 q! P( r6 b
                printf("\n\n\n");! n$ s: y( K2 r0 e
                gs();
* {0 L, ?& L" Z8 U                scanf("%d%d%d",&m,&n,&c);
9 w$ q! J7 }+ Z! J. K+ A$ B                if(dt[m][n]&&c==0){
& i+ Y3 ]' }8 S6 l                        sjs();
$ E4 F  d' w8 D! W7 a                        return 0;  j. Q7 [' r7 W& k
                }
1 {4 V" \1 I( z- {                b[m][n]=c;
5 N: ^5 }) O$ M, s2 K0 b: m                if(c==0) a[m][n]=jc(s,m,n);
1 D, V! ]# W5 r3 u* w% i% A" y3 o" H                if(c==2){% V9 e% W/ I. H2 O# B7 r
                        if(dt[m][n]) --k;
9 F  m+ H2 j- m& W                        else ++f;8 d0 v! m! K6 n$ V2 G; B; ~, y
                }
, l  v" v+ g: ?4 g$ Z; ]        }
7 c6 l' b1 q& O6 v" Z  w6 F        yjs();+ U: S( w+ @9 ]! k
        return 0;
! M. p2 e( B" _}! ^: s7 C2 V" z2 k  W
& L: b; @0 r* l$ H$ I4 _
回复

使用道具 举报

| 关于弈城 | 家长监护 | 弈城合作 | 意见投诉 | 客服中心 | 关注弈城 |
Copyright © 2003- eweiqi Co.LTD All Rights Reserved
北京世纪弈城围棋文化传播有限公司 ( 京ICP备08005970号 京ICP证050898号 )
客户服务热线:400-010-5177 文明办网文明上网举报电话:010-82615762 投诉邮箱:help@eweiqi.com
抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉迷游戏伤身 合理安排时间 享受健康生活
京网文(2015)2374-465号 京公网安备 11010102000265号

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