这个程序实现的是一个单人纸牌游戏。由于这个游戏的规则比较简单,主要的逻辑都可以封装到各自的类中,纸牌的图案则是调用系统的cards.dll来绘制的。
下面就来简要地说明一下主要的类。
(1) Card 类:用来定义一张扑克牌.
(a) 主要属性:Suit (花色) 和 Rank (牌值大小)
(2) Poker 类:用来定义一副扑克牌
(a) Initialize 方法: 初始化一副扑克牌
(b) Wash 方法: 洗牌
(3) CardBox 类。继承PictureBox 类
(a) 主要属性:Card (表示当前是那张扑克牌)
(b) IsMovable 方法: 判断当前的纸牌是否可以被移动
(4) CardQueue, CardCollector 和 FreeCardContainer 类。他们都有2个主要的相同的方法
(a) IsCanAdd 方法:判断当前的纸牌是否可以被添加到容器中
(b) AddCard 方法 : 添加一个纸牌
在CardBox 的move事件中,会根据当前纸牌的位置来判断要把纸牌添加到CardQueue,CardCollector和FreeCardContainer中的某一种容器,然后调用该容器的AddCard方法添加纸牌。而在AddCard方法中,先调用IsCanAdd来判断是否符合规则,如果符合则添加,否则把纸牌放回原先的位置。
实现这个游戏还需要其他的处理,比如CardBox要实现鼠标拖动和调用cards.dll来绘制纸牌等等,在这里就不一一叙述了。