21点游戏

21点游戏
21点游戏

二十一点规则

玩法

玩家需将赌注置于下注圈中央。然后,庄家给每个玩家发两张牌,牌面朝上;给自己发两张牌,一张牌面朝上,一张牌面朝下。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类没给出

21点游戏

21点游戏package 二十一点游戏; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.V ector; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; public class CardFrame extends JFrame implements ActionListener{ /** * @author 21点游戏 */ private static final long serialV ersionUID = 1L; JMenuBar menuBar; //定义菜单栏 JMenu fileMenu; //定义文件菜单 JMenu helpMenu; JMenuItem exitItem; //定义退出菜单项 JMenuItem aboutItem; //显示牌区 JLabel label1=new JLabel(); JLabel label2=new JLabel(); JLabel label3=new JLabel(); JLabel label4=new JLabel(); JLabel label5=new JLabel(); JLabel label6=new JLabel(); JLabel label7=new JLabel(); JLabel player=new JLabel(); JLabel computer=new JLabel(); //用于放置52张纸牌图片的标签框 JLabel game[]=new JLabel[52]; //定于纸牌管理对象 CardManager18 cm18=new CardManager18(); //记录抓牌数

BlackJack-21点算牌教学(1-19课)

21点算牌教学-第1课 (基本策略) 2010-05-01 21:14:46| 分类: 21点算牌教学 |字号订阅 第一课.基本策略 21点(或BJ)取胜的基础就是在每一手牌都利用"正确"的基本策略.正确的意思就是你在每一手牌精準地做出加牌(Hit)、停牌(Stand)、赌倍(Double)、分牌(Split)、投降(Surrender)的决定。它们都来自基本策略而非凭藉直觉、感受或猜测。甚至当你在11对庄10面赌倍5次均失败后,第六次出现同样情况,你还是要选择赌倍。动作一致性是取得胜利的重要组成,所以现在就下决心成為一个正确的玩家,根本不用理会庄家的白眼和同桌赌客的嘆息。除了赚钱之外没有其他的原因可以使你打21点了。运用正确的基本策略可以给你带来金钱,其他人怎样想并不重要。 正确的基本策略是根据你所选定赌场的21点赌规所產生的。例如在雷诺(Reno)的一副牌的21点策略就与大西洋城(Atlantic City)的八副牌策略就有很大的不同。我将向你展示如何学习你所选择和依据的正确基本策略。如果你想得到一份基本策略,请登录"基本策略產生器"网页(https://www.360docs.net/doc/6a5157392.html,/bjbse.php),只需使用简单的选项,你的基本策略就完成了,把它列印出来。 这是最普遍的赌规,6副牌,任意2张牌可赌倍(DA2),分牌后可以赌倍(DAS),庄软17(A-6)不加牌(S17),不可投降(No Surrender)。 这张表格你必须背得滚瓜烂熟,不过不用担心,你现在还不用记住它,我们将把它变成普通人能够理解的东西,我们把这个表格称做"基本策略表",你将会在一些练习中用到它。為了便於记忆我将以上的所有规则简化,请看下列例子。 基本测略表(6-Deck,DA2,DAS,S17,No Sur) 5-8 永远加牌 9 3-6赌倍,其他加 10 2-9赌倍,其他加 11 2-10赌倍,其他加 12 4-6停牌,其他加 13-16 2-6停牌,其他加 17以上永远停牌 A,2 5,6赌倍,其他加 A,3 5,6赌倍,其他加 A,4 4-6赌倍,其他加 A,5 4-6赌倍,其他加 A,6 3-6赌倍,其他加 A,7 3-6赌倍,2,7,8停牌,9-A加牌

21点高质量c语言程序

设计题目:21点游戏 二十一点游戏是一款操作简单,老少皆宜,并且带有很强娱乐性的游戏。二十一点游戏也是我们学习C语言过程中用来锻炼我们编程能力的一种简单有效的方式。编写二十一点游戏的目的就是在编写过程中学习和掌握各种编程的能力,二十一点游戏中有我们经常接触到的一些头文件,和小的函数体,以及一些相关知识,能让我们在实践中得到锻炼。 一、设计目的与要求 1、程序设计的源程序功能如下: (1)将所有的函数与相应的数据封装到类中,并改写主程序,使程序简化。 (2)程序中一共有13张扑克牌可以随机抽取,大于10的点数为10,现要求大于10的点数全部为半点。 (3)要求庄家永远不会暴庄,即庄家可以查看下一张牌,若大于21点,则拒绝,当然,在游戏规则上不能泄露这点秘密。 (4)高级玩家可以查看下一张牌,即按h键,然后按要求输入密码,密码正确可以看牌,并决定是否要牌。 (5)每次要牌后可以设定赔率,即如果开始下的是10元钱的注,如果牌好,你可以要求再下注,当然不能超过你所有的总钱数。 (6)将界面的提示说明改成中文界面,界面的解释详细友好,可以吸引更多的玩家。

二、课程设计 (1)题目要求把源程序封装在类中,需要编写一个类来封装所有相关函数和变量,同时对main主函数进行改写,以完成题目的要求。 (2)题目要求把抽到的大于10点的牌的点数设为半点,只需要设计随机取下一张牌的成员函数时用if语句判定牌的点数是否大于10,大于10的牌对其重新赋值为即可。 (3)题目要求超级玩家在输入密码后可以查看下一张牌,只需设计一成员函数,判定玩家是否继续要牌之前加入对玩家是否输入h键的判定,如果有输入,则调用为处理玩家输入密码而单独编写的成员函数,在该函数中,首先判定玩家的密码输入是否正确,不正确则返回0,正确则返回1。 (4)题目要求玩家可以根据手上的牌决定是否下注,只需设计一成员函数,检查玩家的赌注累计不超过他所拥有的总资本。 三、设计描述 1、为满足上述第一条要求,在程序中增加了一个类play,封装到类中的函数有: void replay(); 四、调试分析 1、游戏开始

21点游戏课程设计

/*玩家最多可以要5张牌,但是如果牌的点数之和超过21,则自动出局,在不超过21点的情况下,玩与庄家比牌的点数大小,大者为赢家。*/ #include #include #include using name space std; class C Card { priv ate: int na Pip[5]; //定义一个数组,一共是5张牌。 int nNu mbe r; //发了多少张牌。 int nDol lar; //有多少钱 int nGa mble; //赌注 int nW in; //赢局数 int n Lose; //输局数 int nDraw; //输局数 public: C Card(); //构造函数 v oid FirstPla yTwo();//最初两张牌 int Ge tNumbe r();//返回牌张数

int Ge tPip(); //返回点数 v oid Displa yPip();//一次全部显示牌面点数。 v oid Displa yPip(int ); //除了第一张牌,一次全部显示牌面点数(针对计算机牌的显示) v oid TurnPla y();//出了一张牌 v oid Win();//赢了计算赌注 v oid Lose();//输了 v oid Draw();//平局 int se tGamb le(int );//设置赌注,赌本不够返回1 int ge tM one y();//返回钱数 v oid Displa yInfo();//打印必要的信息 int Ge tCurre ntCard();//返回当前牌点。 }; CCard::C Card() { nNu mbe r=0;//开始没有发牌 nDollar=100;//初始赌本为0 for(int i=0;i<5;i++) na Pip[i]=0; //五张牌全部为0 nGa mble=0;

JAVA编程~~21点游戏源代码

学号11730202 天津城建大学 Java 语言程序设计C 实验报告 实验1:21点游戏 学生姓名杨弘毅 班级卓越七班

实验一21点游戏 一、实验目的 1.掌握使用Java语言进行结构化程序设计; 2.熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 3.熟悉Eclipse开发环境,编写简单的Application程序,并编译和执行。 二、实验要求 1.调试程序、编译,运行后得到正确的结果; 2.写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 三、实验环境 1.计算机一台; 2.JDK、MyEclipse工具软件。 四、实验内容 编写并运行21点游戏。 具有菜单形式的界面 掌握Random类基本用法 设计胜负判定算法 五、实验步骤 1.了解21点游戏的基本规则 2.用0到53代表52张扑克牌 3.完成洗牌发牌模块 4.设计胜负判定算法 源程序: package a; importjava.util.Scanner; importjava.util.Arrays; public class Play21 { int[] cards,computer,human;//定义一副54张牌,电脑5张,玩家5张 Scanner sr=new Scanner(System.in); public Play21(){//构造方法

cards=new int[54];//定义54个大小的数组表示扑克牌 Arrays.fill(cards,0);//54张牌全赋值零,一旦某一张牌被用了就赋1 computer=new int[5];//电脑5张牌 Arrays.fill(computer,0); human=new int[5];//人5张牌 Arrays.fill(human,0); } public void clear(){//使数组内所有数据赋值0没有用过,用过的赋值1 Arrays.fill(cards,0); Arrays.fill(computer,0); Arrays.fill(human,0); } public void start(){//开始游戏 System.out.println("-------------------------------------"); System.out.println("开始游戏!"); int n=1; for(inti=0;i<1;i++){//电脑和玩家先各抽1张 computer[i]=nextOne(); human[i]=nextOne(); } while(n<5){//牌数小于5时询问是否再要牌 show(human,n,1);//显示现在玩家的牌面

C#课程设计游戏21点

目录 一、课程设计的目的与要求 (2) 1.1 目的: (2) 1.2 要求: (2) 二、题目说明 (2) 2.1程序开发背景 (2) 2.2开发工具介绍 (2) 三、总体设计 (3) 四、详细说明 (3) 4.1 系统实施 (3) 五、遇到的问题和解决方法 (9) 六、课程设计总结 (9) 七、参考文献 (10)

一、课程设计的目的与要求 1.1 目的: (1)能够利用所学的基本知识和技能,解释和应用程序开发所涉及的相关知识。 (2)基本掌握面向对象程序开发的基本思路和方法; (3)要求学生达到熟练掌握.NET基本结构以及C#语言的基本知识和技能; (4)通过学习积累掌握简单的记事本,通讯录以及多媒体播放的开发技术。 1.2 要求: (1)掌握常用控件以及控件的常用属性的使用方法。 (2)掌握C#语言的异常处理技术,能够使用.NET各种调试方法调试代码,掌握帮助的使用方法。(3)熟悉.NET开发环境,能够使用C#语言在.NET平台上独立设计、开发WINDOWS应用程序。 (4)程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。 (5)程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。 二、题目说明 2.1程序开发背景 黑杰克又名BlackJack(简称21点),起源于法国,现已流传到世界各地。该游戏由2 到 6 个人玩,使用除大小王之外的52 张牌,游戏者的目标是使手中的牌的点数之和不超过21 点且尽量大。有着悠久的历史。黑杰克简称为21点,1700年左右法国赌场就有这种21点的纸牌游戏。1931年,当美国内华达州宣布赌博为合法活动时,21点游戏第一次公开出现在内华达州的赌场俱乐部,15年内,它取代掷骰子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。 21点本为赌博游戏,并不值得推荐,但其游戏性和娱乐性却很强,而且作为一款数字牌类游 能一定程度上锻炼逻辑思维和运算能力,本着这种想法,开发者想把这款传统的赌博游戏制作成适合各类人群休闲娱乐的小游戏,同时通过实践更加掌握c#平台的开发过程 2.2开发工具介绍 本程序是在Microsoft Visual studio C# 2005 Express的开发环境下完成的。

21点算牌方法,10大算牌法分析

21点算牌方法,十大算牌法分析 首先,21点能不能算牌呢? 先讨论21点能算牌,先提出一个提假设:假设52张牌出现的概率始终相同,也就就是说每张牌都就是从一个无穷多副牌组成的牌盒里抽出来的,或者说前面出过的牌不影响后面的牌,换句话说,每张牌相互之间都就是独立的。 显然,不可能有这样的由无穷多副牌组成的牌盒,前面出过的牌总会影响后面的牌。在算牌法刚出现的时代,娱乐场仍然使用一副牌来玩二十一点,那么这个影响就更明显。比如,发牌员发出牌来,您拿到两个10(包括J、Q、K),庄家亮牌也就是10,翻出底牌来还就是10,那么下一轮里10出现的概率已不再就是4/13,而就是12/48,即1/4,略低于4/13。同样的,其她点数出现的概率也已不再就是1/13,而就是1/12。 在二十一点游戏里,前一把出现了什么牌,会影响到下一把。因此,如果我们能记住前面出过什么牌,就能大致预测以后的牌局走势,从而调整自己的下注额,在对自己有利时下大注,在对庄家有利时下小注或不下注,就能在这个游戏里占到优势。 其次,21点算牌前先确定自己就是什么类型的玩家 玩21点的玩家,基本可以分为3类:一,职业玩家,熟练掌理论与策略,坚持正收益率原则,不玩赢不了的牌;二,普通赌客,既不懂理论也不知道策略,但自制力比较强,知道自己本金没有无限大,知道适可而止的人;三,不顾退路,这种人既不懂博理论也不知道策略,但自认为就是个中高手,赌场时信心十足,出时满脸困惑,有钱时,对赢充满信心,输了,对谁也不会说。 第三,21点算牌法大全 方法1,瞧不到的底牌,则全认为就是10点。 基本上对21点来说,底牌都认为就是10点。为什么这么说呢?这个10点中包括了10、J、Q、K共16张牌,这个在全部牌中占30%。也就就是说3张牌中就能抽到一张10点。这样底牌就是10的可能性要比其它牌的可能性大很多。所以说,把底牌认为就是10点,从长远来讲赢得可能性比较大。 方法2:抓住12比16更有利的技巧 庄家会一直抽到17点以上为止,最后为16的点数就是不可能的。对于庄家来说一定就是17点以上或者超过21点。 因为这样,闲家手中的牌如果就是16点以下的话,就没有了任何区别。而且,12点比16点更强的理由就是在16点的时候,再抽牌时容易超过21点。

实验一 21点纸牌游戏

冰之龙设计 实验一21点纸牌游戏 专业:软件工程班级:09软工学号:1200911041XX 姓名:XXX 实验日期:2010-09-30 实验地点:B102 指导老师:吴景岚 一.实验原理 “21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的牌达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或者11分(由玩家自己选择一种分值),J.Q和K人头牌都是10分。 二.实验目的 庄家对付1到7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐蔽的。接下来,只有愿意,各个玩家都有机会依次再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌,如果庄家引爆了,那么还没有引爆的所有玩家都将获胜。引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家与庄家打成平局。 三.实验方法 1.首先定义表示扑克牌花色与面值的枚举类型,这样程序可读性更

强 2.其次,方法Game()用来运行游戏,下面为用伪代码描述的整个游戏的流程: 洗牌 给庄家和玩家发最初的二张牌 隐藏庄家的第一张牌 显示庄家和玩家手中的牌 依次向玩家发额外的牌 显示庄家的第一张牌 给庄家发额外的牌 if(庄家引爆) 没有引爆的玩家人赢 引爆的玩家平局 else for(每个玩家) if(玩家没有引爆且玩家的总分比庄家大) 宣布玩家赢 else if(玩家的总分与庄家相等) 宣布平局 else 宣布玩家赢 四.实验步骤 (1)建立工程game_of_21_point (2)将软件包中的utlity.h复制到game_of_21_point文件夹中,并将utility.h加入到工程中。 (3)建立头文件card.h,声明相关用户自定义类型,结构体Card 的运算符 << 进行重载,具体内容如下: //文件路径名:game_of_21_point\card.h #ifndef__CARD_H__ #define__CARD_H__ Typedef enum { //扑克牌面值:ACE(A),TWO(2)到TEN(10),JACK(J),QUEEN(Q),KING(K) ACK=1,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE,TEN,JACK,QUEEN,KING } RankType; Typedef enum { //扑克牌花色:(梅花),DIAMONDS(方块),HEARTS(红桃)和SPADES(黑桃)

21点游戏

二十一点规则 玩法 玩家需将赌注置于下注圈中央。然后,庄家给每个玩家发两张牌,牌面朝上;给自己发两张牌,一张牌面朝上,一张牌面朝下。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’停止)。一旦用户停止拿牌,电脑便开始选牌。电脑将会一直选牌如果他的总

21点规则(21 Points)

21点 游戏起源、简介: 21点游戏为一款极具趣味性的牌类游戏,最早出现在十六世纪,起源于法国,法语称:Vingt-et-un(20和1)。因此在广为流传后该游戏就叫“21”。后传入英国并广泛流传,如果玩家黑心“A”和黑心“J”就会给予额外奖励,英文名叫黑杰克(BlackJack)【一张"A"(此时作11点)和一张价值为10点的纸牌即为黑杰克(BlackJack)】。在游戏中,每个玩家都争取拿到最接近21点的牌,但是不能超过21点,超过为“爆牌”即失败,只有最近接21点(或者21点)的人才有可能得到胜利。 游戏描述: 在游戏中,拥有最高点数的玩家获胜,其点数必须低于或者等于21点;超过21点的玩家称为爆牌(Bust)。2至10点的牌以牌面的点数计算,“J、Q、K”每张记作10点。“A”可记为1点或者11点,若玩家会因“A”而"爆牌",则“A”可算为1点。当一手牌中A算为11点时,这手牌便称为”软牌”(SoftHand),因为除非玩家再拿另一张牌,否则软牌不会出现爆牌。每位玩家的目的是要取得最接近21点来击败庄家,但同时又要避免"爆牌"。要注意的是,若玩家"爆牌"在先即为输,就算随后庄家也“爆牌”也是如此。若玩家与庄家拥有相同点数,这样的状态叫做”平局”(Push),玩家与庄家皆不算输赢。每位玩家与庄家之间的游戏都是独立的,因此在同一局内,庄家有可能会输给某些玩家,但同时也可能会击败另一些玩家。 详细游戏规则: 1、游戏人数: 普通场:1-5人; 竞技场:5人; 当所有玩家准备后,游戏开始。 2、点数计算: “A”可以记作1点或者11点,2-10以牌面值的记作点数,“J、Q、K”记作10点; 3、使用纸牌数 4或8副扑克牌,除去大小王; 4、下注 玩家在游戏开始发牌前下注(此时可以购买对子),游戏可以设置最大下注数与最小下注数; 若玩家在规定时间内没有下注,系统会自动为玩家下注,下注数为当前最小下 注数(必须先下注才能购买对子) 5、发牌 由荷官(荷官的选取方式可以自由)做庄负责发牌,其余玩家为闲家。闲家要向庄家投一定的注码,庄家会以顺时针方向给各个闲家和自己派发一张明牌;庄家再一次顺时 针方向给各个闲家派发一张明牌,和自己一张暗牌,此时庄家停止发牌。(当庄 家的第一张明牌为“A”时,庄家询问各个闲家是否买保险;当庄家第一张牌是 除“A"的其他牌时,庄家询问各个闲家是否投降);直到所有闲家都进行完所有 操作后(保险、投降、要牌、停牌、加倍、分牌等操作),庄家打开暗牌【如果 两张牌点数不够17点,则庄家一般会选择要牌,直到其大于或等于17点为止。】

21点算牌方法,10大算牌法分析

21点算牌方法,十大算牌法分析 首先,21点能不能算牌呢? 先讨论21点能算牌,先提出一个提假设:假设52张牌出现的概率始终相同,也就是说每张牌都是从一个无穷多副牌组成的牌盒里抽出来的,或者说前面出过的牌不影响后面的牌,换句话说,每张牌相互之间都是独立的。 显然,不可能有这样的由无穷多副牌组成的牌盒,前面出过的牌总会影响后面的牌。在算牌法刚出现的时代,娱乐场仍然使用一副牌来玩二十一点,那么这个影响就更明显。比如,发牌员发出牌来,你拿到两个10(包括J、Q、K),庄家亮牌也是10,翻出底牌来还是10,那么下一轮里10出现的概率已不再是4/13,而是12/48,即1/4,略低于4/13。同样的,其他点数出现的概率也已不再是1/13,而是1/12。 在二十一点游戏里,前一把出现了什么牌,会影响到下一把。因此,如果我们能记住前面出过什么牌,就能大致预测以后的牌局走势,从而调整自己的下注额,在对自己有利时下大注,在对庄家有利时下小注或不下注,就能在这个游戏里占到优势。 其次,21点算牌前先确定自己是什么类型的玩家 玩21点的玩家,基本可以分为3类:一,职业玩家,熟练掌理论和策略,坚持正收益率原则,不玩赢不了的牌;二,普通赌客,既不懂理论也不知道策略,但自制力比较强,知道自己本金没有无限大,知道适可而止的人;三,不顾退路,这种人既不懂博理论也不知道策略,但自认为是个中高手,赌场时信心十足,出时满脸困惑,有钱时,对赢充满信心,输了,对谁也不会说。 第三,21点算牌法大全 方法1,看不到的底牌,则全认为是10点。 基本上对21点来说,底牌都认为是10点。为什么这么说呢?这个10点中包括了10、J、Q、K共16张牌,这个在全部牌中占30%。也就是说3张牌中就能抽到一张10点。这样底牌是10的可能性要比其它牌的可能性大很多。所以说,把底牌认为是10点,从长远来讲赢得可能性比较大。 方法2:抓住12比16更有利的技巧 庄家会一直抽到17点以上为止,最后为16的点数是不可能的。对于庄家来说一定是17点以上或者超过21点。 因为这样,闲家手中的牌如果是16点以下的话,就没有了任何区别。而且,12点比16点更强的理由是在16点的时候,再抽牌时容易超过21点。

21点术语词典及名词解释

21点术语词典及名词解释 一、基本部分 庄家(Banker):本轮坐庄的玩家,也可以是固定的庄家。 玩家、闲家(Player):本轮不坐庄的玩家。 暗牌:只有自己能看见的牌,其他游戏者显示牌的背面。 明牌:所有游戏者都能看见的牌。 黑杰克(BlackJack):一手牌内两张牌的点数相加合共达21点(如A牌和一张花牌或10点牌),计牌的时候黑杰克要大于普通的21点,黑杰克的赔率是2赔3。庄家或者玩家如果拿到黑杰克就必须停牌。 要牌(HIT):再拿一张牌。玩家只要手上牌相加点数不超过21点都可要牌;但庄家要牌则有限定,即手上牌相加点数在16点或以下,必需要牌。 停牌(STAND):不再要牌。庄家手上牌相加点数在17点或以上,就必须停牌。玩家在以下几种情况,必须停牌:1、爆牌;2、黑杰克;3、21点(含软21点);4、其它约定的停牌。除这些情况外,玩家可随时选择停牌。 爆牌(Bust):一手牌的总点数大于21点即为爆牌。如果是玩家爆牌,则输掉其赌注;如果是庄家爆牌,则赔注给所有未爆牌的玩家。 分牌(SPLIT):当玩家手上只有两张牌,且这两张牌点数相同时,玩家可以选择分牌,即玩家再下一注与原注相等的注金,并将前两张牌分为两副单独的牌。但如果前两张牌是AA,则分牌后只能各要一张牌;如果分牌后要到的是黑杰克,也只能作普通21点计算。 双倍下注(DOUBLE):玩家在拿到前两张牌之后,可以再下一注与原注相等的注金,然后只能再拿一张牌。如果拿到黑杰克,则不许双倍下注。 保险(INSURANCE):如果庄家牌面朝上的牌是A,则玩家可以选择买保险,也就是相当于原注一半的额外注金。如果庄家确实有黑杰克,玩家将赢得3倍注金;如果庄家没有黑杰克,玩家将输掉注金,游戏照常继续。 二、变化部分 先收(Even Money):如果玩家拿了黑杰克,且庄家明牌是A,则玩家可以选择先收。即玩家获得1 赔1的平赔,而不论庄家是否最终拿到黑杰克。 对子(Pair):玩家可以下注对子,即玩家首两张牌如果是一对的话,将按照1赔11获赔。 投降(Surrender):如玩家手上只拥有两张牌,便有权选择投降,取回一半的注金(庄家翻开的牌是A 时不适用)。也有特殊规则指可以在任一张牌的时候投降。 双A分牌:对于AA这种特别的分牌情况,也有以下2种特殊规则:1、AA分牌后可以继续要牌;2、AA分牌后如果又拿到A,则可以继续分牌。 再次分牌:分牌后,若第三张仍与前两张相同,可继续分牌,第四张相同牌则不可分,只能作为前一张的第二张牌。 有限加倍:对于双倍下注可以做更多限制,常有以下几种情况:1、只允许10点或11点的时候加倍; 2、可以在任一张牌的时候加倍; 3、分牌后不允许加倍。 庄家在软17点拿牌:庄家在包含一张或多张A、可以计数为7点或17点的牌继续拿牌。 同花顺:即玩家的牌面是同花的6、7、8便可即收3倍的注金。 五龙:如果玩家手中有5张牌而又没有爆牌,这副牌叫做五龙,即收2倍注金。 资料参考https://www.360docs.net/doc/6a5157392.html,/

21点技巧策略

如何玩好21点?玩在线21点,要是你会运用21点分牌策略,掌握了一些21点的算牌技巧,那么你就可以玩21点赚钱,这是没问题的,下面小编为大家介绍21点分牌策略之21点算牌技巧。 分牌后能否赌倍是考虑要不要分牌的基本要素,分牌後能不能赌倍,根据不同规则你必须要使用适当的基本策略表,我看到很多玩家在分牌时有很多错误,最常见的就是8、8,基本的知识是一对8对庄家所有的牌都要分牌。 但是很多人当他们面对庄10面就会停牌,这种错误的代价是很高的,简单的来看88这一手牌并不常见,但如果停牌,玩家的期望值是-53.7%。 如果分牌(分牌後可以赌倍)玩家的期望值是-48.3%。虽然分牌增加资金跟风险,但是长期来看会有比较好的收益。 换另外一个方式思考,你宁愿16对庄10停牌还是8对10时加牌?分牌後你对8加牌显然比较有利,值的一提的是,虽然分牌後能不能赌倍是很大的不同,但是88对10分牌是一致的打法。 当真数上升时,你有更多机会分牌,反之则减。当真数够高时,你甚至值得将一对10对庄家6分牌。就算分牌後不能赌倍88对10

还是分牌比较有利。 因为他们会注意到我基本策略打的很好但是忽然下大注时10对6分牌,他们会想说我要不是很愚蠢,就是非常聪明。但是你的动作肯定会引起同桌赌客的不满。 我并不在乎同桌人的想法,但是我会注意赌场经理的看法,他们可能会认为我是个算牌客。我的建议是根据你在赌场的形象而定,当你是个豪赌客时,你可以这样做,但是如果你不抽烟不喝酒又不多话,像是个文静的人,这样做只会引起赌场的注意。 所有的分牌情状都列在底下,特别是44对5、6分牌(分牌後可以赌倍),很多人对策略都并不熟悉,所以他们面对这个问题不知道要如何打,很多人认为分牌是错误的。当你做出正确的决定而被当成笨蛋的话,不要担心没什么要紧的。 以上是21点算牌技巧,理论上很简单,但是要想赢,就需要在实战中不断去磨练,不断去总结经验,当你拥有了策略,技巧,经验,成为赢家再也不是难事。

纸牌游戏21点 数学建模

纸牌游戏21点(Blackjack).构造并实施21点游戏的蒙特卡洛模拟21点游戏规则如下: 大多数赌场使用6副牌或8副牌玩这种游戏,以防止“数牌点”,在你的 模拟中使用两副牌(共104张)。只有2位参与者,你和庄家。游戏开始时每人 得到两张牌,对于牌面为2~10的牌,点数和面数相同;对于为人脸(J、Q、K) 的牌,点数为10;牌面为A的牌,点数为1或者11.游戏的目的是得到总数尽 量接近21点的牌,不得超过(超过称“爆了”),并使你得到的总点数多于庄家。 如果开始两张牌的总点数恰为21(A-10或A-人脸),称为21点,自动成为 胜者(若你和庄家都得到21点,则为平局,你的赌注仍在台上)。靠21点赢时,付给你3赔2,即1.5赔1(1元赌注赢1.5元,且1元赌注仍保留)。 如果你和庄家都未得到21点,你想要多少张牌就可以取多少张牌,一次一张,使总数尽量接近21点,如果你超过了21点,就输了,游戏结束。一旦你 对牌的点数满意,你就“打住”,然后庄家按照下列规则取牌: 当庄家牌的点数为17、18、19、20和21时,就打住。若庄家牌的点数小 于或等于16,必然取牌。庄家总把A的点数记为11,除非这样使他或她爆了(这时A的点数记为1)。例如,庄家的A-6组合是17点,不是7点(庄家没有 选择权),且庄家必须打住在17点上。而若庄家有A-4组合(15点),又拿了一 张K,那么新的总点数是15,因为A回到点数1(使之不超过21点),庄家还要 再取牌。 如果庄家超过21点,你就赢了(赢赌注的钱,每1元赌注赢1元)。如果庄家的总点数超过你,你将输掉全部赌注。如果庄家和你的总点数相同,为平局(你不输也不赢)。 赌场中这个游戏的刺激之处在于,庄家开始的两张牌一张明、一张暗,所 以你不知道庄家牌地总点数,必须根据那张明牌赌一把。在这个项目模拟中你 不用考虑这种情况,你需要做的是:用两幅牌做12次游戏,你可以有无限的赌资(不希望吗?),每次下赌2元。两副牌玩过一次后,用两幅新牌(104张)继

21点规则与技巧

21点规则与技巧 经常玩纸牌的小伙伴们应该听过一种扑克牌玩法:21点,没有听过的小伙伴们也没有关系,今天我就给大家介绍一下21点的规则,21点是有概率可遵循的,我今天教给大家21点的玩法还有技巧,一起学习一下吧。 21点游戏是现在很多玩家为之着迷的一种游戏。与一般的游戏不同,21点是有概率学可遵循的,不过心算速度得非常神速,而且记忆力必须非常超群。21点是非常考察脑力的游戏。拥有最高点数的玩家获胜,其点数必须等于或低于21点;超过21点的玩家称为爆牌。2点至10点的牌以牌面的点数计算,J、Q、K 每张为10点。A可记为1点或为11点,若玩家会因A而爆牌则A可算为1 点。当一手牌中的A算为11点时,这手牌便称为“软牌”(soft hand),因为除非玩者再拿另一张牌,否则不会出现爆牌。 21点规则 21点一般用到1-8副牌。庄家给每个玩家发两张牌,一张牌面朝上(叫明牌),一张牌面朝下(叫暗牌);给自己发两张牌,一张暗牌,一张明牌。大家手中扑克点数的计算是:K、Q、J 和10 牌都算作10 点。A 牌既可算作1点也可算作11点,由玩家自己决定。 其余所有2至9牌均按其原面值计算。首先玩家开始要牌,如果玩家拿到的前两张牌是一张 A 和一张10点牌,就拥有黑杰克(Blackjack);此时,如果庄家没有黑杰克,玩家就能赢得2倍的赌金(1赔2)。如果庄家的明牌有一张A,则玩家可以考虑买不买保险,金额是赌筹的一半。 如果庄家是blackjack,那么玩家拿回保险金并且直接获胜;如果庄家没有blackjack则玩家输掉保险继续游戏。没有黑杰克的玩家可以继续拿牌,可以随意要多少张。目的是尽量往21点靠,靠得越近越好,最好就是21点了。 在要牌的过程中,如果所有的牌加起来超过21点,玩家就输了——叫爆掉(Bust),游戏也就结束了。假如玩家没爆掉,又决定不再要牌了,这时庄家就把他的那张暗牌打开来。一般到17点或17点以上不再拿牌,但也有可能15到16点甚至12到13点就不再拿牌或者18到19点继续拿牌 假如庄家爆掉了,那他就输了。假如他没爆掉,那么你就与他比点数大小,大为赢。一样的点数为平手,你可以把你的赌注拿回来。庄家在取得17点之前必须要牌,因规则不同会有软17点或硬17点才停牌的具体区分。 21点的技巧玩法

“21点”纸牌游戏实验报告

课 程 设 计 报 告 完成时间:2012年 3 月 30 日 肇庆学院计算机学院 课程名称: 面向对象程序设计与开发课程设计 设计题目: “21点”纸牌游戏 年 级: 09 系 别: 计算机学院 专 业: 计算机科学与技术 小组成员名单: 陈坚鹏 李浩艺 陈子龙 任课教师: 莫家庆老师

课程设计结果评定 评阅意见: (1)内容设计(20分):优()、良()、中()、一般()、差();(2)流程分析(20分):优()、良()、中()、一般()、差();(3)数据定义(30分):优()、良()、中()、一般()、差();(4)代码编写(20分):优()、良()、中()、一般()、差();(5)创新能力(10分):优()、良()、中()、一般()、差();(6)格式规范性、设计态度及考勤是否降等级:是()、否() 其它意见: 评阅人: 2012 年月日 成绩等级:

目录 “21点”纸牌游戏 (1) 1 概述 (1) 2 实验内容 (1) 3 概要设计 (2) 4 测试结果和分析 (5) 5 课程设计体会 (5)

“21点”纸牌游戏 1 概述 本课程设计通过编写相关代码实现“21点”游戏。 使用语言:C++语言 编译环境:VC++ 6.0 2 实验内容 1、问题描述 “21点”是一个古老的扑克牌游戏,游戏规则是:各个参与者设法使自己的派达到总分21而不超过这个数值。扑克牌的分值取它们的面值,A充当1分或11分(由玩家自己选择一种分值),J、Q和K人头牌都是10分。 庄家对付1—7个玩家。在一局开始时,包括庄家在内的所有参与者都有两张牌。玩家可以看到他们的所有牌以及总分,而庄家有一张牌暂时是隐藏的。接下来,只要愿意,各个玩家都有机会再拿一张牌。如果某个玩家的总分超过了21(称为“引爆”),那么这个玩家就输了。在所有玩家都拿了额外的牌后,庄家将显示隐藏的牌。只要庄家的总分等于或小于16,那么他就必须再拿牌。如果庄家引爆,那么还没有引爆的所有我那家都将获胜,引爆的玩家打成平局。否则,将余下的各玩家的总分与庄家的总分做比较,如果玩家的总分大于庄家的总分,则玩家获胜。如果二者的总分相同,则玩家和庄家打成平局。 基本要求: 编写程序实现游戏,计算机作为庄家,1—7个人作为普通玩家参与游戏。游戏程运行输出如下所示。 多少人加入游戏?(1—7):2 输入第1位玩家的姓名:张三 输入第2位玩家的姓名:李四 游戏开始: 庄家:<隐藏>梅花7 张三:红桃7方块J总分值17 李四:红桃J红桃3总分值13 张三,你想再要一张牌吗(y,n)?n 李四,你想再要一张牌吗(y,n)?y 李四:红桃J红桃3梅花10总分值23 李四引爆! 庄家:方块10,梅花7总分值17

21点规则,21点算牌

看更多21点技巧算牌 21点(Blackjack)一般规则 如果您是21点的初学者, 则您必须首先学习简单的21点规则及玩法以及了解21点的由来跟历史正如您将很快学到, 21点的各种牌型及打法策略. 当您离开牌桌的时候手里收获了不菲的筹码时,在这一刻您会明白如果知道21点规则, 21点的输赢确实可以掌控,只要你能熟悉二十一点算牌术! 学习21点很容易.在21点规则中有一项基本教育技能需要掌握, 即知道如何追牌.凭借此技能, 您想获取一手牌接近21分而没有冒险, 并且比出牌人更接近21点. 超过21点称之为爆破;这可是坏消息, 因为您的筹码将开始很快消失. 这种快节奏牌游戏的一项优点是玩家与发牌人单独进行竞争. 发牌人不存在战略, 因此21点的初学者应该不会为找到一位好心并健谈的发牌人而为难. 发牌人可以提供21点的课程并给予有价值的提示. 同样, 它适合牌桌上的其他玩家.(没有21点规则声明玩家不可以披露他们的牌, 等等. 这将在稍后讨论. ) 21点(Blackjack)的牌值 A的牌值11或1, 所有面朝上的牌值10. 并且所有牌的数位值是牌上的数位. 忘掉花色, 因为他们在21点规则中不重要.21点或“自然”等同于等于10的任何牌加一对A(这样才等于21). 在多数赌场, 这经常支付3:2 的费用, 例如, 下注$10收到$15 赢奖. 21点可以仅在头两次发牌中实现. 所有其他组合不过是21. 没有正式的21点规则.不同赌场的21点规则会有所不同. 然而, 发牌时您始终会得到两张牌. 您将根据发牌人所显示的情况做出出牌. (他们之中的一张牌直到 所有玩家结束牌局的时候都面朝下). 因此, 拥有一个自己的奇妙数字. 您将以 此数位要牌(拿牌)并且停牌. 发牌人会始终在17点或17点以上停牌, 并且只有达到17点时才要牌. 凭借这一新知识, 练习的最佳方式只出两手牌;一手给玩家, 另外一手给出牌人. 针对发牌人游戏并且一旦决定停牌, 将发牌人隐藏的牌翻过来. 记住, 作为发牌人, 您只有达到17点时才要牌, 并且在17到21点之间停牌. 21点(Blackjack)基本玩法规则 1. 点数计算 A 作一点或十一点; 2-10 作该牌之点数; J, Q, K 作十点

C++课程设计---21点纸牌游戏程序

#include #include #include #include #include #include class Game { public: Game() { win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=100,bet=0; player=0,cpu=0; char answer1[]="123456"; strcpy(answer,answer1); char answer2[]="654321"; strcpy(daan,answer2); }; void rules();//显示规则 void BET(); //下注 void deal();//交易 void run(Game &);//进行异常处理 void hit1();//拿下一牌 void hit2();//确保庄家不会爆庄并且点数大于16 void print();//打印出最后结果 void results();//最后的胜利结果 void check();//检查是否爆庄 Game operator=(Game &d);//运算符重载 void replay(char &ans);//是否进行新一轮的游戏 void clean();//清屏 void wait(int); void pause(); int GetInt(int,int); int random(long,long); private: int playerturns,cputurns,money; int win,lose,draw,bet; float player,cpu; char answer[7]; char daan[7]; }; //--------------------------------------------------------------------------------------- void Game::wait(int milli)

相关文档
最新文档