python从abandon到放弃,最后我靠植物大战僵尸成功入门

Python制作植物大战僵尸,赶快来试试吧 首页挑选植物页面战斗页面战斗胜利页面本篇文章到这就写完啦,感兴趣的朋友赶紧去试试吧对文章有问题的,或者有其他关于python的问题,可以在评论区留言或者私信我哦。 阅读详情

前言

唠点嗑~

我大抵是倦了,在B站看python教学视频,横竖学不下去,从print到for循环再到if else语句,歪歪扭扭整个屏幕都写着放弃。为了不放弃,我从网上下载了植物大战僵尸的python代码,装环境,运行代码,然后我玩了一晚上植物大战僵尸,哈哈哈,不小心就入迷了。第二天晚上,我下定决心一定要读懂它的代码,然后2个半小时过去了,我只看了它的main.py文件,并且为了记录我是真的读懂了,我写下了这篇读后感,这也算是一个好的开始吧,总算没有想放弃的念头了。

一、main.py文件

#main.py
import pygame as pg 
from source.main import main

if __name__=='__main__':
    main()
    pg.quit()

1、import as, from import 区别

1)、import
import是最简单的引入包的方式,例如:
import pickle :引入pickle包
import pygame: 引入pygame包

2)、import A as B
引入A包,并给引入的A包取名为B,例如:
import pygame as pg:引入pygame包,取别名为pg

3)、from A import B
从A中引入B,例如:
from source.mian import main:从source包中的main类引入main方法
from os.path import join :从 os包中的path类中引入 join 方法
from os import makedirs, unlink, sep :从os包中引入 makedirs.unlink,sep类
from os import listdir, getcwd :从os包中引入 listdir, getcwd 类

2、if name==main:
__name__表示当前模块的名字,是一个内置变量,当当前py文件直接运行时,name__的值为__main,当作为模块被其他模块引用时,__name__的值为模块的文件名。
例如:直接运行test.py文件,name__的值为__main

在这里插入图片描述
在这里插入图片描述
若作为模块被其他模块引用,则test.py模块的__name__值为test:

在这里插入图片描述
在这里插入图片描述
众所周知,py文件是可以直接运行的。

假设我们有一个const.py文件,内容如下:

PI = 3.14

def main():
   print("PI:", PI)

main()
···
运行结果:PI: 3.14
···

如果const.py模块被area.py引用:

#area.py
from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

main()

'''
运行结果:
PI: 3.14
round area:  12.56
'''

我们看到const.py中的main函数也被运行了,实际上我们不希望它被运行,这时if name == 'main’派上了用场,我们把const.py改一下,添加if name == “main”:

#const.py
PI = 3.14

def main():
    print("PI:", PI)

if __name__ == "__main__":
    main()
···
const.py运行结果:PI: 3.14
···
#area.py
from const import PI

def calc_round_area(radius):
    return PI * (radius ** 2)

def main():
    print("round area: ", calc_round_area(2))

main()

'''
area.py运行结果:
round area:  12.56
'''

所以,就和其他C,C++,JAVA等语言一样,if name == 'main’相当于Python模拟的程序入口。

好了,时间到了,喜欢的朋友点关注,跟我从零基础学习python。

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案

包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈


在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。↓↓↓
或者

【点此链接】领取

好文推荐

了解python的前景:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127194835

了解python的兼职副业:https://blog.youkuaiyun.com/SpringJavaMyBatis/article/details/127196603

植物大战僵尸Python版,附带源码注解 在PythonPlantsVsZombies-master\source\data,我们可以进行自定义配置,例如僵尸的位置和时间,背景信息。 阅读详情

相关推荐

python植物大战僵尸源码教学

大家好,给大家分享一下一个有趣的事情,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!下面给大家带来python实现植物大战僵尸的的源码分享,只含有冒险模式。

wenangou的博客 4562

python实现植物大战僵尸

植物大战僵尸是一款十分经典的游戏,在github上就有python版的开源代码()打开后可以看见有六个版本,在这里我选的是第一个版本。太阳花,豌豆射手,寒冰射手,坚果,樱桃炸弹。新增加植物:双重豌豆射手,三重豌豆射手,食人花 ,小喷菇,土豆地雷,倭瓜。

xyx2023的博客 6778

python开发植物大战僵尸游戏

开发思路 完整项目地址:https://github.com/371854496/pygame 觉得还OK的话,点下Star,作者不易,thank you! 1.引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。 #1引入需要的模块 import pygame import random #1配置图片地址 IMAGE...

qq_38978654的博客 1万+

Python实现植物大战僵尸

大二暑期python项目,使用pygame编写,仅实现了冒险模式一关及我是僵尸,均使用原版贴图和音效,并尽量完整复刻了动画效果

Loyce__的博客 6689

用Python给我写一个植物大战僵尸的代码

我可以用 Python 为您编写一个简单的植物大战僵尸游戏。请注意,这只是一个简单的版本,没有图形界面和音效,仅用于演示游戏的基本原理。 # Plant vs Zombies class Plant: def __init__(self, name, power): self.name = name self.power = power class Zo...

weixin_35751412的博客 2680

Python实现 植物大战僵尸

定义植物、僵尸、子弹等类的属性和方法。首先,你可以定义一个基类,用于包含所有游戏对象共有的属性和方法。但在这个例子中,我们直接定义植物和僵尸类。python复制代码# 可以添加其他属性,如攻击力、生命值等# 在这里添加植物更新逻辑,但在这个例子中,植物不移动pass# 在这里添加发射子弹的逻辑passpython复制代码self.direction = pygame.math.Vector2(1, 0) # 假设僵尸向右移动self.speed = 2 # 僵尸移动速度。

zgw555555的专栏 3681

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

植物类# 僵尸类# 游戏类")else:")# 创建游戏实例# 添加植物和僵尸# 开始游戏# 游戏结束game.end()

cxh666888_的博客 2567

Ubuntu服务器通过IPV6端口转发搭建幻兽帕鲁私服实战

本文详细介绍了在Ubuntu服务器上通过IPV6端口转发搭建幻兽帕鲁私服的完整教程。针对只有公网IPV6地址的服务器环境,提供了从硬件检查、端口转发工具配置到游戏服务器安装的全流程解决方案,帮助玩家轻松实现多人联机游戏体验。

weixin_30652491的博客 490

Python版【植物大战僵尸 +源码】

今天给大家推荐一个Gtihub开源项目:PythonPlantsVsZombies,翻译成中就是植物大战僵尸。《植物大战僵尸》是一款极富策略性的小游戏。可怕的僵尸即将入侵,每种僵尸都有不同的特点,例如铁桶僵尸拥有极强的抗击打能力,矿工僵尸可以挖地道绕过种植在土壤表面的植物等。玩家防御僵尸的方式就是栽种植物。49种植物每种都有不同的功能,例如樱桃炸弹可以和周围一定范围内的所有僵尸同归于尽,而食人花可以吃掉最靠近自己的一只僵尸。玩家可以针对不同僵尸的弱点来合理地种植植物,这也是胜利的诀窍。

鱼干的博客 10万+

简易电梯控制系统设计(两层楼)(

(电子科技大学 数字系统实验二 结课验收项目 ) 题目要求:

m0_48801027的博客 1万+

OpenClaw插件开发指南:扩展AI智能体的无限可能

OpenClaw插件开发指南介绍了如何扩展AI智能体的功能。该插件系统支持多种类型(功能、集成、工具、界面、工作流插件),具有模块化、低耦合等优势。开发环境需要安装SDK和工具包,通过plugin.json配置插件信息,主文件实现核心功能。API提供智能体管理、任务执行等接口,示例演示了文本处理插件的创建流程。开发者可基于此框架灵活扩展OpenClaw的能力。

一键难忘的博客 562

用Python制作小游戏之‘植物大战僵尸’(一)

用Python制作小游戏之‘植物大战僵尸’(一)

Sjm05的博客 2779

YOLOv8改进 | 注意力篇 | YOLOv8引入EMAttention(EMA)注意力

具体来说,除了对全局信息进行编码以重新校准每个并行分支中的通道权重之外,还通过跨维度交互来进一步聚合两个并行分支的输出特征,以捕获像素级的成对关系。3. 跨空间学习:除了在每个并行子网络中建立局部的跨通道交互外,EMA模块还通过跨空间学习方法融合了两个并行子网络的输出特征图。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 896

【Python小游戏】植物大战僵尸的实现与源码分享

地图搭建(部分) 定义植物类 (部分) 定义僵尸类(部分) 游戏运行入口 游戏源码获取 关注vx公众号【苏凉闲谈社】回复“777””即可免费领取游戏源码,同时还为大家准备了相关图书资料、视频资料以及其他python小游戏源码等等。

苏凉.py的博客 5085

【数据集5】土地利用类型数量预测数据LUH2

简介土地利用类型数量预测数据LUH2

WW、forever的博客 4549

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。

StevenChen的博客 7878

从零开始玩python--python版植物大战僵尸来袭

大家好呀,小伙伴们!今天要给大家介绍一个超有趣的Python项目 - 用pygame制作植物大战僵尸游戏的进阶版本。相信不少小伙伴都玩过这款经典游戏,今天我们就用Python来实现它,让编程学习变得更加有趣!🌟。

2301_78150559的博客 5364

【信息系统项目管理师】第18章:项目绩效域详解

(3)度量绩效域与规划绩效域、项目工作绩效域和交付绩效域的相互作用:1规划构成了 交付和规划比较的基础;项目绩效域共同构成了一个统一的整体,作为一个完整系统,在项目生命周期过程中运行,系统内的每个绩效域相互作用、相互关联和相互依赖,并协调一致、共同运作,支撑项目目标和价值 的实现。(5)开发方法和生命周期绩效域与其他绩效域的相互作用:开发方法和生命周期绩效域与干系人绩效域、规划绩效域、不确定性绩效域、交付绩效域、项目工作绩效域和团队绩效域相互作用。(2)项目工作绩效域的绩效要点包括:项目过程;

数据知道的博客 7806

用Python 开发植物大战僵尸游戏

开发思路 1.引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。 #1引入需要的模块 import pygame import random #1配置图片地址 IMAGE_PATH = 'imgs/' #1设置页面宽高 scrrr_width=800 scrrr_height =560 #1创建控制游戏结束的状态 GAMEOVER = False #1主程序 class Mai...

qq_42992919的博客 3419

海洋CMS admin_notify.php 远程代码执行漏洞复现(CVE-2024-30565)

海洋CMS admin_notify.php 接口处存在远程代码执行漏洞,经过身份验证的远程攻击者可利用该漏洞执行任意代码,写入后门文件,进而控制整个web服务器。

0xSec 2720

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

用python写一个植物大战僵尸的程序

下面是一个简单的植物大战僵尸的 Python 程序的示例: # 定义植物类 class Plant: def __init__(self, name, attack_points): self.name = name self.attack_points = attack_points def attack(self, zombie...

weixin_42610010的博客 572

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Python 可轻松开发植物大战僵尸游戏(附动态演示+源码分享)

大家好,今天给大家下面给大家分享用 Python 实现植物大战僵尸的案例,喜欢记得收藏、点赞、关注。 文末提供源码分享,尽情去玩吧。 下面是部分代码实现逻辑,完整版代码,文末获取 1.引入需要的模块,配置图片路径,设置界面宽高背景颜色,创建游戏主入口。 #1引入需要的模块 import pygame import random #1配置图片地址 IMAGE_PATH = 'imgs/' #1设置页面宽高 scrrr_width=800 scrrr_height =560 #1创建控制游戏结束的状态 G

Python数据挖掘 1万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

用python实现植物大战僵尸(游戏截图+动态演示+源码分享)

大家好,我是梦执,对梦执着。希望能和大家共同进步! 下面给大家带来python实现植物大战僵尸的的源码分享,只含有冒险模式。 截图+动态演示+源码分享 游戏截图动态演示源码分享state/tool.pystate/constants.pystate/main.py主执行文件main.py 游戏截图 动态演示 源码分享 state/tool.py import os import json from abc import abstractmethod import pygame as pg ..

m0_70127749的博客 3万+

(半搬)植物大战僵尸python代码

自取

RZ_FOR_ORIRGIN的博客 1829

Python 植物大战僵尸

这段代码实现了一个简单的植物大战僵尸游戏。下面是代码的实现思路: 1. 导入必要的库和模块:首先,我们导入了Python的os、time库以及Pygame库,还有植物大战僵尸游戏中用到的各个植物和僵尸的类。 2. 初始化游戏和加载资源:接下来,我们初始化了Pygame库,并设置了游戏的背景尺寸。然后,我们加载了游戏所需的各种图像资源,包括背景、植物、僵尸等。 3. 定义游戏元素和变量:我们定义了几个全局变量,包括阳光值、植物组、子弹组、僵尸组和阳光组。还定义了一些特殊事件,用于在游戏中生成新的植物、子

专注于全栈开发领域 8万+

python植物大战僵尸(1)

欢迎加入我们卧虎藏龙的python讨论qq群:729683466●导 语●之前一直发一些简单的小游戏百十行代码的那种估计大家已经了解的一清二楚了现在可以讲一些比较复杂的游戏今天就带领大家...

qq_42680814的博客 3010
上一篇: 赚钱、读书,提升自己
下一篇: Python字典
黑客老许
博客等级 码龄8年 6158粉丝 1028原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值