win8 開發之旅 5 五子棋遊戲開發

2021-09-06 06:22:58 字數 1869 閱讀 3176

閒話少說,這節我們對 遊戲的實體類,先進行偽**分析,然後進行源**的分析。

我們先看這些類的整體的架構如下圖所示:

piece類  代表相應的棋子的類, 他應該有 位置這個屬性,而位置的最好的體現是通過縱座標橫座標來體現;相應形狀這個屬性代表是黑色使用者控制項還是白棋的使用者控制項。

型別屬性代表代表這是黑棋, 還是白棋;

索引屬性  插入相應的索引的位置。  相應源**如下:

private usercontrol _shape;

private position _position;

///

/// gets or sets the x.

///

/// the x.

public int x

set

}///

/// gets or sets the y.

///

/// the y.

public int y

set

}///

/// gets or sets the position.

///

/// the position.

public position position

set

}public piecetype type

public int index

///

/// initializes a new instance of the class.

// public piece()

///

/// gets the shape.

///

/// the shape.

public usercontrol shape

return _shape;}}

pieceboard(棋盤) 這個類 是用於對棋盤進行物件導向的處理後的類,   他有那些屬性和方法了

首先,考慮整塊遊戲只需要一塊棋盤,因此我們是不是用單例模式來產生這快棋盤。 說道單例模式的話,有乙個 相應類事例和產生單獨乙個物件的方法。

棋盤棋盤本身就是盛放棋子的容器,因此我們這裡需要乙個盛放棋子的陣列,為什麼是陣列啊? 因為棋盤是15*15方格仔。

相應的源**如下

public class pieceboard

public piece[,] pieces  

private pieceboard()

怎麼知道誰贏了,當然是有一套複雜判斷連五子的方法,顯然,我們需要一套複雜,的演算法。這節我們不說他,說一說儲存勝利結果的類。

winningresult 他有哪些屬性,誰取勝的乙個列舉的屬性,乙個那種棋子屬性,乙個棋子的泛型陣列。可能讀者就納悶了,前兩個屬性需要

還好理解,而乙個棋子的泛型陣列  是幹嘛的,首先他不是吃飯的。他是把每個勝利結果下的棋子儲存起來,以做以後判斷使用。

相應的源**如下:

public class winningresult

public piecetype ptype

public listpiecs;

public winningresult()

}這裡說他兩個列舉型別,源**就不用多貼了,piecetype棋子的型別分別 代表的   白色、黑色型別。  winningtype 勝利的型別,        有水平,垂直,斜起方向。

你會問我為什麼要列舉,簡而言之,就是避免魔鬼數字, 更好的見名之義。 增強源**的可讀性。      是1更好理解, 還是black更好的理解,你說了

我這節說的夠多了,就此休筆把!!!      欲知後事如何,且聽下回分解。

win8 開發之旅 5 五子棋遊戲開發

閒話少說,這節我們對 遊戲的實體類,先進行偽 分析,然後進行源 的分析。我們先看這些類的整體的架構如下圖所示 piece類 代表相應的棋子的類,他應該有 位置這個屬性,而位置的最好的體現是通過縱座標橫座標來體現 相應形狀這個屬性代表是黑色使用者控制項還是白棋的使用者控制項。型別屬性代表代表這是黑棋,...

win8 開發之旅 5 五子棋遊戲開發

閒話少說,這節我們對 遊戲的實體類,先進行偽 分析,然後進行源 的分析。我們先看這些類的整體的架構如下圖所示 piece類 代表相應的棋子的類,他應該有 位置這個屬性,而位置的最好的體現是通過縱座標橫座標來體現 相應形狀這個屬性代表是黑色使用者控制項還是白棋的使用者控制項。型別屬性代表代表這是黑棋,...

win8 開發之旅 6 五子棋遊戲開發

首先要搞清楚這個問題吧 為什麼需要 型別。這是為了更好的使用 模式。模式是什麼東東?他有什麼作用。建立了乙個 物件,來控制其他的類對相應這個物件的訪問。我們這裡舉個例子吧!最明顯的體現就是webservice技術 當程式設計師訪問網路上一台計算機的資源時,我們正在跨越網 絡障礙,跨越網路障礙有時候是...