游戲裡只會出現這三種動作狀態,所以我們可以進行封裝,這裡是通過類封裝的,當然我們也可以通 過別的相關技術來封裝,比如在本系列第二篇文章《C#編程利器之二:結構與枚舉(Structure and enumeration)》 裡介紹的結構與枚舉,本例中所出現的這三中不變的狀態完全可以使用結構或枚舉來封 裝,詳細請閱讀上篇文章。下面是定義爺爺(Grandpa)類和孫子(Grandson)類去實現接口(IPlayer) 了。代碼如下:
1/**//// <summary>
2/// 爺爺--玩家之一
3/// </summary>
4public class Grandpa:IPlayer
5{
6 public string GetName()
7 {
8 return "爺爺";
9 }
10
11 public string Show()
12 {
13 Random random = new Random();
14 int i = (int)(random.Next() * 1000) % 3;
15 switch (i)
16 {
17 case 0: return Options.JIANDAO;
18 case 1: return Options.SHITOU;
19 default: return Options.BU;
20 }
21 }
22}
1/**//// <summary>
2/// 孫子--玩家之一
3/// </summary>
4public class Grandson:IPlayer
5{
6 public string GetName()
7 {
8 return "孫子";
9 }
10
11 public string Show()
12 {
13 return Options.JIANDAO;
14 }
15}
如上,我們的GrandPa和GrandSon就實現了接口IPlayer,如下圖示: