《21点》游戏规则和玩法
20:07:06 本文行家:
扑克玩法拥有最高点数的玩家获胜,其点数必须等于或低于21点;超过21点的玩家称为爆牌。2点至10点的牌以牌面的点数计算,J、Q、K 每张为10点。A可记为1点或为11点,若玩家会因A而爆牌则A可算为1 点。当一手牌中的A算为11点时,这手牌便称为“软牌”(soft hand),因为除非玩者再拿另一张牌,否则不会出现爆牌。 庄家在取得17点之前必须要牌,因规则不同会有软17点或硬17点才停牌的具体区分。 每位玩家的目的是要取得最接近21点数的牌来击败庄家,但同时要避免爆牌。要注意的是,若玩家爆牌在先即为输,就算随后庄家爆牌也是如此。若玩家和庄家拥有同样点数,这样的状态称为“push”,玩家和庄家皆不算输赢。每位玩者和庄家之间的游戏都是独立的,因此在同一局内,庄家有可能会输给某些玩家,但也同时击败另一些玩家。 牌桌上通常会印有最小和最大的赌注,每一间赌场的每一张牌桌的限额都可能不同。在第一笔筹码下注后,庄家开始发牌,若是从一副或两副牌中发牌,称为“pitch”牌局;较常见的则是从四副牌中发牌。庄家会发给每位玩家和自己两张牌,庄家的两张牌中会有一张是点数朝上的“明牌”,所有玩家皆可看见,另一张则是点数朝下的“暗牌”。若是四副牌时,发牌时点数会朝上,若为“pitch”牌局则发牌时点数朝下。 在美式的二十一点游戏中,若庄家的明牌是A或价值10的牌,庄家会确认他的暗牌是否会形成二十一点。这项确认会在所有玩家选择之前进行,但进行前会先询问玩家是否需要“保险”(insurance,在明牌是 A 的情况下)。若庄家的牌为二十一点(blackjack),则所有的玩家即时算输,将损失第一笔赌注筹码,除非玩者本身也是二十一点,或形成同点数的 push 状况。(在某些美国的赌场,庄家采用欧式的规则,在全部玩家都出手前不会先去确认暗牌。在这样的情况下,当庄家的牌揭开后为 二十一点时,则所有没有二十一点的玩家算输。) 两张牌点数相加为21(一张A再加一张价值10点的牌)称为“二十一点”(black jack),拥有这副牌的玩家即自动成为赢家(除非庄家也同时持有二十一点,这种点数相同的情形就称为 push)。拥有二十一点的玩家可赢得下注筹码的1.5倍。部份的赌场仅付给1.2倍的金额;但通常是在仅使用一副牌游玩的赌局中。 通常每次以四至六副扑克牌游玩,直至玩剩一副或一半为止,再重新洗牌。
参考资料:
百科的文章(含所附图片)系由网友上传,如果涉嫌侵权,请与***联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于。
我是互动百科的老用户了此程序为21点扑克牌游戏,玩家一共可以要五张牌,;1)将所有的函数与相应的数据封装到类中,并改写主;3)超级玩家永远不会输掉,即超级玩家可以查看下一;4)超级玩家可以查看下一张牌,即输入指定的字符串;5)每次要牌后可以设定赔率,即如果开始下的是10;6)将界面的提示说明改成中文界面,界面的解释详细;类的封装;设计一个类,将出牌,下注等的操作包含进去,玩家和;
此程序为21点扑克牌游戏,玩家一共可以要五张牌,但如果牌的点数超过21,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数大小,大者为赢,相同则为平局。
程序说明:
将所有的函数与相应的数据封装到类中,并改写主程序。使程序简化。
程序中一共有13张扑克牌可以随时抽取,大于10的点数为0.5。
超级玩家永远不会输掉,即超级玩家可以查看下一张牌,若大于21点,则可以拒绝,当然游戏规则上不能泄露这点秘密。
超级玩家可以查看下一张牌,即输入指定的字符串或字符,然后按要求输入正确密码后才能看自己的和计算机的牌,并指定下一级牌的点数。
每次要牌后可以设定赔率,即如果开始下的是10元钱的注,如果牌好,你可以要求继续下注,当然不能超过你所有的总钱数。
将界面的提示说明改成中文界面,界面的解释详细友好,可以吸引更多的玩家。
设计一个类,将出牌,下注等的操作包含进去,玩家和计算机。均为这个类的对象。这样,在玩牌及判断输赢时,函数只需要用这两个对象的引用做参数即可,大大简化了函数。
具体的参考的数据结构如下;
class CCard
int naPip[5];
//一共五张牌
//实际发了多少牌
//有多少钱
//构造函数,初始化
void FirstPlayTwo();
// 最初两张牌
int GetNumber();
//返回牌的张数
double GetPip();
//返回点数
void DidplayPip();
//依次显示牌面的点数
void DidplayPip(int);
//除了第一张牌,依次全部显示牌面点数(针对计算机牌的显示)
void TurnPlay();
//出一张牌
void Win();
//赢了计算赌注
void Lose();
void Draw();
int SetGamblec(int);
//设置赌注,赌本不够返回-1
int GetMoney();
//返回钱数
void DisplayInfo();
//显示必要的信息
char * GetCurrentCard();
//返回当前牌点
void DeleteCard(void);
//删除当前牌点,***用
void ModifyCard(double);
//修改当前牌,***用
int Addgamble(int);
//fuctions
void replay(char &ans);
//询问玩家是否再玩一局
void hit(int &total);
//要一张牌
void deal(int &player,int &cpu,int &playerturns,int &cputurns); //为计算机和玩家各发两张牌
void BET(int &bet,int &money);
void print(int wins,int lose,int draw,int money); //输出最后结果
void rules(); //输出游戏规则
void results(int player,int cpu,int bet,int &money,int &draw,int &win,int &lose); //判断一局的结果
/*diyige*/
//wait.h begin
void wait(int milli)
//暂停, milli 毫秒
start=clock();
while( ( clock()-start ) < milli );
//wait.h end
//=========================================================
void pause()
//暂停,任按一键继续
cout<<\任按一键继续\
//=========================================================
int GetInt(int L=0,int H=100)
while((entH))
return(ent);
//==========================================================
void sign()
//Displays ISAAC SHAFFER
//=============================================================
int random(long hi,long lo)
//This Program Finds A Random Number Between Hi and Low
srand((unsigned)time(NULL));
ran=rand()%(hi-(lo-1))+
return(ran);
//utility.h end
int main()
int player=0,cpu=0,win=0,lose=0,draw=0,playerturns=0,cputurns=0,money=0,
system(\执行系统命令,清屏
if((ans == 'y')||(ans=='Y')) // 检查输入是否为Yes
cout<<\您的赌本为100美元\起始的赌本
money=100;
//暂停,任按一键继续
return(0);
if(money<0) //看看有无赌本
cout<<\对不起,您没赌本了\若赌本输光,结束程序
return(0);
BET(bet,money); //下注的程序
deal(player,cpu,playerturns,cputurns); //给玩家和计算机各发两张牌
if((ans=='h')||(ans=='H'))
//如果玩家要牌
playerturns++; //玩家手中的牌数增加一张
if(playerturns>5) //判断玩家手中的牌数是否超过5张
cout<<\你手中的牌不能超过5张牌\若超过5张不能继续要牌
if((playerturns<6)&&(ans=='h')) //判断是否符合玩家要牌的条件
hit(player);
//调用发牌程序
}while((ans=='h')||(ans=='H'));
//继续询问玩家是否要牌
for(;(cpu<16)&&(cputurns<6);cputurns++)
//计算机开始要牌的条件
cout<<\计算机要了一张牌\
hit(cpu); //调用发牌程序
cout<<\计算机的牌面为:\输出计算机的牌面的总点数
cout<<\您的牌面为:\输出玩家的牌面的总点数
results(player,cpu,bet,money,draw,win,lose); //判断输赢
replay(ans);
//询问是否继续玩牌
}while((ans=='y')||(ans=='Y'));
print(win,lose,draw,money);
//游戏结束,输出结果
return(0);
//---------------------------------------------------------------------------------------
void rules()
//游戏规则
//----------------------------------------------------------------------------------------
void BET(int &bet,int &money)
//接收玩家下注
cout<<\您现有的 :$\
bet=bet*-1;
money=money-
//----------------------------------------------------------------------------------------
void deal(int &player,int &cpu,int &playerturns,int &cputurns)
//为计算机和玩家各发两张牌
int playercard1,playercard2,cpucard1,cpucard2;
playerturns=2;
cputurns=2;
playercard1=random(13,1);
//取得13与1之间的随机数
cout<<\ wait(350);
//等待350ms
三亿文库包含各类专业文献、中学教育、生活休闲娱乐、行业资料、文学作品欣赏、19C++课程设计21点扑克牌游戏等内容。
《C++》21点扑克牌游戏程序_IT/计算机_专业资料。这是用C++语言编写的一个21点扑克牌游戏程序的课程设计 课程设计报告 课程名称 课题名称 C++语言课程设计 C++语言... C++课程设计21点扑克牌游戏_IT/计算机_专业资料。此程序为 21 点扑克牌游戏, 玩家一共可以要五张牌, 但如果牌的点数超过 21, 则自动出局; 在不超过 21 点的... “21 点纸牌游戏”设计 1、需求及内容 21 点是一个古老的扑克牌游戏,游戏...提交课程设计报告,按“课程设计报告要求”撰写 3、程序设计环境为 Visual C++ ... =0; system(&cls&);//执行系统命令 cls c2.clean();//进行新的一轮游戏...C++课程设计21点扑克牌游... 8页 1下载券 喜欢此文档的还喜欢 21... C#课程设计报告_扑克牌游戏_21点_工学_高等教育_教育专区。今日推荐 68份文档 新市场营销法则 助推企业成长 999感冒灵市场营销方案 汽车品牌的足球世界杯营销 网络... 程序设计 21 点扑克牌游戏 计算机学院 12-2BJ 班 曹开明 () 李宛珊...\n\n\n&; return 0; } - 13 - 做这个课程设计不但让我在 C++编程方面... 21点游戏 c++哦 数学与计算机学院 课程设计说明书课 程名称: 课程代码: 题目:...17 21 点的扑克牌游戏摘 要 随着计算机的普及,计算机游戏逐渐进入了这个时代,... C++课程设计题目是“21 点纸牌游戏” ,系统的主要功能是娱乐游戏,有电脑和玩家...1.2 要求分析编写程序实现游戏,该程序是模拟古老的 21 点扑克牌游戏,实现 1 ...