python——使用列表实现斗地主的发牌设计

python练习题:使用列表实现斗地主的发牌设计

1.使用列表完成牌的设计

2.使用3个列表实现每个人牌的设计


"""
♠:从小到大排序:1—13

♥:从小到大排序:14—26

♣:从小到大排序:17—39

♦:从小到大排序:40—52

小王:53
大王:54

"""

import random


#初始化一副牌
def init_cards():
    cards_list=[]
    for i in range(54):
        cards_list.append(i+1)
    return cards_list


def swap(the_list,num1,num2):
    temp = the_list[num1]
    the_list[num1] = the_list[num2]
    the_list[num2] = temp
    

#洗牌
def make_cards_random(cards_list):
    for i in range(100):
        a = random.randint(0,53)
        b = random.randint(0,53)
        swap(cards_list,a,b)

#底牌
def back_cards(list_cards):
    index_a = random.randint(36,53)
    index_b = random.randint(18,35)
    index_c = random.randint(0,17)
    
    get_a = list_cards.pop(index_a)
    get_b = list_cards.pop(index_b)
    get_c = list_cards.pop(index_c)
    return get_a,get_b,get_c


#发牌给三个人
def get_cards(cards_list):
    return cards_list[0:17],cards_list[17:34],cards_list[34:51]


def to_card(number):
    if number % 13 == 1:
        number = "A"
    elif number % 13 == 11:
        number = "J"
    elif number % 13 == 12:
        number = "Q"
    elif number % 13 == 0:
        number = "K"
    else:
        number %=13
    return str(number)
        
    

#把数字装换成对应的花色+数字
def show_cards(list_cards):
    for i in list_cards:
        if i > 0 and i <= 13:
            print ("♠" + to_card(i),end=' ')
        elif i >13 and i <= 26:
            print("♥" + to_card(i),end=' ')
        elif i>26 and i <= 39:
            print("♣" + to_card(i),end=' ')
        elif i>39 and i <= 52:
            print("♦" + to_card(i),end=' ')
        elif i==53:
            print("小王",end=' ')
        elif i==54:
            print("大王",end=' ')
        else:
            print("出错啦!",end=' ')

#开始游戏
def play_game():
    cards = init_cards()   
    make_cards_random(cards)
    
    back = back_cards(cards)
    
    person_1,person_2,person_3=get_cards(cards)
    
    for i in back:
        person_1.append(i)
    
    

    print("\n底牌是:")
    show_cards(back)
    print("\n地主牌是:")
    show_cards(person_1)
    print("\n农民1的牌是:")
    show_cards(person_2)
    print("\n农民2的牌是:")
    show_cards(person_3)

if __name__ == '__main__':
    play_game()

运行结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值