python 左右兩隻手交換撲克牌
阿新 • • 發佈:2018-12-14
示例:小明手裡有兩張牌,左手紅桃♥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()