1. 程式人生 > >python 左右兩隻手交換撲克牌

python 左右兩隻手交換撲克牌

示例:小明手裡有兩張牌,左手紅桃♥K、黑桃♠A,小明交換兩手的牌後,手裡分別是什麼?

- 思路:
  - 先找到物件:小明,左手、右手、紅桃♥K、黑桃♠A
  - 根據物件找出對應的類:人、手、牌
  - 根據需要寫出相應的邏輯,很可能反過來完善類的設計
  - 按照題目要求建立相關物件,呼叫相關方法,實現相關功能
  """
#撲克類
class Poker:
    def __init__(self,color,num):
        self.color=color
        self.num=num
    def __str__(self):
        return '{}{}'.format(self.color,self.num)
#建立兩張牌物件
p1 = Poker('♥','K')
p2 = Poker('♠','A')
print(p1)
print(p2)
#手的類
class Hand:
    def __init__(self,poker):
        self.poker=poker
    def hold_poker(self,poker):
        self.poker = poker
#建立左右兩隻手物件
left_hand = Hand(p1)
right_hand = Hand(p2)
#人的類
class Person:
    def __init__(self,name,left_hand,right_hand):
        self.name=name
        self.left_hand=left_hand
        self.right_hand=right_hand
        #展示手裡面的撲克牌
    def show(self):
        print('{}張開手'.format(self.name), end=':')
        print('左手:{}'.format(self.left_hand.poker), end=',')
        print('右手:{}'.format(self.right_hand.poker))
    # 交換兩手的牌
    def swap(self):
        self.left_hand.poker, self.right_hand.poker = self.right_hand.poker, self.left_hand.poker
        print('{}交換兩手的牌'.format(self.name))
#建立小明物件
xiaoming=Person('小明',left_hand,right_hand)
#展示手裡的牌
xiaoming.show()
#交換兩手的牌
xiaoming.swap()
#再次展示
xiaoming.show()