硅谷之路46:面向对象设计之21点扑克
时间:2022-08-24 06:15:01 | 来源:网站运营
时间:2022-08-24 06:15:01 来源:网站运营
查看完整视频:http://www.bittiger.io/classes面向对象设计的本质就是还原世界,我们看看21点的游戏世界是怎样的:有玩家(Player),有庄家(Dealer),有扑克牌(Card),有牌盒(CardBox),还有游戏大厅(GameRoom)。
先看牌的部分:首先是一张牌(Card),这张牌要要有花色,数值(还可以保存一个name方便打印)。注意观察我们可以发现,有的牌是正面朝上的(明牌),有的牌是正面朝下的(暗牌),所以我们还需要一个face变量来记录。
有了一张牌我们就可以有一副牌(Deck)了,里面有一个List存储54张Card。实际的游戏中往往不是一副牌,而是很多副牌,所以我们引入了牌盒(CardBox)。牌盒里可能有多副牌,并且可以加牌,洗牌,和最重要的出牌。
然后看人的部分:庄家和玩家有很多共通的部分,比如有名字、钱数、手牌等,都使用一些策略来做决定、算分、要牌、和亮牌。所以我们使用了一个基类Gamer,Player和Dealer都继承自Gamer。玩家和庄家有不同的策略,所以有不同的Strategy。玩家可以有下注等属性;庄家是游戏的控制者,管理牌盒,可以开始和结束游戏等。
最后就是一个最容易被忽略的可是很重要的游戏大厅,有一个Dealer和很多玩家,玩家可以加入和离开。
这样一个看似复杂的21点游戏就设计好了,你学会了吗?
本文整理作者:Mengying Tian,
查看完整视频:http://www.bittiger.io/classes更多内容,请访问:BitTiger.io, 扫描下面二维码,关注微信公众账号“论码农的自我修养”