python2.7--简易模拟斗地主随机发牌操作


```python
# 设置编码格式必须写(python2.7没有对中文格式进行处理)
# coding=utf-8
import random 
import copy
# shuffle() 方法将序列的所有元素随机排序。
# choice() 随机抽取,又放回,源数据不变
# sample()
# 定义卡片
card = []
#存放取到的牌面
list_def = []
cart_type = ['♠','♦','♥','♣']
cart_number = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
# 将牌面组合存入card列表中
for num in cart_type:
    for num2 in cart_number:
        card.append(num2+num)
# 添加大王和小王两张牌面
card.append('queen')
card.append('king')
#print(len(card))
# 复制牌(python2.7得使用 copy.copy(card)复制列表)
games = copy.copy(card)
# 打牌牌面次序
random.shuffle(games)
# 取出一个数据后进行移除
# c = random.choice(games)
# games.remove(c)
# print(len(games))
# for x in range(0,len(games)):
#    print(games[x]), 
# 取出这副牌的大小
sum_card = len(games)
# 将三张底牌排除在外,平均分配给三个用户
need_card =( sum_card - 3)/3
# 公共方法  作用:打印取出的数据后将数据存储后删除列表中数据
def delete_info(games,sum_card):
    list_def =[]
    user = random.sample(games,sum_card)
    for sangle_user in user:
# print(sangle_user),
        list_def.append(sangle_user)
        games.remove(sangle_user)
    #print('') 
    return list_def
#三个人取出牌面总数  ==  总数减三张底牌
# 取出多条数据
len_balck = games.index('3♠')
# 打印最后取出的牌
def print_usercards(user1):
    for card_user1 in user1:
        print(card_user1),        
    print('')
# 发牌
user1 = delete_info(games,need_card)
user2 = delete_info(games,need_card)
user3 = delete_info(games,need_card)
# 取出三张底牌
remainderCard = delete_info(games,3)
# 判断谁是地主
isQueen = 0
# 将三张底牌取出随机赋予黑桃3拥有者,如果黑桃3在底牌中默认赋给用户1
if len_balck <= 17 or len_balck >51:
    for single_remainderCard in remainderCard:
        user1.append(single_remainderCard)
        isQueen = 1
elif  len_balck <= 34:
    for single_remainderCard in remainderCard:
        user2.append(single_remainderCard)
        isQueen = 2
elif  len_balck <= 51:
    for single_remainderCard in remainderCard:
        user3.append(single_remainderCard)
        isQueen = 3
print('=================')
print('用户'+ str(isQueen)+'是地主,地主的底牌是:')
print_usercards(remainderCard)
print('用户1的牌:')
print_usercards(user1)
print('用户1的牌:')
print_usercards(user2)
print('用户3的牌:')
print_usercards(user3)
#print(user3.index('3♠'))

#games.remove(user1)
#user2 = random.sample(games,10)
#delete_info(user2)
#user3 = random.sample(games,10)
#delete_info(user3)
#for card_user1 in user1:
#    print(card_user1),
#print('')
#for card_user2 in user2:
#    print(card_user2),
#print('')
#for card_user3 in user3:
#    print(card_user3),
这篇代码主要学习的点在随机函数的使用上



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值