python简单实现猫狗大战小游戏

2023-11-03

import random

class Dog:
    def __init__(self,breed,name,atk,self_life_value):
        self.breed = breed
        self.name = name
        self.atk = atk
        self.money = 0
        self.self_life_value = self_life_value
        self.equipment = []

    def attack(self,obj):

        obj.self_life_value -= self.atk
        self.money += 20
        r = random.randint(0,9)
        #出现暴击
        if r==8 or r==6 or r==4:
            obj.self_life_value -= 10
            x = self.atk+10
            self.money += 10
            print("\033[1;35m二愣子的攻击出现了暴击,直接砍掉死胖子%d的血\033[0m"%x)
            print("\033[1;35m二愣子打出暴击,额外奖励10元\033[0m")
        else:
            print("二愣子砍掉死胖子%d的血" % self.atk)


class Cat:
    def __init__(self,breed,name,atk,self_life_value):
        self.breed = breed
        self.name = name
        self.money = 0
        self.atk = atk
        self.self_life_value = self_life_value
        self.equipment = []

    def attack(self, obj):

        obj.self_life_value -= self.atk
        self.money += 20
        r = random.randint(0, 9)
        # 出现暴击
        if r == 6:
            obj.self_life_value -= 15
            x = self.atk+15
            self.money += 10
            print("\033[1;34m死胖子的攻击出现了暴击,直接砍掉二愣子%d的血\033[0m"%x)
            print("\033[1;34m死胖子打出暴击,额外奖励10元\033[0m")

        else:
            print("死胖子砍掉二愣子%d的血" % self.atk)

class Wepon:
    def __init__(self,name,price,atk,life_value):
        self.name = name
        self.price = price
        self.atk = atk
        self.life_value = life_value


    def equipment(self,obj):
        if obj.money < self.price:
            print("\033[1;33m穷鬼,没钱还想来玩?\033[0m")
        else:
            print("\033[1;31m恭喜%s喜提神级武器%s!!!\033[0m"%(obj.name,self.name))
            obj.self_life_value += self.life_value
            obj.atk += self.atk
            obj.money -= self.price

def switch_case(obj):

    huo = Wepon("火焰枪", 50, 20, 10)
    jin = Wepon("金箍棒", 70, 30, 10)
    tie = Wepon("铁布衫", 40, 5, 80)

    dict_wepon = {
        0 : tie,
        1 : huo,
        2 : jin
    }

    print("您有机会抽得一把武器,祝你好运哦")
    r = random.randint(0, 2)
    dict_wepon[r].equipment(obj)



if __name__ == '__main__':
    d = Dog("哈士奇", "二愣子", 35, 700)
    c = Cat("大橘", "死胖子", 60, 600)


    while d.self_life_value>0 and c.self_life_value>0:
        d.attack(c)
        if d.money>=40:
            print("二愣子要去买一把武器")
            switch_case(d)

        if c.self_life_value <= 0:
            print("二愣子咬死了死胖子")
            print("二愣子还有%d的血"%d.self_life_value)
            break

        c.attack(d)
        if c.money>=40:
            print("死胖子要去买一把武器")
            switch_case(c)

        if d.self_life_value <= 0:
            print("死胖子咬死了二愣子")
            print("死胖子还有%d的血" % c.self_life_value)
            break


 效果图

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python简单实现猫狗大战小游戏 的相关文章

  • 如何编写嵌套的 __init__.py 文件

    我正在努力解决嵌套问题 init py在我正在编写的Python包中 该包具有以下架构 module init py submodule1 init py source py submodule2 init py source py sub
  • 蟒蛇 | MySQL | AttributeError:模块“mysql.connector”没有属性“connect”

    我正在学习 python 中的一个新库 mysql 我尝试执行以下命令 import mysql connector mydb mysql connector connect host localhost user root passwd
  • 如何在多进程系统中实现锁定?

    我们正在并行运行许多詹金斯项目 我们使用 python 并且选择使用 pyenv 管理虚拟环境 不幸的是 pyenv 有一个众所周知的竞争条件 https github com yyuu pyenv issues 174 为了解决这个问题
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 多处理中的动态池大小?

    有没有办法动态调整multiprocessing Pool尺寸 我正在编写一个简单的服务器进程 它会产生工作人员来处理新任务 使用multiprocessing Process对于这种情况可能更适合 因为工作人员的数量不应该是固定的 但我需
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 是否可以从 Julia 调用 Python 函数并返回其结果?

    我正在使用 Python 从网络上抓取数据 我想使用这些数据在 Julia 中运行计算 是否可以在 Julia 中调用该函数并返回其结果 或者我最好直接导出到 CSV 并以这种方式加载数据 绝对地 看PyCall jl https gith
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • Matplotlib:如何有效地将大量线段着色为独立渐变

    Python 绘图库 如何有效地将大量线段着色为独立渐变 已经 阅读this https stackoverflow com questions 8500700 how to plot a gradient color line in ma
  • 创建上下文后将 jar 文件添加到 pyspark

    我正在笔记本上使用 pyspark 并且不处理 SparkSession 的创建 我需要加载一个包含一些我想在处理 rdd 时使用的函数的 jar 您可以使用 jars 轻松完成此操作 但在我的特定情况下我无法做到这一点 有没有办法访问sp
  • 协程从未被等待

    我正在使用一个简单的上下文管理器 其中包含一个异步循环 class Runner def init self self loop asyncio get event loop def enter self return self def e
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • 在Python上获取字典的前x个元素

    我是Python的新手 所以我尝试用Python获取字典的前50个元素 我有一本字典 它按值降序排列 k 0 l 0 for k in len dict d l 1 if l lt 51 print dict 举个小例子 dict d m
  • 运行 Python 单元测试,以便成功时不打印任何内容,失败时仅打印 AssertionError()

    我有一个标准单元测试格式的测试模块 class my test unittest TestCase def test 1 self tests def test 2 self tests etc 我的公司有一个专有的测试工具 它将作为命令行
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • 使用 for 循环创建一系列元组

    我已经搜索过 但找不到答案 尽管我确信它已经存在了 我对 python 很陌生 但我以前用其他语言做过这种事情 我正在以行形式读取数据文件 我想将每行数据存储在它自己的元组中 以便在 for 循环之外访问 tup i inLine wher
  • pandas 相当于 np.where

    np where具有向量化 if else 的语义 类似于 Apache Spark 的when otherwise数据帧方法 我知道我可以使用np where on pandas Series but pandas通常定义自己的 API
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157

随机推荐