首页 新闻 会员 周边

向4位同学每位发4张牌,如何用面向对象的思想解决?

0
悬赏园豆:15 [已关闭问题]

题目:向4位同学每位发4张牌,如何用面向对象的思想解决?

问题补充: 一副牌有52张牌,而每个人手中的牌都不能相同. 我刚开始的想法是:将牌视为一个类:有属性,花色,数字.(它们组合成一张牌)还有方法:发牌;又把学生封装成一个类... 这种想法是否正确呢?
apl的主页 apl | 初学一级 | 园豆:185
提问于:2009-09-22 07:14
< >
分享
其他回答(3)
0

谁出这么个题?呵呵。换个说法:从13个不同号码的球中,取出4个球?

或从52个球中取出4个球?

刚做过一个类似的算法,仅作为参考。非你所要

http://www.cnblogs.com/downmoon/archive/2009/09/17/1568800.html

邀月 | 园豆:25475 (高人七级) | 2009-09-22 08:35
0

思想?..

比如发牌这个动作是一个方法,发牌这个行动可以封装一个类,其中包括了发牌这个动作方法,可以设发几个牌的参数,几个人的参数

public class 发牌
{
private int _count;
private int _pepoCount;
public void 发牌动作(int 人数,int 牌数)

一个集合中的、4个随机数

public list<string[]> 得到发牌的结果()


}

这个算吧..这个发牌的例子本身可以侧重点,在不同的角度可以看作不同的现象,一个想象就是一类事务,就是一个对象,就可以得到相应的代码实现。这个还真没有确定的答案。
邢少 | 园豆:10926 (专家六级) | 2009-09-22 08:49
0

随机算了

wuhan | 园豆:11 (初学一级) | 2009-09-22 11:29
随机出来的牌也会有相同的牌。
支持(0) 反对(0) apl | 园豆:185 (初学一级) | 2009-09-22 12:17
0

初步需要四个类:GameMaster、Player、Card、CardFactory

GameMaster聚合Player的集合,有一个发牌的方法

Player聚合Card的集合

GameMaster适合做一个单键类

发牌方法如下(伪代码哈):

foreach Player  p  in Players

{

       for(int i=0; i++; i<p.CardNo)

      {

             Card c = CardFactory.GetCard();

             p.Cards.Add(c)

       }

}

Cheese | 园豆:509 (小虾三级) | 2009-09-22 16:10
不是很清楚,说明白一些好么?谢谢\\.
支持(0) 反对(0) apl | 园豆:185 (初学一级) | 2009-09-23 08:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册