python随机抽取5张扑克牌,判断是否为顺⼦
废话不多说,直接上代码,都有注释:
"""
编程语⾔:python 3.6
random python系统环境:window10
如果A设置为1,J=11, Q=12, K=13, ⼤⼩王设置为0
编程思路:
1.抽取5张牌,即5个数字,把着5个数字放在数组中;
2.采⽤冒泡排序算法,给这5个数字按照从⼩到⼤排序;
3.在数组中进⾏逻辑运算,如果是顺⼦,相邻两个数字相减等于1,即list[1]-list[0]是否=1,
把数组中全部相邻的两个数字
都进⾏这样的逻辑运算,判断最终的结果是不是都为1,如果都为1,即是顺⼦,其中有⼀个不为1就不是顺⼦,出现⼤⼩王也不是顺⼦。"""
import random
poker = [0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9,
9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13]
# 随机抽牌
def get_list():
my_poker1 = random.choice(poker) # 从poker中随机抽取第⼀张牌
my_poker2 = random.choice(poker) # 从poker中随机抽取第⼆张牌
my_poker3 = random.choice(poker) # 从poker中随机抽取第三张牌
my_poker4 = random.choice(poker) # 从poker中随机抽取第四张牌
my_poker5 = random.choice(poker) # 从poker中随机抽取第五张牌
my_list = [my_poker1, my_poker2, my_poker3, my_poker4, my_poker5]
return my_list
# 对我已经抽取的5张牌进⾏排序(从⼩到⼤)
def sort_list(my_list):
for i in range(len(my_list) - 1): # 这个循环负责设置冒泡排序进⾏的次数
for j in range(len(my_list) - i - 1): # j为列表下标
if my_list[j] > my_list[j + 1]:
my_list[j], my_list[j + 1] = my_list[j + 1], my_list[j]
return my_list
# 逻辑运算,判断这5张牌是不是顺⼦
def is_shunzi(sorted_list):
print(sorted_list)
for l in range(len(sorted_list)):
if len(sorted_list) - l == 1:
break
a = sorted_list[l+1]-sorted_list[l]
if sorted_list[l] == 0:
print('5张牌中出现⼤⼩王,不是顺⼦')
break
if a != 1:
print('不是顺⼦')
break
def main():
is_shunzi(sort_list(get_list())) main()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论