这个软件应用的主要目的是实现一个 blackjack 游戏。在 blackjack 游戏中,一个或多个玩家与庄家是对手。尽管可能有多个玩家,但每个玩家只与庄家是对手,而不与其他玩家成为对手。
对一个玩家来说,游戏的目标是从一副牌中取牌,知道所有牌的点数总和等于 21 或尽可能接近 21 点,但不能超过 21 点。如果所有牌的点数之和超过了 21,这个玩家就输了。如果前两张牌的点数之和刚好等于 21,就称这个玩家拿到了一个 blackjack。庄家要随玩家一起玩这个游戏。庄家必须发牌,为玩家提供另外的牌,显示一手牌中的全部或部分牌,计算一手牌中全部或部分牌的点数,计算一首牌中的牌数,确定赢家,并开始新的一局。
牌必须知道它的点数是多少,而且能报告这个点数。牌的花色并不重要(不过花色对于将来的另一个游戏可能会很重要)。所有牌都必须是一副牌中的成员。这副牌必须有发下一张牌的功能,还必须能够报告这副牌中还剩下多少张牌。
在游戏过程汇总,一个玩家可以请求向他发一张牌。这个玩家必须能够显示这手牌,计算这手牌的点数,并确定这手牌中有几张牌。当庄家询问玩家是再要一张牌还是开始新的游戏时,玩家必须作出响应。
每张牌都有自己的点数(点数不考虑花色)。A 计作 1 或 11.人头牌(J、Q、K)都计作 10。其余的牌直接按面值取其点数。
这个游戏的规则为,如果玩家的牌点数之和比庄家牌点数之和更接近 21,玩家获胜,按其所下的赌注赢得等量的钱。如果玩家拿到一个 blackjack,他将按赌注的 3:2 赢钱(假设庄家没有拿到 blackjack)。如果玩家的牌点数之和超过 21 点,他的赌注就会被没收。blackjack(一张 A 和一个人头牌或 10)比使用其他 21 组合都大。
如果玩家和庄家点数相同,而且至少是 17,这认为是平局,玩家可以保留赌注。