真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python練習(xí)01-對戰(zhàn)小游戲

Python練習(xí)01-對戰(zhàn)小游戲

鳳縣ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

        近期在學(xué)習(xí)Python,其中有一道練習(xí)題,寫一個對戰(zhàn)小游戲,隨機(jī)人物,隨機(jī)屬性(血量、攻擊)、指定我方人物出場順序,三局兩勝,代碼如下:

import time, random

# 需要的數(shù)據(jù)和變量放在開頭

player_list = [ '【鳴人】', '【佐助】', '【小櫻】', '【卡卡西】', '【凱】', '【寧次】','【小李】','【大和】']

enemy_list = [ '【帶土】', '【鼬】', '【飛段】', '【角都】', '【長門】', '【鬼鮫】','【蝎】','【迪達(dá)拉】']

players = random.sample(player_list, 3)

enemies = random.sample(enemy_list, 3)

player_info = {}

enemy_info = {}

# 隨機(jī)生成角色的屬性

def born_role():

    life = random.randint(100, 180)

    attack = random.randint(30, 50)

    return life, attack

# 生成和展示角色信息

def show_role():

    for i in range(3):

        player_info[players[i]] = born_role()

        enemy_info[enemies[i]] = born_role()

    # 展示我方的3個角色

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

    print('你的人物:')

    for i in range(3):

        print('%s  血量:%d  攻擊:%d'

              % (players[i], player_info[players[i]][0], player_info[players[i]][1]))

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

    print('電腦敵人:')

    # 展示敵方的3個角色

    for i in range(3):

        print('%s  血量:%d  攻擊:%d'

              % (enemies[i], enemy_info[enemies[i]][0], enemy_info[enemies[i]][1]))

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

    #input('請按回車鍵繼續(xù)。\n')  # 為了讓玩家更有控制感,可以插入類似的代碼來切分游戲進(jìn)程。

# 角色排序,選擇出場順序。

def order_role():

    global players

    order_dict = {}

    for i in range(3):

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

        order_dict[order] = players[i]

    players = []

    for i in range(1, 4):

        players.append(order_dict[i])

    print('\n我方角色的出場順序是:%s、%s、%s' % (players[0], players[1], players[2]))

    print('敵方角色的出場順序是:%s、%s、%s' % (enemies[0], enemies[1], enemies[2]))

# 角色PK

def pk_role():

    round = 1

    score = 0

    for i in range(3):  # 一共要打三局

        player_name = players[i]

        enemy_name = enemies[i]

        player_life = player_info[players[i]][0]

        player_attack = player_info[players[i]][1]

        enemy_life = enemy_info[enemies[i]][0]

        enemy_attack = enemy_info[enemies[i]][1]

        # 每一局開戰(zhàn)前展示戰(zhàn)斗信息

        print('\n----------------- 【第%d局】 -----------------' % round)

        print('玩家角色:%s vs 敵方角色:%s ' % (player_name, enemy_name))

        print('%s 血量:%d  攻擊:%d' % (player_name, player_life, player_attack))

        print('%s 血量:%d  攻擊:%d' % (enemy_name, enemy_life, enemy_attack))

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

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

        # 開始判斷血量是否都大于零,然后互扣血量。

        while player_life > 0 and enemy_life > 0:

            enemy_life = enemy_life - player_attack

            player_life = player_life - enemy_attack

            print('%s發(fā)起了攻擊,%s剩余血量%d' % (player_name, enemy_name, enemy_life))

            print('%s發(fā)起了攻擊,%s剩余血量%d' % (enemy_name, player_name, player_life))

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

            time.sleep(1)

        else:  # 每局的戰(zhàn)果展示,以及分?jǐn)?shù)score和局?jǐn)?shù)的變化。

            # 調(diào)用show_result()函數(shù),打印返回元組中的result。

            print(show_result(player_life, enemy_life)[1])

            # 調(diào)用show_result()函數(shù),完成計分變動。

            score += int(show_result(player_life, enemy_life)[0])

            round += 1

    input('\n點(diǎn)擊回車,查看比賽的最終結(jié)果\n')

    if score > 0:

        print('【最終結(jié)果:你贏了!】\n')

    elif score < 0:

        print('【最終結(jié)果:你輸了!】\n')

    else:

        print('【最終結(jié)果:平局!】\n')

# 返回單局戰(zhàn)果和計分法所加分?jǐn)?shù)。

def show_result(player_life, enemy_life):  # 注意:該函數(shù)要設(shè)定參數(shù),才能判斷單局戰(zhàn)果。

    if player_life > 0 and enemy_life <= 0:

        result = '\n敵人死翹翹了,你贏了!'

        return 1, result  # 返回元組(1,'\n敵人死翹翹了,你贏了!'),類似角色屬性的傳遞。

    elif player_life <= 0 and enemy_life > 0:

        result = '\n悲催,敵人把你干掉了!'

        return -1, result

    else:

        result = '\n哎呀,你和敵人同歸于盡了!'

        return 0, result

# (主函數(shù))展開戰(zhàn)斗流程

def main():

    show_role()

    order_role()

    pk_role()

# 啟動程序(即調(diào)用主函數(shù))

main()

運(yùn)行結(jié)果如下:

----------------- 角色信息 -----------------

你的人物:

【寧次】  血量:119  攻擊:31

【大和】  血量:128  攻擊:41

【佐助】  血量:145  攻擊:30

--------------------------------------------

電腦敵人:

【角都】  血量:176  攻擊:41

【鼬】  血量:129  攻擊:45

【飛段】  血量:140  攻擊:39

--------------------------------------------

你想將 【寧次】 放在第幾個上場?(輸入數(shù)字1~3)1

你想將 【大和】 放在第幾個上場?(輸入數(shù)字1~3)3

你想將 【佐助】 放在第幾個上場?(輸入數(shù)字1~3)2

我方角色的出場順序是:【寧次】、【佐助】、【大和】

敵方角色的出場順序是:【角都】、【鼬】、【飛段】

----------------- 【第1局】 -----------------

玩家角色:【寧次】 vs 敵方角色:【角都】 

【寧次】 血量:119  攻擊:31

【角都】 血量:176  攻擊:41

--------------------------------------------

請按回車鍵繼續(xù)。

【寧次】發(fā)起了攻擊,【角都】剩余血量145

【角都】發(fā)起了攻擊,【寧次】剩余血量78

--------------------------------------------

【寧次】發(fā)起了攻擊,【角都】剩余血量114

【角都】發(fā)起了攻擊,【寧次】剩余血量37

--------------------------------------------

【寧次】發(fā)起了攻擊,【角都】剩余血量83

【角都】發(fā)起了攻擊,【寧次】剩余血量-4

--------------------------------------------

悲催,敵人把你干掉了!

----------------- 【第2局】 -----------------

玩家角色:【佐助】 vs 敵方角色:【鼬】 

【佐助】 血量:145  攻擊:30

【鼬】 血量:129  攻擊:45

--------------------------------------------

請按回車鍵繼續(xù)。

【佐助】發(fā)起了攻擊,【鼬】剩余血量99

【鼬】發(fā)起了攻擊,【佐助】剩余血量100

--------------------------------------------

【佐助】發(fā)起了攻擊,【鼬】剩余血量69

【鼬】發(fā)起了攻擊,【佐助】剩余血量55

--------------------------------------------

【佐助】發(fā)起了攻擊,【鼬】剩余血量39

【鼬】發(fā)起了攻擊,【佐助】剩余血量10

--------------------------------------------

【佐助】發(fā)起了攻擊,【鼬】剩余血量9

【鼬】發(fā)起了攻擊,【佐助】剩余血量-35

--------------------------------------------

悲催,敵人把你干掉了!

----------------- 【第3局】 -----------------

玩家角色:【大和】 vs 敵方角色:【飛段】 

【大和】 血量:128  攻擊:41

【飛段】 血量:140  攻擊:39

--------------------------------------------

請按回車鍵繼續(xù)。

【大和】發(fā)起了攻擊,【飛段】剩余血量99

【飛段】發(fā)起了攻擊,【大和】剩余血量89

--------------------------------------------

【大和】發(fā)起了攻擊,【飛段】剩余血量58

【飛段】發(fā)起了攻擊,【大和】剩余血量50

--------------------------------------------

【大和】發(fā)起了攻擊,【飛段】剩余血量17

【飛段】發(fā)起了攻擊,【大和】剩余血量11

--------------------------------------------

【大和】發(fā)起了攻擊,【飛段】剩余血量-24

【飛段】發(fā)起了攻擊,【大和】剩余血量-28

--------------------------------------------

哎呀,你和敵人同歸于盡了!

點(diǎn)擊回車,查看比賽的最終結(jié)果

【最終結(jié)果:你輸了!】

Process finished with exit code 0


文章標(biāo)題:Python練習(xí)01-對戰(zhàn)小游戲
新聞來源:http://weahome.cn/article/ijgihd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部