欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實現(xiàn)格斗小游戲的示例代碼

 更新時間:2023年03月02日 08:30:11   作者:木木子學python  
格斗游戲,曾經(jīng)是街機廳里最火爆的游戲之一,甚至可以把“之一”去掉,那個年代的格斗游戲就是街機游戲的王。本文就來用Python實現(xiàn)一個簡單的格斗游戲,感興趣的可以了解一下

前言

格斗游戲,曾經(jīng)是街機廳里最火爆的游戲之一,甚至可以把“之一”去掉,那個年代的格斗游戲

就是街機游戲的王。

如今的影響力已經(jīng)大不如前,已經(jīng)基本上消亡了。今天讓小編重拾回憶,給大家做一款簡單版本的格斗游戲吧

歡迎大家來到煉獄角斗場(Python代碼文字版本的小游戲哈)

一、簡易版本格斗

1)代碼展示

import time
import random
lose_player = 0
lose_enemy = 0
for i in range(3):
    print('-'*10+'第'+str(i+1)+'局'+'-'*10)
    hp_player = random.randint(100,181)
    attack_player = random.randint(30,51)
    hp_enemy = random.randint(100,181)
    attack_enemy = random.randint(30,51)
    print('【玩家血量】:',hp_player,'【玩家戰(zhàn)力】:',attack_player)
    print('【敵人血量】:',hp_enemy,'【敵人戰(zhàn)力】:',attack_enemy)
    print('-'*30)
    time.sleep(1.5)
    while hp_player > 0 and hp_enemy > 0:
        hp_player = hp_player - attack_enemy
        hp_enemy = hp_enemy - attack_player
        print('你發(fā)起了攻擊,【敵人】剩余血量:',hp_enemy)
        print('敵人向你發(fā)起了攻擊,【玩家】的血量剩余:',hp_player)
        print('-'*30)
        time.sleep(1.5)
    if hp_enemy <= 0 and hp_player < 0:
        print('玩家和敵人同歸于盡了!')    
    elif hp_enemy < 0 and hp_player >= 0:
        print('歐耶!敵人被玩家干掉了!')
        lose_enemy += 1
    elif hp_player < 0 and hp_enemy > 0:
        print('悲催,玩家被敵人干掉了!')
        lose_player += 1
    print('-'*30)
    time.sleep(1.5)
    if lose_enemy == 2:
        print('【最終結果:玩家獲勝!】')
        break
    elif lose_player == 2:
        print('【最終結果:你輸了!】')
        break
else:
    if lose_enemy > lose_player:
        print('【最終結果:玩家獲勝!】')
    elif lose_player > lose_enemy:
        print('【最終結果:玩家輸了!】')
    else:
        print('【最終結果:平局】')

2)效果展示

這程序針對我....罵罵咧咧。

二、煉獄角斗場格斗

1)代碼展示

import time
import random

class Role():
    def __init__(self,name = '|角色|'):
        self.name = name
        self.life = random.randint(100,150)
        self.attack = random.randint(30,50)

class Sains_knight(Role):
    def __init__(self,name = '|圣光騎士|'):
        Role.__init__(self,name)
        self.life = 5 * self.life
        self.attack = 3 * self.attack

    def fight_buff(self,enemy):
        if enemy == '|暗影刺客|':
            self.attack *= 1.5
        else:
            self.attack = self.attack

class Shadow_Assassin(Role):
    def __init__(self,name = '|暗影刺客|'):
        Role.__init__(self, name)
        self.life = 3 * self.life
        self.attack = 5 * self.ttack

    def fight_buff(self,enemy):
        if enemy == '|精靈弩手|':
            self.attack *= 1.5
        else:
            self.attack = self.attack

class Faerie_Bowman(Role):
    def __init__(self,name = '|精靈弩手|'):
        Role.__init__(self, name)
        self.life = 4 * self.life
        self.attack = 4 * self.attack

    def fight_buff(self,enemy):
        if enemy == '|圣光騎士|':
            self.attack *= 1.5
        else:
            self.attack = self.attack

class GAME():
    def __init__(self):
        self.players = []
        self.enemies = []
        self.show_title()
        self.show_role()
        self.order_role()
        self.pk_role()

    # 隨機生成角色的屬性
    def born_role(self):
        for i in range(3):
            self.players.append(random.choice([Sains_knight(),Shadow_Assassin(),Faerie_Bowman()]))
            self.enemies.append(random.choice([Sains_knight(),Shadow_Assassin(),Faerie_Bowman()]))

    # 生成和展示角色信息
    def show_role(self):
        self.born_role()
        # 展示我方的3個角色
        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('敵人隊伍:')

        # 展示敵方的3個角色
        for i in range(3):
            print('|敵方|%s  血量:%s  攻擊:%s'
                  % (self.enemies[i].name, self.enemies[i].life, self.enemies[i].attack))
        print('--------------------------------------------')
        input('請按回車鍵繼續(xù)。')  # 為了讓玩家更有控制感,可以插入類似的代碼來切分游戲進程。

    # 角色排序,選擇出場順序。
    def order_role(self):
        order_dict = {}
        for i in range(3):
            order = int(input('你想讓{}第幾個上場?(輸入數(shù)字1-3)'.format(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
    def pk_role(self):
        round = 1
        score = 0
        for i in range(3):  # 一共要打三局
            player_name = self.players[i].name
            enemy_name = self.enemies[i].name
            #判斷敵人是否對其有克制效果,有則進行攻擊加成
            self.players[i].fight_buff(enemy_name)
            self.enemies[i].fight_buff(player_name)
            player_life = self.players[i].life
            player_attack = self.players[i].attack
            enemy_life = self.enemies[i].life
            enemy_attack = self.enemies[i].attack
            # 每一局開戰(zhàn)前展示戰(zhàn)斗信息
            print('\n----------------- 【第%s局】 -----------------' % round)
            print('玩家角色:%s vs 敵方角色:%s ' % (player_name, enemy_name))
            print('%s 血量:%s  攻擊:%s' % (player_name, player_life, player_attack))
            print('%s 血量:%s  攻擊:%s' % (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剩余血量%s' % (player_name, enemy_name, enemy_life))
                print('%s發(fā)起了攻擊,%s剩余血量%s' % (enemy_name, player_name, player_life))
                print('--------------------------------------------')
                time.sleep(1)
            else:  # 每局的戰(zhàn)果展示,以及分數(shù)score和局數(shù)的變化。
                # 調(diào)用show_result()函數(shù),打印返回元組中的result。
                print(self.show_result(player_life,enemy_life)[1])
                # 調(diào)用show_result()函數(shù),完成計分變動。
                score += int(self.show_result(player_life,enemy_life)[0])
                round += 1
        input('\n點擊回車,查看比賽的最終結果\n')

        if score > 0:
            print('【最終結果:你贏了!】\n')
        elif score < 0:
            print('【最終結果:你輸了!】\n')
        else:
            print('【最終結果:平局!】\n')

    # 返回單局戰(zhàn)果和計分法所加分數(shù)。
    def show_result(self,player_life, enemy_life):  # 注意:該函數(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
    #展示標題
    def show_title(self):
        print('''--------------歡迎來到煉獄角斗場-----------------
在昔日的黃昏山脈,陸奧帝國的北境邊界上,有傳說中的‘煉獄角斗場'!
鮮血與戰(zhàn)斗是角斗士的歸宿,金錢與榮耀是角斗士的信仰!
今日,只要【你的隊伍】能取得勝利,你將獲得一筆夠花500的財富!
將隨機生成【你的隊伍】和【敵人隊伍】!''')
        input('\n狹路相逢勇者勝,話不投機半句多(按任意鍵繼續(xù)...)')

GAME_START = GAME()

2)效果展示

以上就是基于Python實現(xiàn)格斗小游戲的示例代碼的詳細內(nèi)容,更多關于Python格斗游戲的資料請關注腳本之家其它相關文章!

相關文章

  • Pycharm搭建一個Django項目的方法步驟

    Pycharm搭建一個Django項目的方法步驟

    本文主要介紹了Pycharm搭建一個Django項目的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • python TKinter彈出式菜單的實例方法

    python TKinter彈出式菜單的實例方法

    在本篇文章里小編給大家整理了一篇關于python TKinter彈出式菜單的實例方法及相關代碼,有需要的朋友們可以學習下。
    2021-10-10
  • python利用print()打印田字格練習題詳解

    python利用print()打印田字格練習題詳解

    print在 Python3.x是一個函數(shù),但在Python2.x版本不是一個函數(shù),只是一個關鍵字,這篇文章主要給大家介紹了關于python利用print()打印田字格練習題的相關資料,需要的朋友可以參考下
    2024-05-05
  • python創(chuàng)建一個最簡單http webserver服務器的方法

    python創(chuàng)建一個最簡單http webserver服務器的方法

    這篇文章主要介紹了python創(chuàng)建一個最簡單http webserver服務器的方法,實例分析了Python操作http創(chuàng)建服務器端的相關技巧,需要的朋友可以參考下
    2015-05-05
  • Python機器學習NLP自然語言處理基本操作電影影評分析

    Python機器學習NLP自然語言處理基本操作電影影評分析

    本文是Python機器學習NLP自然語言處理系列文章,帶大家開啟一段學習自然語言處理 (NLP) 的旅程。本篇文章主要學習NLP自然語言處理基本操電影影評分析
    2021-09-09
  • Python中os模塊的12種用法總結

    Python中os模塊的12種用法總結

    OS?(?Operating?System?操作系統(tǒng)?)?操作系統(tǒng)模塊;它是屬于python的標準庫,常用于處理文件和目錄(文件夾)的操作。本文為大家總結了這個模塊的12種用法,希望有所幫助
    2022-08-08
  • Python+Selenium定位不到元素常見原因及解決辦法(報:NoSuchElementException)

    Python+Selenium定位不到元素常見原因及解決辦法(報:NoSuchElementException)

    這篇文章主要介紹了Python+Selenium定位不到元素常見原因及解決辦法(報:NoSuchElementException),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • python計算n的階乘的方法代碼

    python計算n的階乘的方法代碼

    在本篇文章里小編給各位整理的是關于python計算n的階乘的相關知識點,需要的朋友們參考下。
    2019-10-10
  • Python爬蟲逆向分析某云音樂加密參數(shù)的實例分析

    Python爬蟲逆向分析某云音樂加密參數(shù)的實例分析

    這篇文章主要介紹了Python爬蟲逆向分析某云音樂加密參數(shù),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python實例練習逆序輸出字符串講解

    Python實例練習逆序輸出字符串講解

    今天小編就為大家分享一篇關于Python字符串逆序輸出的實例講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2022-05-05

最新評論