Lập trình game cờ tướng bằng c#
19.718 lượt xem;
1 using System;
2 using System.Drawing;
3
4 namespace ChessItem
5 {
6 /// <summary>
7 /// ChessItemXiang µÄժҪ˵Ã÷¡£
8 /// </summary>
9 public class ChessItemXiang : ChessItemBase
10 {
11 public ChessItemXiang()
12 {
13 //
14 // TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ô캯ÊýÂß¼
15 //
16 }
17
18 public override int StepX
19 {
20 get
21 {
22 return 2;
23 }
24
25 }
26
27 public override int StepY
28 {
29 get
30 {
31 return 2;
32 }
33
34 }
35
36 public override bool LimitPoint(int ChessX, int ChessY)
37 {
38 if(this.type == IChess.Enums.ChessType.red && ChessY < 5) return false;
39 else if(this.type == IChess.Enums.ChessType.blue && ChessY > 5)return false;
40
41 bool flag = false;
42 if(ChessX-GridX==-2 && ChessY-GridY==-2) flag=HasChessItemOnPoint(GridX-1,GridY-1);
43 else if(ChessX-GridX==2 && ChessY-GridY==-2) flag=HasChessItemOnPoint(GridX+1,GridY-1);
44 else if(ChessX-GridX==-2 && ChessY-GridY==2) flag=HasChessItemOnPoint(GridX-1,GridY+1);
45 else if(ChessX-GridX==2 && ChessY-GridY==2) flag=HasChessItemOnPoint(GridX+1,GridY+1);
46 if(flag) return false;
47
48 return base.LimitPoint (ChessX, ChessY);
49 }
50
51 //Download source code tại Sharecode.vn
52 public override bool MoveItem(int ChessX, int ChessY)
53 {
54 if(!LimitPoint( ChessX ,ChessY)) return false;
55
56 if( (GetInt32(ChessY-GridY) == StepY)&&
57 ((GetInt32(ChessX-GridX) == StepX)))
58 {
59
60 this.Location = new Point(ChessX*50,ChessY*50);
61 GridX = ChessX;
62 GridY = ChessY;
63 return true;
64 }
65
66 return false;
67 }
68
69 }
70 }
2 using System.Drawing;
3
4 namespace ChessItem
5 {
6 /// <summary>
7 /// ChessItemXiang µÄժҪ˵Ã÷¡£
8 /// </summary>
9 public class ChessItemXiang : ChessItemBase
10 {
11 public ChessItemXiang()
12 {
13 //
14 // TODO: ÔÚ´Ë´¦Ìí¼Ó¹¹Ô캯ÊýÂß¼
15 //
16 }
17
18 public override int StepX
19 {
20 get
21 {
22 return 2;
23 }
24
25 }
26
27 public override int StepY
28 {
29 get
30 {
31 return 2;
32 }
33
34 }
35
36 public override bool LimitPoint(int ChessX, int ChessY)
37 {
38 if(this.type == IChess.Enums.ChessType.red && ChessY < 5) return false;
39 else if(this.type == IChess.Enums.ChessType.blue && ChessY > 5)return false;
40
41 bool flag = false;
42 if(ChessX-GridX==-2 && ChessY-GridY==-2) flag=HasChessItemOnPoint(GridX-1,GridY-1);
43 else if(ChessX-GridX==2 && ChessY-GridY==-2) flag=HasChessItemOnPoint(GridX+1,GridY-1);
44 else if(ChessX-GridX==-2 && ChessY-GridY==2) flag=HasChessItemOnPoint(GridX-1,GridY+1);
45 else if(ChessX-GridX==2 && ChessY-GridY==2) flag=HasChessItemOnPoint(GridX+1,GridY+1);
46 if(flag) return false;
47
48 return base.LimitPoint (ChessX, ChessY);
49 }
50
51 //Download source code tại Sharecode.vn
52 public override bool MoveItem(int ChessX, int ChessY)
53 {
54 if(!LimitPoint( ChessX ,ChessY)) return false;
55
56 if( (GetInt32(ChessY-GridY) == StepY)&&
57 ((GetInt32(ChessX-GridX) == StepX)))
58 {
59
60 this.Location = new Point(ChessX*50,ChessY*50);
61 GridX = ChessX;
62 GridY = ChessY;
63 return true;
64 }
65
66 return false;
67 }
68
69 }
70 }