21點算法


21點規則,策略及算法參考 21點算法


21點規則
  1. 游戲由玩家和莊家(即賭場的發牌員)對玩,看誰的牌面點數更靠近21點。但如果超過了21點,則稱為“爆掉”,算輸。其中花牌(J,Q,K)都算10點,A可以算1點,也可以算11點,看哪種情況更有利。玩家之間不做比較。

  2. 游戲開始時,所有玩家和莊家各拿兩張牌,一般來說,是玩家兩張牌牌面朝上,莊家一張牌面朝上,一張牌面朝下。

  3. 兩張牌的點數,肯定介于2到21點之間。21點只可能是一張10(包括J,Q,K,下同)和一張A,這叫“天成(BlackJack,以下簡稱BJ)”,除非莊家也拿到了BJ,不然贏一倍半的賭注。

  4. 玩家在游戲中有如下選擇:
    (1)要牌,直到他(或她,下同)認為自己的牌面離21點足夠近了。比如手頭的牌是4和5,加起來才9點,那么無論再加張什么牌,都不會爆掉,當然應該要牌。
    (2)停牌,即不再要牌,比如手頭是張10和9,已經很接近21點了,就不用再要牌了。
    (3)加倍,即加一倍賭注,再要且僅要一張牌。比如手頭是張4和7,這時要牌是肯定安全的,而且很可能拿到10或者其他點數較大的牌,一張就夠了,值得加倍。這只能在剛拿到兩張牌時使用,要過牌后就不能加倍。
    (4)分牌,即拿到兩張點數相同的牌時,可以加一份賭注,把牌分為兩份,比如手頭是兩張8,加起來是16,非常糟糕的點數,這時就應該把牌分為兩個8,再要兩張牌來,很可能拿到10形成18點,就把壞牌變成好牌了。
    (5) 保險,即在莊家亮著的牌是A時,由于他拿到BJ的幾率很大,玩家可以下賭注一半的保險。如果莊家沒有拿到BJ,保險金就輸掉了,如果莊家拿到了BJ,付給 玩家兩倍保險金。很多玩家在自己拿到BJ的情況下,會下賭注一半的保險,以保證自己能贏回一倍賭注,因為如果莊家沒有BJ,那他能贏賭注的一倍半,去掉輸 掉的半倍保險,還贏一倍賭注;如果莊家有BJ,那他們牌面打平,但保險能賺回一倍賭注。
    (6)投降,這時只輸一半賭注。如果自己的牌是10和6,莊家亮著的牌是A,那還是趁早投降好。

  5. 莊家在手頭的牌是A時,會問大家是否要保險,然后檢查自己的牌是否BJ。如果手頭的牌是10,也會檢查是否BJ,但這時玩家就不能買保險了。

  6. 如果玩家要牌爆掉,算輸,莊家當場收掉他的賭注。

  7. 當所有的玩家都做出選擇后,莊家的玩法是固定的:亮出底牌,如果點數不到17點,則必須要牌,直到超過了16點或爆掉為止。

  8. 如果雙方都還沒有爆掉,則更接近21點的那個勝,如果雙方點數相同,則算打平。

21點策略

規則為:莊家在軟17點時停止、無限分牌加倍、允許投降。

為了方便分析,我們先假設52張牌出現的概率始終相同,也就是說每張牌都是從一個無窮多副牌組成的牌盒里抽出來的,或者說前面出過的牌不影響后面的牌,換句話說,每張牌相互之間都是獨立的。

在上述規則下,基本策略為:

以下點數都是所謂“硬點數”,即不包括A或A算1點,以后如果不特別指明,各點都指“硬點數”。
莊家:2 3 4 5 6 7 8 9 10 A
玩家點數:
<=8 H H H H H H H H H H
9 H D D D D H H H H H
10 D D D D D D D D H H
11 D D D D D D D D D H
12 H H S S S H H H H H
13 S S S S S H H H H H
14 S S S S S H H H H H
15 S S S S S H H H R H
16 S S S S S H H R R R
>=17 S S S S S S S S S S
其中H表示“要牌(Hit)”,S表示“停牌(Stand)”,D表示“加倍(Double down)”,R表示“投降(suRrender)”。

手中有A,而且A算11也不會爆掉,就是所謂“軟點數”,應該運用下面這個表格:
莊家:2 3 4 5 6 7 8 9 10 A
玩家
13 H H H D D H H H H H
14 H H H D D H H H H H
15 H H D D D H H H H H
16 H H D D D H H H H H
17 H D D D D H H H H H
18 S DS DS DS DS S S H H H
>=19 S S S S S S S S S S
“D”和“DS”都表示加倍,在不可以加倍的情況下,“D”表示要牌,“DS”表示停牌。

最后是分牌策略:
莊家:2 3 4 5 6 7 8 9 10 A
玩家
A,A P P P P P P P P P P
2,2 H H P P P P H H H H
3,3 H H P P P P H H H H
4,4 H H H P P H H H H H
5,5 D D D D D D D D H H
6,6 H P P P P H H H H H
7,7 P P P P P P H H H H
8,8 P P P P P P P P P P
9,9 P P P P P S P P S S
10,10 S S S S S S S S S S

其中P表示“分牌(sPlit)”。

二十一點算牌法

二十一點能夠算牌,是因為我們在討論“基本策略”時提出的一個假設不成立:

假設52張牌出現的概率始終相同,也就是說每張牌都是從一個無窮多副牌組成的牌盒里抽出來的,或者說前面出過的牌不影響后面的牌,換句話說,每張牌相互之間都是獨立的。
顯然,不可能有這樣的由無窮多副牌組成的牌盒,前面出過的牌總會影響后面的牌。在算牌法剛出現的時代,賭場仍然使用 一副牌來玩二十一點,那么這個影響就更明顯。比如,發牌員發出牌來,你拿到兩個10(包括J、Q、K),莊家亮牌也是10,翻出底牌來還是10,那么下一 輪里10出現的概率已不再是4/13,而是12/48,即1/4,略低于4/13。同樣的,其他點數出現的概率也已不再是1/13,而是1/12。

使用一種叫“高低法(High-Low)”的算牌法。在游戲過程中,我們把每一張出現的2,3,4,5,6都 算+1點,7,8,9算0點,10,J,Q,K,A算-1點,將各點相加,結果越大,就表示前面出現過的小牌越多,對玩家越有利。反過來,如果結果是個負 數,就表示前面出過的大牌比小牌多,對莊家有利。

比如前面出現的牌是:

4,9,10,5,J,A,8,10,Q,2,6,K,J,7

那么點數就是4張小牌減7張大牌,是-3。當然,在游戲過程中,你不可能叫莊家把牌局暫停,讓你從容加減。你必須在每張牌出來時,就在心里默算點數。比如在上面的例子里,從第一張牌出現開始,你就應該在心里默算出:

1,1,0,1,0,-1,0,-2,-3,-2,-1,-2,-3,-3

算法實現
function cc(card) {
  for(var i=0;i<card.length;i++){
    if(card[i]>=2&&card[i]<=6){
      count++;
      //return count;
    }else if(card[i]==10||card[i]=='J'||card[i]=='Q'||card[i]=='K'||card[i]=='A'){
      count--;
      //return count;
    }
  }
  if(count>0){
    return count+" Bet";
  }else{
    return count+" Hold";
  }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容

  • 在賭場21點游戲中,玩家可以通過計算牌桌上已經發放的卡牌的高低值來讓自己在游戲中保持優勢,這就叫21點算法。根據下...
    300d閱讀 1,974評論 1 1
  • 你的數學直覺怎么樣?你能憑借直覺,迅速地判斷出誰的概率大,誰的概率小嗎?下面就是 26 個這樣的問題。如果你感興趣...
    cnnjzc閱讀 6,958評論 0 12
  • 一年級語文上冊生字表 生字表一(共400字) 啊(ā)愛(ài)安(ān)岸(àn)爸(bà)八(bā)巴(bā)...
    meychang閱讀 2,833評論 0 6
  • 背景 想做個游戲和大家一起玩。曾經在郵輪上玩過德州撲克,Blackjack 21點,都非常好玩。21點比較簡單,...
    dasan沈揚閱讀 1,523評論 0 0
  • 初冬,過完年假,遠在市中心的表姐,打電話給我,讓我去她家小住幾日,說到表姐,小姨就只生了一個女兒,從小小姨全家人就...
    阿柒aqi閱讀 946評論 1 1