21点为什么21天效应忘记一个人人可以多手牌进行游戏?

《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倍的金额;但通常是在仅使用一副牌游玩的赌局中。  通常每次以四至六副扑克牌游玩,直至玩剩一副或一半为止,再重新洗牌。
参考资料:
百科的文章(含所附图片)系由网友上传,如果涉嫌侵权,请与客服联系,我们将按照法律之相关规定及时进行处理。如需转载,请注明来源于。
我是互动百科的老用户了上一篇文章:
下一篇文章:
/html/2015/nanmeifang_.html
游戏沙龙会s36版权所有&2015热门游戏:
最新游戏:
您的位置:
本站仅创建用户沟通交流的平台,所展示的安卓软件资源内容来自于第三方上传分享,版权问题均与我站无关。资源仅作为用户间分享讨论之用,除开发商授权外不以盈利为目的。如该游戏触犯了您的权利,请申诉!邮箱:
你是不是讨厌了那种千篇一律的休闲游戏,那么今天小编为大家带来的是休闲与动作结合的H5游戏,它除了可以让你同时享受休闲与动作带来的乐趣,而且不管是在手机上还是电脑…
今天小编为大家带来的是关于休闲娱乐类的H5游戏,这类游戏是属于比较小型的游戏,特别是你工作暇闲之余可以玩玩这些小游戏打发时间噢,除了上续之外最重要的是它不仅可以…
本类最新游戏排行榜
棋牌游戏排行榜> 博客详情
摘要: JavaScript学习:21点游戏
一、游戏规则
21点游戏的规则有很多种,我在写这个21点游戏的时候,选取了一种规则,描述如下:
1、游戏共有两名玩家,玩家1(庄家)和玩家2,在我编写的这个21点中,玩家1是电脑,玩家2是你,电脑坐庄。
2、一开始,给你和庄家各发两张牌,你可以看到你的两张牌,庄家的牌一张是明牌,一张是暗牌(暗牌是扣过来的牌,你不知道具体点数是多少)。
3、你和庄家的牌都是从一副牌里发出来的,共计52张(不要大小Joker)。
4、A可以当做1点和11点用,J、Q、K当做10点用,其他牌按面值计算点数。
5、发牌后,你可以选择要或不要牌,选择要牌后,如果你的点数大于21点,你就输了,否则你还可以选择要或不要牌,如果你选择不要牌,则轮到庄家要牌。
6、轮到庄家时,如果庄家的点数小于17点,则庄家必须要牌,当庄家点数大于或等于17时,庄家有权继续选择要或不要。如果庄家点数大于21点,则判定庄家输。
7、如果你和庄家都不要了,且双方都没有爆掉,则双方摊牌,计算双方点数,以点数大者胜,若双方点数一致则为平局。
二、目录结构
游戏的目录结构如下:
1、resource目录下,存储了游戏需要使用的图片。
2、bgm.ogg是游戏的背景音乐(我把QQ斗地主的背景音乐放进来了╮(╯▽╰)╭)
3、black_jack.html是一个网页,使用浏览器打开它就可以开始进行游戏了
4、black_jack.js存储了JavaScript代码
resource目录下的图片,包括纸牌图案、玩家头像等内容:
三、页面代码
black_jack.html页面代码如下:
&title&JS学习 - 21点 (black jack)&/title&
&meta http-equiv="Content-Type" content="text/charset=gb2312"/&
&style type="text/css"&
text-align:
text-decoration:
font-weight:
padding: 3px 6px 3px 6
vertical-align:
text-align:
padding: 3px 6px 3px 6
&table width="100%"&
&div align="left"&
21点游戏 (Black Jack)
&div align="right"&
&audio width="300" height="10" controls autoplay="true" loop="true"&
&source src="bgm.ogg" type="video/ogg"/&
&table id="tableboard"&
&td id="player1"&&img src="resource\computer.png" /&&/td&
&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&
&td id="player2"&&img src="resource\player.jpg" /&&/td&
&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&&td/&
&div id="score"&&/div&
&div id="bulletin"&请做出选择 (Please make a choice.)&/div&
&input type="button" id="hit" value="加一张牌 (HIT)" onclick="hit();" /&
&input type="button" id="stand" value="我不要了 (STAND)" onclick="stand();" /&
&!--&input type="button" id="restart" value="再玩一局 (FIGHT AGAIN)" onclick="location.reload();" /&--&
&input type="button" id="restart" value="再玩一局 (FIGHT AGAIN)" onclick="restart();" /&
&script src="black_jack.js"&&/script&
black_jack.js页面代码如下:
//Firefox44.0,如果再来一局功能用location.reload()实现,则必须带上这两句话
//document.getElementById("hit").disabled =
//document.getElementById("stand").disabled =
var counter = 0; //发牌次数
var winner = ""; //胜利者 player1 - 电脑/player2 - 玩家
var hasStood = //标记玩家是否已经不要牌
//所有的牌
var cards = [
"club01", "club02", "club03", "club04", "club05", "club06", "club07",
"club08", "club09", "club10", "club11", "club12", "club13", "diamond01",
"diamond02", "diamond03", "diamond04", "diamond05", "diamond06", "diamond07",
"diamond08", "diamond09", "diamond10", "diamond11", "diamond12", "diamond13",
"heart01", "heart02", "heart03", "heart04", "heart05", "heart06", "heart07",
"heart08", "heart09", "heart10", "heart11", "heart12", "heart13",
"spade01", "spade02", "spade03", "spade04", "spade05", "spade06", "spade07",
"spade08", "spade09", "spade10", "spade11", "spade12", "spade13"];
//生成随机数
var getRand = function (begin, end) {
return Math.floor(Math.random() * (end - begin)) +
for (var i = 0; i & 1000; i++) {
rand = getRand(1, 52);
tmp = cards[0];
cards[0] = cards[rand];
cards[rand] =
//玩家手牌
var cards1 = [getNewCard(), getNewCard()];
var cards2 = [getNewCard(), getNewCard()];
var table = document.getElementById("tableboard");
table.rows[0].cells[1].innerHTML = "&img src=\"resource\\cardback.png\" /&";
table.rows[0].cells[2].innerHTML = "&img src=\"resource\\" + cards1[1] + ".jpg\" /&";
table.rows[1].cells[1].innerHTML = "&img src=\"resource\\" + cards2[0] + ".jpg\" /&";
table.rows[1].cells[2].innerHTML = "&img src=\"resource\\" + cards2[1] + ".jpg\" /&";
showScore();
//玩家再要一张牌
function hit() {
getNewCard("player2");
if(checkIfBust("player2")) {
document.getElementById("bulletin").innerHTML = "你爆了 (You BUST!)";
document.getElementById("hit").disabled =
document.getElementById("stand").disabled =
winner = "player1";
showScore();
//玩家选择不要了
function stand() {
hasStood =
document.getElementById("hit").disabled =
document.getElementById("stand").disabled =
table.rows[0].cells[1].innerHTML = "&img src=\"resource\\" + cards1[0] + ".jpg\" /&";
//电脑开始要牌
while (calcResult("player1") & 17) {
getNewCard("player1");
if(checkIfBust("player1")) {
document.getElementById("bulletin").innerHTML = "电脑爆了 (Computer BUST!)";
document.getElementById("hit").disabled =
document.getElementById("stand").disabled =
winner = "player2";
//如两名玩家都未爆掉,则以分数高者为胜
if (winner == "") {
var result1 = calcResult("player1");
var result2 = calcResult("player2");
if (result1 == result2) {
document.getElementById("bulletin").innerHTML = "平局 (PUSH!)";
} else if (result1 & result2) {
document.getElementById("bulletin").innerHTML = "你输了 (You LOSE)";
} else if (result1 & result2) {
document.getElementById("bulletin").innerHTML = "你赢了 (You WIN!)";
showScore();
//获取一张新牌
function getNewCard(player) {
var card = cards[counter++];
if (player == "player1") {
var len = cards1.
cards1[len] =
table.rows[0].cells[len + 1].innerHTML =
"&img src=\"resource\\" + cards1[len] + ".jpg\" /&";
} else if (player == "player2") {
var len = cards2.
cards2[len] =
table.rows[1].cells[len + 1].innerHTML =
"&img src=\"resource\\" + cards2[len] + ".jpg\" /&";
//判断当前情况是否爆掉
function checkIfBust(player) {
var result = 0;
if (player == "player1") {
for (var i = 0; i & cards1. i++) {
//parseInt一定要指定10进制,否则IE8下报错
var c = parseInt(cards1[i].substr(cards1[i].length - 2), "10");
if (c & 10) {
if (result & 21) {
} else if (player == "player2") {
for (var i = 0; i & cards2. i++) {
var c = parseInt(cards2[i].substr(cards2[i].length - 2), "10");
if (c & 10) {
if (result & 21) {
//计算一名玩家的得分分数
function calcResult(player) {
var result = 0;
var countOfA = 0;
if (player == "player1") {
for (var i = 0; i & cards1. i++) {
var c = parseInt(cards1[i].substr(cards1[i].length - 2), "10");
if (c & 10) {
} else if (c == 1) {
countOfA++;
for (var i = 0; i & countOfA; i++) {
if (result + 10 &= 21) {
result += 10;
for (var i = 0; i & cards2. i++) {
var c = parseInt(cards2[i].substr(cards2[i].length - 2), "10");
if (c & 10) {
} else if (c == 1) {
countOfA++;
for (var i = 0; i & countOfA; i++) {
if (result + 10 &= 21) {
result += 10;
function showScore() {
var result1 = calcResult("player1");
var result2 = calcResult("player2");
document.getElementById("score").innerHTML =
"[Computer : You = " + (hasStood == true ? result1 : "?") + " : " + result2 + "]";
function restart() {
document.getElementById("hit").disabled =
document.getElementById("stand").disabled =
counter = 0; //发牌次数
winner = ""; //胜利者 player1 - 电脑/player2 - 玩家
hasStood = //标记玩家是否已经不要牌
"club01", "club02", "club03", "club04", "club05", "club06", "club07",
"club08", "club09", "club10", "club11", "club12", "club13", "diamond01",
"diamond02", "diamond03", "diamond04", "diamond05", "diamond06", "diamond07",
"diamond08", "diamond09", "diamond10", "diamond11", "diamond12", "diamond13",
"heart01", "heart02", "heart03", "heart04", "heart05", "heart06", "heart07",
"heart08", "heart09", "heart10", "heart11", "heart12", "heart13",
"spade01", "spade02", "spade03", "spade04", "spade05", "spade06", "spade07",
"spade08", "spade09", "spade10", "spade11", "spade12", "spade13"];
for (var i = 0; i & 1000; i++) {
rand = getRand(1, 52);
tmp = cards[0];
cards[0] = cards[rand];
cards[rand] =
//玩家手牌
cards1 = [getNewCard(), getNewCard()];
cards2 = [getNewCard(), getNewCard()];
table.rows[0].cells[1].innerHTML = "&img src=\"resource\\cardback.png\" /&";
table.rows[0].cells[2].innerHTML = "&img src=\"resource\\" + cards1[1] + ".jpg\" /&";
table.rows[1].cells[1].innerHTML = "&img src=\"resource\\" + cards2[0] + ".jpg\" /&";
table.rows[1].cells[2].innerHTML = "&img src=\"resource\\" + cards2[1] + ".jpg\" /&";
//清空牌桌
for (var i = 3; i & table.rows[0].cells. i++) {
table.rows[0].cells[i].innerHTML = "";
table.rows[1].cells[i].innerHTML = "";
showScore();
document.getElementById("bulletin").innerHTML = "请做出选择 (Please make a choice.)";
//播放背景音乐 - Chrome46.0.2490.80m有效,Firefox44.0无效
var mp3snd = "./bgm.ogg";
var bkcolor = "000000";
if (navigator.userAgent.toLowerCase().indexOf("msie") != -1) {
document.write('&bgsound src="' + mp3snd + '" loop="-1"&');
} else if (navigator.userAgent.toLowerCase().indexOf("firefox") != -1) {
document.write('&object data="' + mp3snd + '" type="application/x-mplayer2" width="0" height="0"&');
document.write('&param name="filename" value="' + mp3snd + '"&');
document.write('&param name="autostart" value="1"&');
document.write('&param name="playcount" value="infinite"&');
document.write('&/object&');
document.write('&audio src="' + mp3snd + '" autoplay="autoplay" loop="loop"&');
document.write('&object data="' + mp3snd + '" type="application/x-mplayer2" width="0" height="0"&');
document.write('&param name="filename" value="' + mp3snd + '"&');
document.write('&param name="autostart" value="1"&');
document.write('&embed height="2" width="2" src="' + mp3snd + '" pluginspage="/quicktime/download/" type="video/quicktime" controller="false" controls="false" autoplay="true" autostart="true" loop="true" bgcolor="#' + bkcolor + '"&&br&');
document.write('&/embed&&/object&');
document.write('&/audio&');
四、效果演示
使用Firefox浏览器(版本号44.0)打开black_jack.html后,效果如下图所示:
游戏代码可以从这个链接下载到:&
五、几点感受
1、我在IE8(版本8.0.)、Chrome(版本46.0.2490.80 m)、Firefox(44.0)三个浏览器上测试了效果,除IE8中无法播放音乐外,其他功能都是正常的。
2、浏览器兼容性问题确实是个令人头疼的问题,就以parseInt函数来说,传入参数为"08"时,IE8返回0,Chrome和Firefox返回8。后来查了下才知道,原来IE8把字符串第一个字符为0的数字自动解析为八进制数了,需要在parseInt的第二个参数中强制指定使用十进制规则转换,才能让三个浏览器返回同样的结果。
3、说句题外话,这个游戏里,电脑赢的概率比你大,毕竟赌博游戏永远是庄家占便宜╭(╯^╰)╮。
人打赏支持
开源项目作者
领取时间:
作为一个开源项目作者,是时候站出来拯救世界了!
领取条件:开源项目被开源中国收录的开发者可领取
参与源创会
领取时间:
“”在线下联结了各位 OSCer,推广开源项目和理念,很荣幸有你的参与~
领取条件:参与过开源中国“源创会”的 OSCer 可以领取
码字总数 449789
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥}

我要回帖

更多关于 一个人玩的游戏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信