小游戲

import random

import time

# 創(chuàng)建一個類,可實例化成具體的游戲角色

class Role:

? ? def __init__(self, name='【角色】'):? # 把角色名作為默認(rèn)參數(shù)

? ? ? ? self.name = name

? ? ? ? self.life = random.randint(100,150)

? ? ? ? self.attack = random.randint(30,50)

# 創(chuàng)建3個子類,可實例化為3個不同的職業(yè)

class Knight(Role):

? ? def __init__(self, name='【圣光騎士】'):? # 把子類角色名作為默認(rèn)參數(shù)

? ? ? ? Role.__init__(self,name)? # 利用了父類的初始化函數(shù)

? ? ? ? self.life = self.life*5? # 騎士有5份血量

? ? ? ? self.attack = self.attack*3? ? # 騎士有3份攻擊力

? ? # 職業(yè)克制關(guān)系

? ? def fight_buff(self, opponent,str1,str2):

? ? ? ? if opponent.name? == '【暗影刺客】':

? ? ? ? ? ? self.attack = int(self.attack * 1.5)

? ? ? ? ? ? print('『%s』【圣光騎士】對 『%s』【暗影刺客】說:“讓無盡光芒制裁你的墮落!”'%(str1, str2))

class Assassin(Role):

? ? def __init__(self, name='【暗影刺客】'):

? ? ? ? Role.__init__(self,name)

? ? ? ? self.life = self.life*3

? ? ? ? self.attack = self.attack*5

? ? # 職業(yè)克制關(guān)系

? ? def fight_buff(self, opponent,str1,str2):

? ? ? ? if opponent.name? == '【精靈弩手】':

? ? ? ? ? ? self.attack = int(self.attack * 1.5)

? ? ? ? ? ? print('『%s』【暗影刺客】對 『%s』【精靈弩手】說:“主動找死,就別怪我心狠手辣。”'%(str1, str2))

class Bowman(Role):

? ? def __init__(self, name='【精靈弩手】'):

? ? ? ? Role.__init__(self,name)

? ? ? ? self.life = self.life*4

? ? ? ? self.attack = self.attack*4

? ? # 職業(yè)克制關(guān)系

? ? def fight_buff(self, opponent,str1,str2):

? ? ? ? if opponent.name? == '【圣光騎士】':

? ? ? ? ? ? self.attack = int(self.attack * 1.5)

? ? ? ? ? ? print('『%s』【精靈弩手】對 『%s』【圣光騎士】說:“騎著倔驢又如何?你都碰不到我衣服?!?%(str1, str2))

# 創(chuàng)建一個類,可生成3V3并展示:可分為:歡迎語→隨機(jī)生成→展示角色

class Game():

? ? def __init__(self):

? ? ? ? self.players = []? # 存玩家順序

? ? ? ? self.enemies = []? # 存敵人順序

? ? ? ? self.score = 0? # 比賽積分

? ? ? ? self.i = 0? # 記輪次

? ? ? ? # 依次執(zhí)行以下函數(shù)

? ? ? ? self.game_start()? # 歡迎語

? ? ? ? self.born_role()? # 隨機(jī)生成6個角色

? ? ? ? self.show_role()? # 展示角色

? ? ? ? self.order_role()? # 排序并展示

? ? ? ? self.pk_role()? # 讓雙方 Pk 并展示結(jié)果

? ? ? ? self.show_result()? # 展示最終結(jié)局

? ? # 歡迎語

? ? def game_start(self):

? ? ? ? print('------------ 歡迎來到“煉獄角斗場” ------------')

? ? ? ? print('在昔日的黃昏山脈,奧盧帝國的北境邊界上,有傳說中的“煉獄角斗場”。')

? ? ? ? print('鮮血與戰(zhàn)斗是角斗士的歸宿,金錢與榮耀是角斗士的信仰!')

? ? ? ? print('今日,只要你【你的隊伍】能取得勝利,你將獲得一筆夠花500年的財富。')

? ? ? ? time.sleep(2)

? ? ? ? print('將隨機(jī)生成【你的隊伍】和【敵人隊伍】!')

? ? ? ? input('\n狹路相逢勇者勝,請按任意鍵繼續(xù)。\n')


? ? # 隨機(jī)生成6個角色

? ? def born_role(self):

? ? ? ? for i in range(3):

? ? ? ? ? ? self.players.append(random.choice([Knight(),Assassin(),Bowman()]))

? ? ? ? ? ? self.enemies.append(random.choice([Knight(),Assassin(),Bowman()]))

? ? # 展示角色

? ? def show_role(self):

? ? ? ? print('----------------- 角色信息 -----------------')

? ? ? ? print('你的隊伍:')

? ? ? ? for i in range(3):

? ? ? ? ? ? print( '『我方』%s 血量:%s? 攻擊:%s'%

? ? ? ? ? ? (self.players[i].name,self.players[i].life,self.players[i].attack))

? ? ? ? print('--------------------------------------------')

? ? ? ? print('敵人隊伍:')

? ? ? ? for i in range(3):

? ? ? ? ? ? print('『敵方』%s 血量:%s? 攻擊:%s'%

? ? ? ? ? ? (self.enemies[i].name,self.enemies[i].life,self.enemies[i].attack))

? ? ? ? print('--------------------------------------------')

? ? ? ? input('請按回車鍵繼續(xù)。\n')

? ? # 排序并展示

? ? def order_role(self):

? ? ? ? order_dict = {}

? ? ? ? for i in range(3):

? ? ? ? ? ? order = int(input('你想將 %s 放在第幾個上場?(輸入數(shù)字1~3)'% self.players[i].name))

? ? ? ? ? ? order_dict[order] = self.players[i]

? ? ? ? self.players = []

? ? ? ? for i in range(1,4):

? ? ? ? ? ? self.players.append(order_dict[i])

? ? ? ? print('\n你的隊伍出場順序是:%s、%s、%s'

? ? ? ? %(self.players[0].name,self.players[1].name,self.players[2].name))

? ? ? ? print('敵人隊伍出場順序是:%s、%s、%s'

? ? ? ? %(self.enemies[0].name,self.enemies[1].name,self.enemies[2].name))

? ? # 讓雙方 Pk 并展示結(jié)果

? ? def pk_role(self):

? ? ? ? for i in range(3):

? ? ? ? ? ? print('\n----------------- 【第%s輪】 -----------------' % (i+1))

? ? ? ? ? ? # 每一局開戰(zhàn)前加buff

? ? ? ? ? ? self.players[i].fight_buff(self.enemies[i],'我方','敵方')

? ? ? ? ? ? self.enemies[i].fight_buff(self.players[i],'敵方','我方')

? ? ? ? ? ? input('\n戰(zhàn)斗雙方準(zhǔn)備完畢,請按回車鍵繼續(xù)。')

? ? ? ? ? ? print('--------------------------------------------')


? ? ? ? ? ? while self.players[i].life >0 and self.enemies[i].life>0:

? ? ? ? ? ? ? ? self.enemies[i].life -= self.players[i].attack

? ? ? ? ? ? ? ? self.players[i].life -= self.enemies[i].attack

? ? ? ? ? ? ? ? print('我方%s 發(fā)起了攻擊,敵方%s 剩余血量 %s'%

? ? ? ? ? ? ? ? (self.players[i].name,self.enemies[i].name,self.enemies[i].life))

? ? ? ? ? ? ? ? print('敵方%s 發(fā)起了攻擊,我方%s 剩余血量 %s'%

? ? ? ? ? ? ? ? (self.enemies[i].name,self.players[i].name,self.players[i].life))

? ? ? ? ? ? ? ? print('--------------------------------------------')

? ? ? ? ? ? ? ? time.sleep(1)

? ? ? ? ? ? if self.players[i].life <= 0 and self.enemies[i].life> 0:

? ? ? ? ? ? ? ? print('\n很遺憾,我方%s 掛掉了!'% (self.players[i].name))

? ? ? ? ? ? ? ? self.score -= 1

? ? ? ? ? ? elif self.players[i].life >0 and self.enemies[i].life<= 0:

? ? ? ? ? ? ? ? print('\n恭喜,我方%s 活下來了。'% (self.players[i].name))

? ? ? ? ? ? ? ? self.score += 1

? ? ? ? ? ? else:

? ? ? ? ? ? ? ? print('\n我的天,他們倆都死了啊!')

? ? # 展示最終結(jié)局

? ? def show_result(self):

? ? ? ? input('\n請按回車查看最終結(jié)果。\n')

? ? ? ? if self.score >0:

? ? ? ? ? ? print('【最終結(jié)果】\n你贏了,最終的財寶都?xì)w你了!')

? ? ? ? elif self.score == 0:

? ? ? ? ? ? print('【最終結(jié)果】\n你沒有勝利,但也沒有失敗,在夜色中灰溜溜離開了奧盧帝國。')

? ? ? ? else:

? ? ? ? ? ? print('【最終結(jié)果】\n你輸了。煉獄角斗場又多了幾具枯骨。')

game = Game()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,878評論 0 10
  • 這次呢,讓我們重溫一下兒時的樂趣,用Python做一個飛機(jī)大戰(zhàn)的小游戲。接下來,讓我們一起走進(jìn)“飛機(jī)大戰(zhàn)”。 一....
    HDhandi閱讀 1,991評論 1 4
  • 這星期長見識了,雖然每星期都在學(xué)習(xí)新的內(nèi)容,都在長見識,但是這次挺驚訝的,竟然可以用python,...
    要你何用殺了算了閱讀 740評論 0 1
  • 有些事明明可以一個人做的,就不要麻煩別人了。每個人有每個人各自的忙碌,都幾乎無暇顧及其他事情,就請不要打擾他們。一...
    白色小豬閱讀 195評論 1 1
  • 文/孤鳥差魚 青蛙長在樹上 愛好藤蔓的富饒
    孤鳥差魚閱讀 310評論 2 4

友情鏈接更多精彩內(nèi)容