废话不多说,直接上代码,都有注释:
"""
编程语言:python 3.6
系统环境: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中随机抽取第一张牌
poker.remove(my_poker1) # 移除数组中被抽取到的牌
my_poker2 = random.choice(poker) # 从poker中随机抽取第二张牌
poker.remove(my_poker2) # 移除数组中被抽取到的牌
my_poker3 = random.choice(poker) # 从poker中随机抽取第三张牌
poker.remove(my_poker3) # 移除数组中被抽取到的牌
my_poker4 = random.choice(poker) # 从poker中随机抽取第四张牌
poker.remove(my_poker4) # 移除数组中被抽取到的牌
my_poker5 = random.choice(poker) # 从poker中随机抽取第五张牌
poker.remove(my_poker5) # 移除数组中被抽取到的牌
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()