 UID: 5
 恋人 天使乖乖
 昵称: 炉火纯青
 精华: 20
 积分: 33587
 帖子: 3744
 威望: 30101
 金钱: 18536 D币
 宣传币: 1182 X币
 踢楼币: 0 T
 经验: 16级
 阅读权限: 200
 注册: 2007-7-14
 来自: 江西,樟树

状态:
|
|
楼主
大 中
小
发表于 2008-5-8 10:04
只看该作者
恋人 天使乖乖
C# Mines(布雷) 代码
本文给出一个 C# Mines(布雷)的 代码,新手研究一下吧。 以下是引用片段:我爱电脑技术论坛 q( r7 v3 D+ v# a. s
using System.Collections; www.520diannao.com, _& N& T' p# Y
using System.IO;
4 x% V/ ?$ l5 h o using System;
( O' K( Y: z3 M! M* K namespace com.Mines + z+ y/ Q* U n- g
{ 我爱电脑技术论坛 v9 P; T# {+ T/ g; @
class SearchingMines 9 o1 H1 w, q+ j3 |5 |/ [: t# W
{
D1 Z- ^: u- [2 W+ g& S% y public ArrayList list = new ArrayList();
* }1 d( l; Y4 _5 F9 G6 Y# H public int[,] mines = new int[10, 10];
2 n: }! X& n% c3 J static void Main(string[] args) . \! |* w* k- }8 x8 y& e
{ . e# Y+ P8 ^* a K* N5 p# q- h
SearchingMines sm = new SearchingMines(); www.520diannao.com; i' U; I+ B& M5 d$ ]& m5 w4 d
sm.initMines(); 0 q) n9 `% U4 V5 E( w
sm.HidenMines();
3 A/ t' I0 t8 [& r$ v0 J* U! Y/ D sm.FillInOtherNumber(); 2 S0 Z0 _9 u$ u6 w) Z- L, P
sm.display(); www.520diannao.com n' Z% A& a3 J0 Z
// sm.SaveTxt();
" h* ^) z7 F1 R0 J) _7 s我爱电脑技术论坛 } 打造最好的电脑自学交流论坛' _ k# K1 W! Z6 `4 P9 f; h
public void initMines()
7 J% {6 V8 I3 @; V7 W/ G0 ^ { www.520diannao.com% u6 b% v2 b% W8 f& c" X
for (int i = 0; i < this.mines.GetLength(0); i++) ; u: R6 }; o d; r: C+ ]
{ 9 f+ a$ x/ ^- r
for (int j = 0; j < this.mines.GetLength(1); j++)
+ N4 j3 p' Q9 q4 E, P/ b {
7 v4 R& g5 g! f this.mines[i, j] = 0; 8 t2 L* g. Z! w
list.Add(this.mines[i, j]);
( J* G" d3 c/ |9 @; }3 s& iwww.520diannao.com } 7 N% Q9 G9 R- @( z& k* o
}
1 h" }$ H% K" D8 s$ M我爱电脑技术论坛 }
. `5 H4 C$ T* c( i, {/ @ public void HidenMines() ' M: D. B$ ]& k, P. j3 {# ]
{ 我爱电脑技术论坛9 N/ l5 k( U/ @5 ^+ K
Random r = new Random();
# t4 ~3 t$ S& o: i" { G for (int i = 0; i < 9; i++)
2 E% H' V2 h4 r3 |& C+ f& a0 v2 o打造最好的电脑自学交流论坛 {
/ Z: I4 N1 R% w+ Z. j+ F5 n int count = this.list.Count;
6 o1 Q+ |: ]+ A/ s1 S# x int number = r.Next(count);
: ?6 n% p5 T" U, D% _/ u2 c$ \打造最好的电脑自学交流论坛 int row = number / 10;
( e0 L& c& c$ L8 i, i: O5 F$ B+ T) Q int column = number % 10;
f" H1 m( n: e, g# x. e) v" @ this.mines[row, column] = 9; 4 J" B0 v/ b6 \7 t v
this.list.RemoveAt(this.mines[row, column]); ' O9 b1 o# F- n
} 打造最好的电脑自学交流论坛8 c n; f, v, o( {6 F9 U
}
C k8 q3 J1 M public void FillInOtherNumber() www.520diannao.com- n9 E j5 x, S) p/ q" q
{
& M" W' D3 J8 z; X try 4 {& t2 ]% A. U8 K
{ + O. ^& V1 a8 A4 _# u( @8 a
for (int i = 0; i < this.mines.GetLength(0); i++) ! C3 L8 w. T& L [; p3 L
{ 我爱电脑技术论坛9 q' \. Y/ ^* p W5 I4 l
for (int j = 0; j < this.mines.GetLength(1); j++)
0 r9 B0 I8 t9 p) W5 B+ E { 打造最好的电脑自学交流论坛, a/ P4 w; V3 R' T' B
int left = j - 1;
& ?/ A5 B- ]* ^; O* U int right = j + 1;
7 ^- T3 i- T) l( k$ c int top = i - 1; www.520diannao.com" E4 r3 u# m9 A9 X6 t
int bottom = i + 1;
2 C3 e9 _& L; d if (this.mines[i, j] != 9)
* i% U/ G# z/ b; j% B: ]: p { www.520diannao.com0 z1 m) |3 \" H& Q* z
if(top>=0 && left>=0)//左边和上边 打造最好的电脑自学交流论坛% H( z& i* ?# b: P8 u' @/ y
{ 打造最好的电脑自学交流论坛8 O! @0 Y. H& P
if (this.mines[top, left] == 9)//判断左上方是否为9 打造最好的电脑自学交流论坛- ~$ B+ U9 t+ H& e# s3 c* _/ V
{
" ~7 g P% d4 R6 L& D1 N- ?% q1 K我爱电脑技术论坛 mines[i,j] += 1;
+ y ^# {/ X) a$ p4 T1 P } ) c* G4 S& u7 D! V: W5 u) H9 t
} 4 f9 b; \: ]( E9 b. R
if(top>=0 && right<10)//右边和上边 D% u3 i8 w2 _8 C& \/ r0 S- J$ o
{
9 I/ R2 j9 n1 q if (this.mines[top, right] == 9)//判断该点的右上方是否
2 P M$ d2 Z2 r8 W7 {9 S i {
( l7 I% M$ L, o打造最好的电脑自学交流论坛 mines[i,j] += 1;
/ O7 u0 m+ u; T3 X打造最好的电脑自学交流论坛 } / }; e7 P( Q6 p$ |
}
! h# P8 j+ [6 G9 c& H# ~6 ]* E- ^我爱电脑技术论坛 if(top>=0)//最上边 我爱电脑技术论坛) k; m8 ?$ b5 D8 @
{ 0 S1 W; A4 `( |- T. S# Z3 y
if (this.mines[top, j] == 9)//上边的那个是否为9
7 `) o* x; `, l6 w+ t; a5 R1 x { " \! h/ D5 w" d6 j5 G
mines[i,j] += 1;
$ Q. Q+ O2 c/ U; K) D6 o我爱电脑技术论坛 } + j- x B6 u) {
} 我爱电脑技术论坛' y) R U3 {2 q. F( }0 P- A
if(left>=0)//最左边 " s; _& a+ \! U, _& j. B
{ ; k- T; @( ]/ p/ h- `5 T& l( R, |# K
if (this.mines[i, left] == 9)//看左边那个是否为9 www.520diannao.com% w, M! {5 d; L3 L0 r3 C
{
. c" D0 Q3 S' R- x打造最好的电脑自学交流论坛 mines[i,j] += 1;
. [. s7 [& C2 h0 _www.520diannao.com } www.520diannao.com x/ w: ^. g8 Z$ R% P
} 打造最好的电脑自学交流论坛# H1 K) |% I& h- G
if(right<10)//最右边 0 b5 d1 _" E, n5 V
{ ! b8 I5 f4 W2 @% c: J
if (this.mines[i, right] == 9)//看右边是否为9 1 D2 C" x; {* P" U' R
{
3 w0 l1 A3 F+ n7 R" } mines[i,j] += 1;
/ d" `) ?! s7 J- J } | + o# q5 P: M* M
4 ~1 r( Y" c& k1 K6 X 以下是引用片段:
5 H' p/ K: K5 U$ | _+ E }
3 q# o, v- \: F. H& awww.520diannao.com if(bottom<10 && left >=0)//底部和左边
$ Z, z/ _3 C' s$ u9 _- N; }打造最好的电脑自学交流论坛 {
& z# Y9 z6 ]# I8 e4 a if (this.mines[bottom, left] == 9)//左下方是否为9
$ a# S& h; e6 c. L8 R( d我爱电脑技术论坛 { 打造最好的电脑自学交流论坛 A8 k3 K" Y& j
mines[i,j] += 1; 我爱电脑技术论坛# O/ O4 U# r, {6 ]5 {0 z I1 L
}
& r% E( b$ a4 v } ) x4 x P H7 Q1 B. D# R
if(bottom<10 && right<10)//右下方 % H7 t. s2 e; g; `5 r
{ 1 i7 n+ ~# l" p6 L" l0 }
if (this.mines[bottom, right] == 9)右下方
+ o0 k/ q9 e/ H) l' F3 }2 s打造最好的电脑自学交流论坛 { 我爱电脑技术论坛7 [- n0 A) T" u
mines[i,j] += 1; 打造最好的电脑自学交流论坛" S5 d+ D/ a& v
} 3 V& D1 U# a2 F5 m6 Y! T! c
}
7 a' U; V" v8 c if(bottom<10)//底部 # V9 s. y! R7 g
{ ; D1 y- D) @* z! w2 {
if (this.mines[bottom, j] == 9)//底部是否为9
/ _& \" C4 i' i9 \ {
1 i4 U' E5 @0 z0 e mines[i,j] += 1; 6 b! P" G0 Z8 b
}
_# S2 b3 J/ z. k4 c, B } ' k0 W3 U& d" K8 u8 c
// if (left < 0)//左边 www.520diannao.com0 A$ \2 q) a+ w, S$ }; K
// { ) I" U- X4 G2 T. G; u. c! R
// if (this.mines[i, right] == 9)//右侧是否为9
0 k$ Y U3 \6 a% V9 c! M" g$ V打造最好的电脑自学交流论坛 // { count += 1; }
1 R% x! J; X0 _+ t1 n // if (bottom < 10 && bottom > 0)//如果底边的范围是除过头节点和尾节点
4 p. a4 ~5 N: C我爱电脑技术论坛 // { 0 m/ e) ~5 \+ c; d/ p2 D' P9 b
// if (this.mines[bottom, j] == 9)//底部是否为9
! k1 S3 i/ m% E% ] // { count += 1; } www.520diannao.com1 N/ A1 X! ]4 L0 P( o5 G
// if (this.mines[bottom, right] == 9)//右下是否为9
7 B5 R2 H2 S) `$ T7 k' b Zwww.520diannao.com // { count += 1; } 我爱电脑技术论坛0 |( Z. O/ U* W6 q! [) w& `+ c
// }
0 z) X/ }% w. N0 z% w打造最好的电脑自学交流论坛 // if (top > 0 && top < 10)//上边除过头结点和尾节点
& d, m6 }/ u+ N7 s3 T% \www.520diannao.com // {
0 d$ W9 W5 d6 `6 r4 ` c/ R* s // if (this.mines[top, j] == 9)//头上那个点是否为9
- E$ x1 h/ j+ C4 j6 P2 }# n我爱电脑技术论坛 // { count += 1; } 我爱电脑技术论坛5 a$ i% ?3 o# u) [
// if (this.mines[top, right] == 9)//右上是否为9 " p0 J& j% J8 Y ^* m$ U& I
// { count += 1; }
3 z t0 c! S- q% y! y2 W5 X" K // } www.520diannao.com7 X1 m1 m- ]0 _8 x- o h3 b: i
// } ) ~: c+ A! e( H! ]) [: x; r. m
// if (j == this.mines.GetLength(0))
+ m2 V* Z+ c# l* m // {
. z6 v6 ?% K0 |2 B* S; r1 l$ e& Ewww.520diannao.com // if (i == 0) : ^' q, t/ Q% c, R8 |
// {
9 ?* J. Y4 c! X4 n5 iwww.520diannao.com // if (this.mines[i, j - 1] == 9) ( d5 Q; {- z7 X! Z, \
// { count += 1; } " \# z( h, Y/ Z
// if (this.mines[i - 1, j - 1] == 9) 打造最好的电脑自学交流论坛1 N# |& `6 H4 F; U
// { count += 1; } 6 k1 @' F8 ?4 M. q( r+ c
// if (this.mines[i - 1, j] == 9) www.520diannao.com1 _& w" I" Q5 ^7 R5 J( a
// { count += 1; } ' k& c7 f; i! s. |' E& O7 ^& p ]
//
( [( t6 @/ u; a2 h6 V* w! L // } 我爱电脑技术论坛% V3 |2 p, y D3 {7 B4 X5 ]
// if(i>0&&i
I: `+ v4 K, B* `5 n // { . T3 t/ e% Q- j& t
// if(this.mines[i+1,j-1]==9) + E! {, D) h: } E7 }# E
// {count+=1;} www.520diannao.com3 ]( C6 T( y; _
// if (this.mines[i + 1, j] == 9) www.520diannao.com: O: e7 y$ _8 O( N2 K: Z
// { count += 1; } ! L* l2 i: |# r- m2 L
// if (this.mines[i, j - 1] == 9)
- |# z% E7 ?$ O& t // { count += 1; } 我爱电脑技术论坛" j$ m! R( j# p7 x- O# b. S$ R
// if (this.mines[i - 1, j] == 9)
* G, K/ }( m! Lwww.520diannao.com // { count += 1; }
0 z4 T3 X. c8 r$ F. H; N! @" M. ^ // if (this.mines[i - 1, j - 1] == 9) ) X$ I$ Y: S& g+ F
// { count += 1; } - J1 Y% ^+ U+ K7 v: _
// }
8 J( z; C7 h+ |; @8 g' h // if (i == this.mines.GetLength(1))
- J3 t' B" O; R: j // {
: [7 |& t# k: @. _打造最好的电脑自学交流论坛 // if (this.mines[i - 1, j - 1]==9)
j& r0 w7 }( o* `我爱电脑技术论坛 // { count += 1; }
( y- x/ R j# i! W; Y! R我爱电脑技术论坛 // if (this.mines[i - 1, j] == 9)
5 ~) f4 y7 n; j8 n // { count += 1; }
9 `: n/ ?# l: y; F' s$ {# Kwww.520diannao.com // if (this.mines[i, j - 1] == 9)
1 W- V6 ^$ Z- a. A // { count += 1; } 打造最好的电脑自学交流论坛$ ^6 ^( ~$ }/ x/ ?6 v! X$ l
// } www.520diannao.com; M0 u, ?% O5 a# N, c8 S" D
// }
3 ]* V& K4 c9 j& ~: `7 ~打造最好的电脑自学交流论坛 // this.mines[i, j] = count; 我爱电脑技术论坛* h. |7 p9 [! H5 |! ]6 \ g
}
0 U @( Z% V- g( g. N } 我爱电脑技术论坛5 ^2 l+ m- D, Z9 R' d: K& N! v
}
8 M# T; G0 a7 W$ j# t' A& N我爱电脑技术论坛 } | 我爱电脑技术论坛3 y$ g$ g) z! ]4 k
| 6 h2 ?% w n) E# j* |: a
www.520diannao.com' C" K, m) A8 k3 Q2 e( D. W
打造最好的电脑自学交流论坛! |$ K2 r( e c u
以下是引用片段:
. S+ O9 q; S y! m3 b3 W+ J0 ^打造最好的电脑自学交流论坛 catch (Exception ex) 我爱电脑技术论坛7 G9 m9 A. m) g; J1 U+ r9 j
{ www.520diannao.com+ S1 V# w" k' `) }7 N- C& z; j! D
Console.WriteLine(ex.Message);
# r7 v- j0 h4 I$ N% W( u5 I } www.520diannao.com r$ N+ L' [: Y
} 打造最好的电脑自学交流论坛, u1 K* h& D: G# m
public void display()
( v1 n4 |' F7 x4 e1 K {
% c: }- |8 B {5 J( d for (int i = 0; i < this.mines.GetLength(0); i++) 打造最好的电脑自学交流论坛! ]- Y6 c7 V4 o& [: ~
{ 2 m9 M) w& B2 [1 {5 H& J3 O
for (int j = 0; j < this.mines.GetLength(1); j++)
4 M/ R* g& X9 [8 d& [4 [1 B; A, s我爱电脑技术论坛 {
/ S( @, K# O% l4 h3 ] K Console.Write(this.mines[i, j] + " ");
3 z6 q- n: t R$ u. rwww.520diannao.com }
+ j6 r; w* `: Bwww.520diannao.com Console.Write("n");
9 S, J1 U5 ?# e6 `- V/ | } www.520diannao.com% u/ k K- V' R( s+ `
}
" J* T+ u5 h2 ]" V/ L$ f public void SaveTxt() : q8 |: ]) x* h8 i8 W
{ # a5 b9 S$ G) j+ E5 ]: l$ B
StreamWriter sw = new StreamWriter(@"c:abc.txt"); 打造最好的电脑自学交流论坛* f0 T4 D$ ?9 u! I
for (int i = 0; i < this.mines.GetLength(0); i++) 我爱电脑技术论坛% x' ^, u9 L! K) _5 U
{ 打造最好的电脑自学交流论坛+ ~ p0 l5 T/ L( t3 Q
for (int j = 0; j < this.mines.GetLength(1); j++)
& g; W6 T& ~. M$ H打造最好的电脑自学交流论坛 { 我爱电脑技术论坛5 `" g8 r- f5 V
sw.Write(this.mines[i, j] + " ");
2 W, e0 P% q% D5 t# s4 A }
: Q _8 _! h, H/ G: f9 D8 n3 x sw.WriteLine(); $ c$ t, U) x' F# S P
} 我爱电脑技术论坛9 n8 T7 t6 \/ y/ `
sw.Flush();
* F( N/ e, ]& [! R8 F9 J# {, O sw.Close(); 打造最好的电脑自学交流论坛0 ^2 _: z8 k5 C
} www.520diannao.com: a$ h, `" o3 |1 R1 e
} 打造最好的电脑自学交流论坛5 k+ H' I8 k. E9 {% h" `* ?/ \
} |
|