играют с тремя зарами, вдвоем, в один раунд
играют на обговоренную ставку, которую каждый игрок ставит перед началом раунда
самый первый раунд очередность хода определяют жребием, а все последующие раунды первым бросает игрок, который проиграл
после своего броска игрок может перебросить любое количество костей (хотя бы и все три), но только в одну попытку - и по результатам игрок выбирает комбинацию
сет | x-x-x | 2.8% |
---|---|---|
крэг (Σ = 13) | 6-6-1 , 6-5-2 , 6-4-3, 5-5-3 , 4-4-5 | 9.7% |
пара | x-x-y | 37.5% |
при равенстве пар, выигрывает тот, у кого больше третий зар
при двух крэгах - ничья, вне зависимости от выпавших зар соперника
если у обоих не выпало комбинаций, тогда выигрывает тот, у кого сумма очков на всех трех зариках больше
при равенстве комбинаций или сумм очков банк остается нетронутым, игроки меняются очередностью бросков начиная новый раунд
листинг Хаскеля :
module Crag where import Control.Monad dice_1 :: [Int] dice_1 = [1..6] dice_3 :: [(Int,Int,Int)] dice_3 = dice_1 >>= \ a -> dice_1 >>= \ b -> dice_1 >>= \ c -> return (a,b,c) set :: Double set = 6 / 6^3 pair :: Double pair = let n = length $ dice_3 >>= \(x,y,z) -> guard ((x + y + z /= 13) && x == y && y /= z) >> return (x,y,z) in 3 * (fromIntegral n) / 6^3 -- three different possibilities : x=y x=z z=y so multiply by 3 crag :: Double crag = let n = length $ dice_3 >>= \(x,y,z) -> guard (x + y + z == 13) >> return (x,y,z) in (fromIntegral n) / 6^3