python进阶练习题:纸牌游戏:黑杰克【难度:2级】:

介绍

一个新的赌场已经来到了拉斯维加斯,但是这个赌场不希望有人类的工作人员,但他们希望实现一系列过程自动化,计算机系统.
寻找引用和建议后,行政团队已经决定聘请你来开发这些系统.

你的任务

酒杯

写绘制卡经销商,并返回谁赢得了玩家功能.

每个表将包括3名球员,"玩家1"`` "玩家2"`` "播放器3"

规则

* 玩家对战的桌子管理人员只,而不是与其他玩家.
 * 在二十一点每个卡都有它的价值,而数字是值得不管他们的数字表示. "J"`` "Q""K"值得10,"A"可能值得11或1,总是试图保持了最高分.
 * 如果一个球员超过21分,他们输了.
 * 赌场上的总管必须从甲板上,直到它的手得分17分以上划卡.
 * 玩家有一个酒杯,当他们有2个卡,价值10卡和一个"A"
 * 如果球员有一个酒杯,然后他们赢了,除非桌子管理人员也有一个大酒杯.

例子

播放器1分的手=> "J", "A" // 21黑杰克
播放器2=> "10", "5", "6" // 21
播放器3=> "3", "6", "A", "3", "A", "K" // 24
赌台管理员手=> "9", "7" // 16
甲板=> "5", "4", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "9", "7", "5" // 21
甲板=> "4", "K", "2"

现在比较手
玩家121,赌台管理员得分21,但播放器1具有黑杰克,那么玩家1韩元
玩家221,赌台管理员得分21,得出
玩家分数24,玩家3超过21让他失去

返回[ "玩家1"]


播放器1的手=> "10", "K" // 20
播放器2=> "10", "2", "6" // 18
播放器3=> "8", "8", "5" // 21
赌台管理员手=> "5", "10" // 15
甲板=> "A", "3", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "5", "10", "A", "3" // 19
甲板=> "K", "2"

现在比较手
玩家120,赌台管理员得分19,玩家1韩元
玩家218,赌台管理员得分19,玩家2丢失
玩家分数21,赌台管理员得分19,玩家3韩元

返回[ "玩家1", "播放器3"]


播放器1分的手=> "J", "A" // 21黑杰克
播放器2=> "10", "5", "6" // 21
播放器3=> "3", "6", "A", "3", "A", "K" // 24
赌台管理员手=> "9", "7" // 16
甲板=> "5", "4", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "9", "7", "5" // 21
甲板=> "4", "K", "2"

现在比较手
玩家121,赌台管理员得分21,但播放器1具有黑杰克,那么玩家1韩元
玩家221,赌台管理员得分21,得出
玩家分数24,玩家3超过21让他失去

返回[ "玩家1"]


播放器1的手=> "10", "K" // 20
播放器2=> "10", "2", "6" // 18
播放器3=> "8", "8", "5" // 21
赌台管理员手=> "5", "10" // 15
甲板=> "A", "3", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "5", "10", "A", "3" // 19
甲板=> "K", "2"

现在比较手
玩家120,赌台管理员得分19,玩家1韩元
玩家218,赌台管理员得分19,玩家2丢失
玩家分数21,赌台管理员得分19,玩家3韩元

返回[ "玩家1", "播放器3"]


播放器1分的手=> "J", "A" // 21黑杰克
播放器2=> "10", "5", "6" // 21
播放器3=> "3", "6", "A", "3", "A", "K" // 24
赌台管理员手=> "9", "7" // 16
甲板=> "5", "4", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "9", "7", "5" // 21
甲板=> "4", "K", "2"

现在比较手
玩家121,赌台管理员得分21,但播放器1具有黑杰克,那么玩家1韩元
玩家221,赌台管理员得分21,得出
玩家分数24,玩家3超过21让他失去

返回"玩家1"


播放器1的手=> "10", "K" // 20
播放器2=> "10", "2", "6" // 18
播放器3=> "8", "8", "5" // 21
赌台管理员手=> "5", "10" // 15
甲板=> "A", "3", "K", "2"

由于庄家有低于17,则必须抓一张牌.

赌台管理员手=> "5", "10", "A", "3" // 19
甲板=> "K", "2"

现在比较手
玩家120,赌台管理员得分19,玩家1韩元
玩家218,赌台管理员得分19,玩家2丢失
玩家分数21,赌台管理员得分19,玩家3韩元

回归"玩家1,玩家3"


假设##

的输入永远不会为空.

所有字母都是大写

当赌台管理员绘制的存储卡,赌台管理员绘制从甲板第一元件

编程目标:

def winners(player1, player2, player3, croupier, deck):
  # TODO: complete
  return []


测试样例:

Test.describe("Example test, no winners")
Test.assert_equals(winners(
    ["6", "A", "2", "Q", "3"], #22
    ["5", "8"],                #13
    ["6", "Q", "2"],           #18
    ["3", "10"],               #13, 18 after drawing
    ["A", "4", "10", "5", "4", "A", "Q", "2", "6", "A", "5", "7", , "Q", "2", "8", "9", "A", "K", "2", "8"]),[])
Test.describe("Example test, Player 1 wins due to Black Jack")
    ["J", "A"],                # 21 BJ
    ["8", "J", "7"],           # 25
    ["2", "4", "K", "10"],     # 26
    ["K", "8"],                # 18, 21 after drawing
    ["3", "6", "A", "8", "9", "A", "3", "Q", "5", "2", "3", "8", "6", "J", "K", "2", "8", "7", "7", "K", "Q"]),["Player 1"]  )
Test.describe("Example test, player 2 and 3 wins:")
Test.assert_equals(winners(


最佳答案(多种解法):

点击查看答案

更多关联题目:

交流讨论:

景越Python基础训练营QQ群

欢迎各位同学加群讨论,一起学习,共同成长!

免责申明:

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/card-games-black-jack

更多推荐

python进阶练习题:纸牌游戏:黑杰克【难度:2级】--景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶