2017-10-21 265 views
-1

在線二十一點遊戲使用什麼樣的洗牌方法?他們是否在代碼中保留了一張牌的「牌組」,或者簡單地把每一手牌作爲一組全新的新秀從隨機選出來?在線二十一點遊戲如何洗牌?

+1

那麼它不會是大酒杯,如果每手完全是新的,所以就必須是一個模擬的「鞋「的甲板。它是如何模擬的實現細節。最自然的事情是提前做一次Fisher-Yates洗牌,但這只是猜測,因此有點基於觀點,也過於寬泛。雖然這是一個有趣的問題,但我認爲這不是真正的主題。此外,您的問題似乎假定所有網站使用相同的方法。爲什麼這應該是真的? –

+0

你沒有要求它,但我提到它:他們將使用(1)外部熵(物理測量;也許與站點有關的時間/用戶行爲,儘管不是後者)(2)cryptoPRNGs。 - 其餘依賴於遊戲;但是如果需要洗牌,Fisher-Yates非常棒(給出一些隨機比特)。 – sascha

+0

那些正確的*會正確地模擬一個裝滿陣列卡牌的甲板或鞋子,使用超過240位狀態的良好RNG,使用縮小採樣使其在鞋子尺寸上保持均勻,再加上合適的當剩下大約15%的牌時,費希爾 - 耶茨重新洗牌,以正確模擬實際的賭場實踐。我猜測只有不到10%的軟件二十一點遊戲能夠正確完成所有這些。 –

回答

0

這取決於很多誰是遊戲製造商和他們使用什麼樣的編程語言。想象一下,每次你創建新的卡片對象時,即使在這種情況下,你也需要洗牌。良好的洗牌算法是非常重要的,如果製造商是不夠熟練它將使用算法像this one

var rand = new Random(); 
for (int i = cards.Length - 1; i > 0; i--) { 
    int n = rand.Next(i + 1); 
    int temp = cards[i]; 
    cards[i] = cards[n]; 
    cards[n] = temp; 
}