面向對象之左右手交換牌

‘’’
#左右手交換牌 案列
#小明手裏有倆張牌,左手紅桃♥K,右手黑桃♠A,小明交換倆手的牌後,手裏分別是什麼?

人類:
屬性:小明,左手,右手
行爲:展示手裏的牌, 交換手裏的牌
手類:
屬性:牌
行爲:手裏拿着撲克牌
牌類:
屬性:顏色,數字(紅桃♥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')



#手類
class Hond:
    def __init__(self,poker):
        self.poker = poker

    def hold_poker(self,poker):
        self.poker = poker

#創建左右手對象
life_hond = Hond(p1)
right_hond = Hond(p2)
# print(life_hond)
# print(right_hond)

#人類
class Person:

    def __init__(self,name,life_fond,right_fond):
        self.name = name
        self.life_fond = life_fond
        self.right_fond = right_fond

    #展示手裏的牌
    def show(self):
        print('{}張開雙手'.format(self.name),end='')
        print('左手:{}'.format(self.life_fond.poker),end=',')
        print('右手:{}'.format(self.right_fond.poker))

    #交換手裏的牌
    def swap(self):
        self.life_fond.poker,self.right_fond.poker = self.right_fond.poker,self.life_fond.poker
        print('{}交換倆手的牌'.format(self.name))

#創建小明對象
xiaoming = Person('小明',life_hond,right_hond)

#展示手裏的牌
xiaoming.show()

#交換手裏的牌

xiaoming.swap()

#在展示手裏的牌

xiaoming.show()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章