21点游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二十一点规则
玩法
玩家需将赌注置于下注圈中央。然后,庄家给每个玩家发两张牌,牌面朝上;给自己发两张牌,一张牌面朝上,一张牌面朝下。K、Q、J和10牌都算作10点。A牌既可算作1点也可算作11点,由玩家自己决定。其余所有2至9牌均按其原面值计算。
如果玩家拿到的前两张牌是一张A和一张10,就拥有黑杰克(Blackjack);此时,如果庄家没有黑杰克,玩家就能赢得 1.5倍的赌金(2赔3)。没有黑杰克的玩家可以继续拿牌,以使总点数尽可能接近但不超过21点;如果超过21点,玩家就会“爆破”并输掉赌金。
如果庄家的总点数等于或少于16点,则必须拿牌;如果庄家的总点数等于或多于17点,则必须停牌。
二十一点术语
拿牌(Hit)
再拿一张牌。
停牌(Stand)
不再拿牌
分牌(Split)
玩家再下一注与原赌注相等的赌金,并将前两张牌分为两副单独的牌。这两张牌的点数必须相同(即一对8、一对K和一对Q)。分成两副牌之后,一张A牌和一张10牌只能算作21点,不能算作黑杰克。
双倍下注(Double)
玩家在拿到前两张牌之后,可以再下一注与原赌注相等的赌金(如果觉得少可以加倍),然后只能再拿一张牌。如果拿到黑杰克,则不许双倍下注。
保险(Insurance)选做
如果庄家牌面朝上的牌是A,玩家可以买保险,也就是相当于原赌注一半的额外赌金。如果玩家确信庄家下一张是10点牌,则可以买保险。如果庄家确实有黑杰克,玩家将赢得2倍的保险赌金;如果庄家没有黑杰克,玩家将输掉保险赌金,游戏照常继续。黑杰克要大于其他总点数为21点的牌。
玩的时候使用三副扑克牌(即2-10的牌,J,Q,K,和A来自红心,方块,黑桃,和草花4套)。有两个玩家,一个是电脑用户,一个是电脑本身。这个游戏的目标是打败另一个玩家,尽可能地接近21分(without超过21),或者持有5张牌并且小于等于21分。每张牌有一个值:牌2-10对应数字2-10,J,Q,K对应数字10,A对应数字11。
游戏的玩法如下。首先,用户被告知的游戏,并邀请玩。如果用户选择玩,然后4张牌被处理。第一张给用户,第二张给电脑,第三张给用户,第四张给电脑。给电脑的牌仍旧反面朝上,剩下的正面显示。然后用户选择想翻的额外的牌(‘hit’“点击”)。选中的牌正面显示出来。额外的牌被拿走直到用户的分数超过21(用户’bust’“爆破”),或者用户选择不拿牌了(‘sit’/’stand’停止)。一旦用户停止拿牌,电脑便开始选牌。电脑将会一直选牌如果他的总
分小于16(并且用户的分数没有超过21)。
这个完成的实现将会包括3份文件,其中只有一个是你必须写的。这些文件是:AssigTwo2 012.java这个文件是驱动程序(包含main()方法)。这份文件的代码是已完成的并且是不能更改的。这份文件的代码是非常简单的——它声明和实例化一个Pontoon类里面的对象。D ecks.java这份文件包含你要用来开发你的这个游戏的实现的资源。这份文件的代码是已完成的并且是不能更改的。Pontoon.java这份文件是你要写的,内有一些纲要’skeleton’的代码——用这些代码来开始写你的程序。这个类里将是没有main()函数的,它将包含组织这个游戏的。这将含所有与用户的交互作用。你必须确保做到以下:
1、创建和使用Decks类里的object(s)。你将会失去分数如果你写在Po ntoon.java里的代码复制了Desks类里可以运行的使用方法。
2、使用trace()方法(skeleton里有提供)包含跟踪消息在你的程序里。
3、使用s eparate methods分离方法来实现在游戏中单独的任务。
4、使用实例变量来存储数据,这个被使用货被改变超过一个方法。
5、使用local variables来存储只被一个方法使用的数据。Details——Stage1在Pontoon.java里写代码做到下列:一、“House keeping”tasks总的测试关掉Decks对象和Pontoon类的debugging message s调试信息二、说明提供给用户这个游戏的总的描述三、玩游戏——用户被提示hit/stand直到这个游戏won/lost/drawn或者用户stand停止(一)这个游戏将会结束当下列任何一种情况发生(in order按顺序) 1.电脑busts(用户赢)
2.用户busts(用户输)
3.用户有5张牌(或更多)其值和为21或更少(用户赢)
4.电脑有5张牌(或更多)其值和为21或更少(电脑赢)
5.都bust,或者电脑和用户有一个相同的值(draw)
6.用户的分数是21或更少但是高于电脑的(用户赢)
7.电脑的分数是21或更少但是高于用户的(电脑赢)(二)在每个游戏开始前,用户被提供下列信息: 1.他们的牌
2.电脑的第二张牌(三)用户被问他们在这局想要做什么。意见是:
1.点击和选择另一张牌这张新牌翻出来同时显示它的值
2.停止并且让电脑选牌(四)一旦轮到电脑这个游戏的结果将会被显示出来
Stage2——一、游戏开始前询问用户是否要玩,如果不要,则没有游戏可玩。二、没个游戏结束后用户将会被问是否还要玩。三、当用户不想玩了,则最终信息显示1.这个游戏被玩了几次。2.用户赢了几次。3.用户输了几次。4、用户平了几次
public class AssigTwo2012
{
public static void main(String[]args)
{
Pontoon game;
game=new Pontoon();
game.play();
}
}
图片是需要补充的Pontoon类
还有个Desk类没给出