python自學篇十[ 面向對象 (四) :王者榮耀小遊戲+模擬一個簡單的銀行進行業務辦理的類]

python基礎系列:
python自學篇一[ Anaconda3安裝 ]
python自學篇二[ pycharm安裝及使用 ]
python自學篇三[ 判斷語句if的使用 ]
python自學篇四[ 基本數據類型和字符串常用處理 ]
python自學篇五[ 列表 ]
python自學篇六[ 元組 ]
python自學篇七[ 字典+深拷貝與淺拷貝 ]描述
python自學篇八[ 循環:while+for+pass+range()+推導式 ]
python自學篇九[ 函數(一):參數+對象 ]
python自學篇九[ 函數(二):返回值return+yield+迭代器+生成器 ]
python自學篇九[ 函數(三):變量作用域+ATM+5個小練習 ]
python自學篇九[ 函數(四):遞歸函數+匿名函數+內置函數+高階函數 ]
python自學篇十[ 面向對象 (一) :面向對象概念+定義類+練習一]
python自學篇十[ 面向對象 (二) :繼承+多繼承+類屬性+實例屬性]
python自學篇十[ 面向對象 (三) :訪問限制+類方法+靜態方法]
python自學篇十[ 面向對象 (四) :王者榮耀小遊戲+模擬一個簡單的銀行進行業務辦理的類]
python自學篇十一[ 模塊簡介+模塊製作+dir()函數+標準模塊+包]
python自學篇十二[ 文件:打開+讀取+寫入+3個習題]

練習:亡者農藥小遊戲

1、創建三個遊戲人物,分別是:
屬性:
名字:name,定位:category,血量:Output技能:Skill
英雄:
鎧,戰士,血量:1000 技能:極刃風暴
王昭君,法師 ,血量:1000 技能:凜冬將至
阿軻,刺客,血量:1000 技能:瞬華

2、遊戲場景,分別:

偷紅buff,釋放技能偷到紅buff消耗血量300
solo戰鬥,一血,消耗血量500
補血,加血200

  • 完整代碼:
#-*- conding:utf-8 -*-
class hero():

    #定義屬性
    def __init__(self,name,category,skill,output=1000,score = 0):
        self.name = name
        self.category = category
        self.skill = skill
        self.output = output
        self.score = score

    #戰鬥場景1,偷紅BUFF
    def red_buff(self):
        self.output -= 300
        print('%s%s到對面野區偷紅BUFF,消耗血量300'%(self.category,self.name))

    #戰鬥場景2solo戰鬥
    def solo(self,n=1):
        self.output -= 500
        if self.output < 0:
            print('%s%s,送了一個人頭,血染王者峽谷'%(self.category,self.name))
        else:
            if self.score == 0:
                self.score += n
                print('%s%s solo戰鬥拿到一血,消耗血量500'%(self.category,self.name))
            else:
                self.score += n
                print('%s%s solo戰鬥拿收割%d個人頭,消耗血量500'%(self.category,self.name,n))


    #場景三,加血
    def add_xue(self):
        self.output += 200
        print('%s%s被輔助及時奶了一口,加血200'%(self.category,self.name))


    #查看英雄相惜信息
    def getInfo(self):
        if self.output <= 0:
            print('%s%s,正在復活,拿到%d個人頭'%(self.category,self.name,self.score))

        else:
            print('%s%s超神啦!血量還有%d,拿到%d個人頭'%(self.category,self.name,self.output,self.score))


#實例化對象
kai = hero('鎧','戰士','極刃風暴')

#操作
kai.red_buff()#打紅buff
kai.getInfo()#查看英雄信息
kai.solo()#單挑殺人
kai.getInfo()#查看英雄信息
kai.add_xue()#奶媽加血
kai.getInfo()#查看英雄信息
kai.solo()#單挑殺人
kai.getInfo()#查看英雄信息

模擬一個簡單的銀行進行業務辦理的類

類:
創建一個銀行類
屬性:
一個屬於銀行的類屬性
用來存儲所用銀行的開戶信息,包含卡號、密碼、用戶名、餘額
(外界不能隨意訪問和修改。開戶時要進行卡號驗證,查看卡號是否已經存在)

每個對象擁有
    卡號、密碼、用戶名、餘額
    (外界不能隨意訪問和更改)

方法:
銀行類擁有
查看本銀行的開戶總數
查看所有用戶的個人信息(包含卡號、密碼、用戶名、餘額)
每個對象擁有
實例化對象的時候傳入相關參數
初始化對象及類屬性
取錢(需要卡號和密碼驗證)
通過驗證卡號和密碼對個人的餘額進行操作,如果取錢大於餘額,返回餘額不足
存錢(需要卡號和密碼驗證)
通過驗證卡號和密碼對個人的餘額進行操作,返回操作成功
查看個人詳細信息(需要卡號密碼驗證)
返回個人的卡號,用戶名,餘額信息

  • 完整代碼:
class Bank():
    #一個屬於銀行的類屬性
    __Users = {}


    #每個對象擁有 卡號、密碼、用戶名、餘額
    def __init__(self,CradId,pwd,name,balance):
        if CradId not in Bank.__Users:
            Bank.__Users[CradId] = {'pwd':pwd,'Username':name,'Balance':balance}
            self.__CradId = CradId
            self.__pwd = pwd
            self.__name = name
            self.__balance = balance


    #查看本銀行的開戶總數
    @classmethod
    def nums(cls):
        print('當前用戶數:%d'%(len(cls.__Users)))


    #查看所有用戶的個人信息(包含卡號、密碼、用戶名、餘額)
    @classmethod
    def get_Users(cls):
        for key,val in cls.__Users.items():
            print('卡號:%s \n 用戶名:%s \n密碼:%d \n 餘額:%d'%(key,val['Username'],val['pwd'],val['Balance']))
            print()

    #驗證方法
    @staticmethod
    def check_User(CradId,pwd):
        if (CradId in Bank.__Users) and (pwd == Bank.__Users[CradId]['pwd'] ):
            return True
        else:
            return False
    #驗證金額
    @staticmethod
    def check_money(money):
        if isinstance(money,int):
            return True
        else:
            return False

    # 取錢(需要卡號和密碼驗證)
    def q_money(self,CradId,pwd,money):
        if Bank.check_User(CradId,pwd):
            #開始取錢
            if Bank.check_money(money):
                if Bank.__Users[CradId]['Balance'] >= money:
                    Bank.__Users[CradId]['Balance'] -= money
                    print('當前卡號%s,當前取款金額%d,當前餘額%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
                else:
                    print('餘額不足')
            else:
                print('您輸入的金額有誤')
        else:
            print('卡號或者密碼有誤')

    def c_money(self,CradId,pwd,money):
        if Bank.check_User(CradId,pwd):
            #開始取錢
            if Bank.check_money(money):
                Bank.__Users[CradId]['Balance'] += money
                print('當前卡號%s,當前存款金額%d,當前餘額%d'%(CradId,money,Bank.__Users[CradId]['Balance']))
            else:
                print('您輸入的金額有誤')
        else:
            print('卡號或者密碼有誤')

    #查看個人詳細信息(需要卡號密碼驗證)
    def getInfo(self,CradId,pwd):
        if Bank.check_User(CradId, pwd):
            print('當前卡號%s,當前用戶名%s,當前餘額%d' % (CradId, Bank.__Users[CradId]['Username'], Bank.__Users[CradId]['Balance']))
        else:
            print('卡號或者密碼有誤')


joe = Bank('1001',111111,'joe',100)
joe2 = Bank('1001',111111,'joe',100)
Bank.nums()
print('_'*50)
Bank.get_Users()
print('_'*50)
joe.c_money('1001',111111,500)
print('_'*50)
joe.q_money('1001',111111,300)
print('_'*50)
joe.getInfo('1001',111111)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章