扫雷游戏(c++)

[复制链接] 查看: 2903|回复: 0
等级:
论坛元老
帖子:
664
积分:
16407
威望:
0
金钱:
15743
贡献:
0
精华:
0
注册:
2021-10-31
跳转到指定楼层
楼主
发表于 2022-11-24 11:09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<bits/stdc++.h>/ p& l  H& u! O; z
using namespace std;
+ _) J2 K. j2 \int a[12][12],b[12][12],m,n,c,f,k,s;
; f, l, @4 }( G. Cbool dt[12][12];6 @3 c" d; \5 Y& e% u( I: I* f
void gs(){$ Y3 M& o/ W2 I3 o8 u6 V/ z; S
        for(int i=1;i<=10;i++){, ]3 w4 X/ x  ?; N' T" G
                for(int j=1;j<=10;j++){
  Q) q& E4 J8 ~7 j6 I+ h                        if(b[j]) printf("%3d",a[j]+b[j]*10);
6 a. b' @( D) p& y                        else printf("%3d",a[j]);
6 W  w0 f$ p' \" R' T+ L" V0 ~                }
% B* |0 u" g6 w                printf("\n");
) [4 ]: _* ]' o, V' `        }
& Q+ W- X, d( Z" W9 C" g) l# x}' m1 _( s* G( u) i& {. a9 z) W
void ks(){/ h5 [7 y) _/ i/ j3 Z- o
        for(int i=1;i<=10;i++){* i5 b  l8 r: x% ]
                for(int j=1;j<=10;j++){
0 @' @: d( E3 V) ~. |                        if(dt[j]) k++;% p5 N, u; j- W  _; h1 B( x! g* a& s5 o
                        a[j]=9;6 k/ h7 N& c4 P
                }1 l; K& o# _! A: |4 E3 R! ]' L
        }
& p0 {( R4 p3 |- V9 A        printf("%d\n",k);  K/ e, t, _5 L1 b1 V1 x
}
: }2 ?# x5 K& z2 w' k2 ?" v- Q4 Bvoid sjs(){+ W/ v6 g6 m5 Q0 U
        for(int i=1;i<=10;i++){
: a( z/ T6 d% W. i                for(int j=1;j<=10;j++){5 }0 s: d/ g) [9 W: A6 x; A
                        if(dt[j]) printf("%d %d ",i,j);" c- M: T- N1 z& R1 W7 |
                        if(b[j]!=2&&dt[j])printf("  hh  ");! i! H9 J1 n- h# \7 l
                }
8 ?6 ]+ _" R7 u) H: `0 l9 h4 y                printf("\n");
* q0 s) L, G" x# C9 C( u% S0 E        }
9 j0 D# L- |, N9 a+ y        printf("SB");1 N: y$ _" }( N! K8 {
}
# l- v6 m$ F8 P( Z' zvoid yjs(){
" q& W( l' m  H' `        for(int i=1;i<=10;i++){" V& x+ ~6 b$ C9 i% f# ~) V- a
                for(int j=1;j<=10;j++){. D. F* i% L- L: W$ g+ Y; O0 d' G
                        if(dt[j]) printf("%d %d",i,j);3 J# v3 @. W; v% s' S" F2 N. M# e
                        printf("NB\n");
. ?7 q% b& ]3 c# ~: u4 e7 L, Y  N* Y                }1 o! i0 j! w+ s& I( L
        }
, w7 `2 j- q' e: u7 u5 L3 x5 X}
' m4 D# F2 K8 b% T$ n4 lint jc(int s,int x,int y){, X7 M" g3 ?1 a% d/ Y" L- y
        if(dt[x-1][y-1]) ++s;
9 k8 {+ z; o6 n, Y7 i) i4 R0 g8 c        if(dt[x-1][y+1]) ++s;" s, S' B' h5 J- T
        if(dt[x-1][y]) ++s;
. ]$ m$ F4 i6 q6 C        if(dt[x][y-1]) ++s;
% B; f' u9 `% }$ B! O        if(dt[x][y+1]) ++s;1 V, o. z- p% h) V+ |
        if(dt[x+1][y]) ++s;, }8 c8 N+ M: k" b3 ^1 [7 G7 m; E
        if(dt[x+1][y-1]) ++s;0 g5 t# x: e: Z; k* y
        if(dt[x+1][y+1]) ++s;8 e" n4 ]- \% v) R" W) E4 g
        a[x][y]=s;
& U# L% {+ W  ~% I        if(s==0){
4 u" C. e' |, C' ~! N                if(x-1&&y-1&&x<1&&y<11) jc(s,x-1,y-1);8 a5 D4 l$ I  _/ M; Y
                if(x-1&&x<11&&y<10) jc(s,x-1,y+1);
) f) h% B2 G7 M, e; a                if(x-1&&y&&x<11&&y<11) jc(s,x-1,y);% J- D. \8 N" A7 \7 f+ W
                if(x&&y-1&&x<11&&y<11) jc(s,x,y-1);
2 v& v1 A1 I# c( v                if(x&&x<11&&y<10) jc(s,x,y+1);
* _9 v5 U1 u) X. i) j* W                if(y&&x<10&&y<11) jc(s,x+1,y);' D' }( n- j3 Y# N3 g. p5 f8 ?% P
                if(y-1&&x<10&&y<11) jc(s,x+1,y-1);1 f9 o; ?. i* h8 Z& y, S
                if(x<10&&y<10) jc(s,x+1,y+1);0 l1 F$ D* }8 u4 }3 n1 h: a7 ~. I
        }
4 M7 W9 R! W  \% k' F% k}
' a+ \2 \; }* D4 |9 M7 m- ]int main(){
& I- R: x. r1 V: i% ?5 h        bool ls[12][12];" y' m1 R4 g6 [3 I- q
        for(int i=1;i<=10;i++)
2 @( n+ W7 N( t' a; k- h/ k' j                for(int j=1;j<=10;j++)
0 N- t8 B3 [' n$ K' _+ z                        dt[j]=ls[j];( q8 n0 D, \# K% V* J
                        ks();
3 c2 Q" [1 e$ |7 t: b* L, @% [8 V        while(k||f){7 e% ^# ~5 v8 R! {3 `1 D) b
                printf("\n\n\n");
5 X& h# t. E2 N) w$ A4 S                gs();
* R/ R0 L: w( O" Z  {% |, J                scanf("%d%d%d",&m,&n,&c);1 }3 _' e( Z! @& @: a# F  T4 D
                if(dt[m][n]&&c==0){  X0 u" A4 C4 w* X  J; M
                        sjs();% H) Q% d' v4 E4 c
                        return 0;
( M0 B! C" b/ B                }( U; m2 ^9 {4 z' n/ u& ]; A! s
                b[m][n]=c;! v/ z3 _1 A& S6 n2 a/ x
                if(c==0) a[m][n]=jc(s,m,n);
. [" ]( j- S1 k* W- n6 l                if(c==2){, Q" B  u' @( }0 `3 F  L
                        if(dt[m][n]) --k;8 R' k  W9 d7 c4 |* B
                        else ++f;
! L7 H( i: x1 w" I* |; ]                }
7 a% P; x8 [) i/ s: I9 ^        }6 i) D3 `3 X/ k# o
        yjs();
0 }$ Y' d1 ~" D" s4 @2 k- ?4 F$ I        return 0;
& r! i- ]% @6 w5 b}% ~2 ?. O4 H- k" ?! C
: p. T) _/ V: A4 f1 l1 L
回复

使用道具 举报

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

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