首页 > 编程语言 >Python小游戏13——植物大战僵尸

Python小游戏13——植物大战僵尸

时间:2024-10-27 17:21:12浏览次数:6  
标签:13 name Python self plant zombie 小游戏 health def

  • 代码

 

import random

import time

 

# 植物类

class Plant:

    def __init__(self, name, health):

        self.name = name

        self.health = health

 

    def is_alive(self):

        return self.health > 0

 

# 僵尸类

class Zombie:

    def __init__(self, name, health):

        self.name = name

        self.health = health

 

    def is_alive(self):

        return self.health > 0

 

# 游戏类

class Game:

    def __init__(self):

        self.plants = []

        self.zombies = []

        self.turn = 0

 

    def add_plant(self, plant):

        self.plants.append(plant)

 

    def add_zombie(self, zombie):

        self.zombies.append(zombie)

 

    def start(self):

        while self.plants and self.zombies:

            print(f"\nTurn {self.turn}:")

            self.plant_turn()

            self.zombie_turn()

            self.turn += 1

 

    def plant_turn(self):

        for plant in self.plants:

            if random.random() < 0.5: # 50% chance to attack

                target = random.choice(self.zombies)

                target.health -= 1

                print(f"{plant.name} attacks {target.name} for 1 damage.")

 

    def zombie_turn(self):

        for zombie in self.zombies:

            if random.random() < 0.5: # 50% chance to attack

                target = random.choice(self.plants)

                target.health -= 1

                print(f"{zombie.name} attacks {target.name} for 1 damage.")

 

    def end(self):

        print("Game Over")

        if self.plants:

            print("Plants win!")

        else:

            print("Zombies win!")

 

# 创建游戏实例

game = Game()

 

# 添加植物和僵尸

game.add_plant(Plant("Sunflower", 3))

game.add_plant(Plant("Peashooter", 2))

game.add_zombie(Zombie("Basic Zombie", 3))

game.add_zombie(Zombie("Flag Zombie", 4))

 

# 开始游戏

game.start()

 

# 游戏结束

game.end()

4cf2f3b439324351a196bf7edc561465.png

  • 知识点总结
  • 1. 类和对象:
  • 使用类( class )来定义对象的蓝图。
  • 创建对象(实例化)来表示游戏中的实体,如植物和僵尸。
  • 2. 属性:
  • 通过在类的构造函数( __init__ )中定义属性来存储每个对象的状态,例如植物的名称和健康状态。
  • 3. 方法:
  • 在类中定义方法来表示对象的行为,例如检查植物或僵尸是否存活。
  • 4. 列表:
  • 使用列表( list )来存储游戏中的植物和僵尸对象。
  • 5. 循环:
  • 使用 while 循环来控制游戏的回合,直到游戏结束条件满足。
  • 6. 条件语句:
  • 使用 if 语句来决定游戏逻辑,例如判断植物或僵尸是否存活。
  • 7. 随机性:
  • 使用 random 模块来增加游戏的不确定性,例如决定植物和僵尸是否在每个回合攻击。
  • 8. 函数:
  • 定义函数来封装游戏逻辑,例如 plant_turn 和 zombie_turn 来处理每个回合的行动。
  • 9. 输入/输出:
  • 使用 print 函数来输出游戏状态和信息,使用 input 函数(虽然在这个示例中没有使用)来获取用户输入。
  • 10. 模块化:
  • 将游戏逻辑封装在 Game 类中,使得代码更加组织化和易于维护。
  • 11. 控制流:
  • 使用控制流语句(如 while 循环和 if 条件语句)来控制游戏的流程。
  • 12. 游戏结束条件:
  • 定义游戏结束的条件,例如当所有植物或所有僵尸被消灭时。

 

标签:13,name,Python,self,plant,zombie,小游戏,health,def
From: https://blog.csdn.net/cxh666888_/article/details/143225239

相关文章

  • Python小游戏14——雷霆战机
     首先,你需要确保安装了Pygame库。如果你还没有安装,可以使用pip来安装: bashpipinstallpygame代码如下:pythonimportpygameimportsysimportrandom #初始化Pygamepygame.init() #设置屏幕大小screen_width=800screen_height=600screen=pygam......
  • Python TCP通讯教程
    文章目录一、TCP协议简介二、PythonTCP通讯基础三、TCP服务器端的实现四、TCP客户端的实现五、TCP通讯的扩展功能六、示例代码七、注意事项一、TCP协议简介TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。T......
  • Python 面向对象编程
    文章目录1.类(Class)和对象(Object)2.封装(Encapsulation)3.继承(Inheritance)4.多态(Polymorphism)5.抽象(Abstraction)面向对象编程(Object-OrientedProgramming,OOP)是Python编程中的一种范式,它允许你定义类(Class)和对象(Object),并通过这些类和对象来组织你的代码。OOP的核心......
  • 一个包含了超过 200 个实用脚本的 Python 脚本库,如文件管理、网络操作、图像处理、文
    前言在日常的工作和生活中,我们经常会遇到一些重复性的任务,如文件管理、网络cao作、图像处理、文本处理等。这些任务虽然简单,但如果频繁手动cao作,不仅耗时耗力,还容易出错。现有的软件虽然能处理一部分问题,但往往功能单一,无法满足多样化的需求。那么,有没有一款软件能够处理这种......
  • 题解:P2013 无线电测向
    P2013无线电测向题目省流:求两条直线交点坐标使用样例数据作出下图:(图片来自@_MRCMRC_)图中红线和紫线为灯塔与船的连线,蓝线为船的航线。由输入可以知道灯塔A、B相对于\(x\)正半轴的角度\(\theta_A\)、\(\theta_B\)(逆时针方向)和它们分别的坐标\((x_A,y_A)\)、\((x_B,......
  • Python装饰器 - 具体讲解
    Python装饰器是一种非常有用的功能,它允许我们以不修改原有函数代码的方式,扩展或增强函数的行为。装饰器本质上是一个函数,它接收一个函数作为参数并返回一个新的函数。下面我将详细讲解Python装饰器的概念、用法和实现。1.装饰器的基本概念装饰器的基本语法如下:defdecor......
  • 2024-2025-1(20241321)《计算机基础与程序设计》第五周学习总结
    这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<了解并学习AI功能,回顾一周课程心得>作业正文...本博客链接https://www.cnblogs.com/guchua......
  • python:如何判断一个数是否为素数
    要判断一个数是否为素数,可以使用简单的算法。素数是大于1的自然数,且只能被1和自身整除。下面是一个用Python实现的函数来判断一个数是否为素数:###Python代码示例```pythondefis_prime(n):  ifn<=1:    returnFalse  ifn<=3:    return......
  • 2024-2025-1 20241312 《计算机基础与程序设计》第五周学习总结
    |这个作业属于哪个课程|<班级的链接>(2024-2025-1-计算机基础与程序设计)||这个作业要求在哪里|<作业要求的链接>(2024-2025-1计算机基础与程序设计第五周作业||这个作业的目标|Pep/9虚拟机机器语言与汇编语言算法与伪代码测试:黑盒,白盒||作业正文|https://www.cnblogs.com/son......
  • python的开发环境有哪三个
    Python开发环境常见于三种:1、IDLE、2、PyCharm、3、JupyterNotebook。其中,PyCharm因其功能强大和易用性,在开发者中使用尤为广泛。详细分析PyCharm的特点:PyCharm是JetBrains公司开发的一款专门用于Python语言的集成开发环境(IDE)。它拥有代码自动完成、项目管理、强大的调试功能、......