我想写一个4人的纸牌游戏......我的课程是:
1-主
2卡
3-dealer(有一个card对象数组,array.length = 52)
4人(有一个卡片对象数组,array.length = 13 //每个玩家有13张牌)
我的问题是添加一个班级" deck"有一个13卡对象的数组或只是将这个13卡对象的数组添加到播放器类?
已编辑 - 是否需要任何课程来检查谁是获胜者以及游戏何时完成,或者我应该在主要课程中实现这部分代码?
答案 0 :(得分:1)
任何一种方法都可行。
如果采用第二种方法,你需要在 $(window).load(function() {
$("#listofAppsTable").DataTable({
dom : "<'row'<'col-md-3'l><'col-md-4'f><'col-md-3'><'col-md-2'B>>t<'row'<'col-md-6'i><'col-md-6'p>>",
lengthMenu : [ [ 10, 25, 50, -1 ],
[ 10, 25, 50, "All" ] ],
buttons : [ "copyFlash", "csvFlash" ]
});
中创建非私有方法,以便在课堂外用甲板做任何你想做的事情,比如从一个方法获得顶级卡片。甲板,或一个洗牌。
答案 1 :(得分:1)
我认为我宁愿使用authorized_keys
这个词而不是Hand
,特别是如果涉及经销商,那就是你的电话。重要的是坚持使用一个术语并遵循真实的域名术语(例如,如果你有游戏专家并且他们在说玩家的手,那么这应该反映在代码中)。
将隐式概念显式化是很好的,所以我肯定会有一个Deck
类。它将成为与玩家手牌相关的任何行为的自然之家,并且可用于强制执行不变量(例如,最初强制手牌总是由13张牌组成)。
请注意,也可以在Hand
方法中执行不变的强制执行。您可以使Dealer.deal
构造函数包受到保护,Hand
方法将成为deal
的工厂。
最后,我认为你错过了Hand
概念。 Game
方法只能进入main
类或类似的东西,并形成你的组合根。 GameBootstrap
课程将负责游戏状态和规则。