用Python开发你的第一个小游戏 | Python从入门到精通:入门篇之二十三

简介: 经过了上节课的分析,这节课老师带大家开发小游戏。

第二十二节:游戏的运行逻辑分析
一、游戏角色建立
1、显示欢迎信息

print('*'*20,"欢迎来到游戏!",'*'*20)

2、显示身份的选择信息

print("请选择你的角色:")
print("\t1.唐僧")
print("\t2.白骨精")
#游戏的身份选择
User_Role=input("请输入1~2:")

为了显示出来的内容整齐,在身份“唐僧”和“白骨精”前面加了一个制表符“t”,显示一个格式的缩进。
用input()函数获取用户的输入,并存放在变量User_Role中。
3、根据用户的选择显示不同的提示信息

if User_Role == '1' :
    #用户选择1
    pass
elif User_Role == '2' :
    #用户选择2
    pass
else :
    #用户输入其他
    pass

获取到用户的输入内容之后,要根据不同的输入内容显示不同的提示信息,就要对获取到的内容分情况讨论。在本游戏中,用户可能输入1、2、其他内容,所以就分了三种情况讨论。
接下来分析当用户选择1的时候:

print("你将以->唐僧<-的身份进行游戏")

看一下执行结果:
image.png
为了区分身份和上述的欢迎信息,打印一条分隔符:

print('-'*55)

再设置当用户输入2的时候执行的语句,理论上来说应该是选择白骨精的身份,但是本系统中白骨精是反派boss,所以还是匹配唐僧的身份。
当用户输入其他的内容的时候,提示信息:输入错误,并为用户分配唐僧的游戏身份。
程序如下:

#打印一行分割符
print('-'*55)
if User_Role == '1' :
    #选择1
    print("你已经选择了1,你将以->唐僧<-的身份进行游戏")
elif User_Role == '2' :
    #选择2
    print("你居然选择白骨精,太不要脸了,系统将为你匹配->唐僧<-的身份进行游戏")
else :
    # 输入其他
    print("你的输入错误!系统将为您自动分配身份,你将以->唐僧<-的身份进行游戏")

这就完成了游戏的第一步:角色的建立,接下来就是设置进入游戏之后的页面和功能操作了。
二、游戏的进行
1、显示玩家的基本信息(攻击力 生命值)
创建变量保存玩家的攻击力和生命值:

User_life = 2 #生命值
User_attack = 2 # 攻击力

创建变量保存Boss的信息:

Boss_life = 10 #boss的生命值
Boss_attack = 10 #boss 的攻击力

将玩家的信息在创建角色的时候显示给用户,但是Boss的就不必了,中间打印一行分割符:

#打印一行分割符
print('-'*55)
#显示玩家信息
print(f'你的生命值为 {User_life},你的攻击力为 {User_attack}')

此时执行一下程序,可以看到:
image.png
2、玩家的操作项(练级、打boss、逃跑)
首先打印玩家可进行的操作,并获取玩家的选择。

print("请选择你要进行的操作")
print("\t1.练级")
print("\t2.打boss")
print("\t3.逃跑")
User_option=input("请选择要做的操作,输入1~3:")

执行结果为:
image.png
此时若是这么处理用户的选择的话,就会导致用户只可以做一次选择,只可以进行一次操作,练级也只能是加一次,显然这是不友好的,也是不符合常理的。
我们想让用户可以一直进行操作的选择,那么就要将操作的语句以及对操作的处理放到循环体里面。
这个时候又产生一个问题了,循环几次结束程序呢?
这里答案是,等待用户结束,所以要写成一个死循环,但是可以用break来结束整个循环。
所以将接下来的操作放入一个循环体里面:

while True :

现在就可以来处理用户的选择了,当用户选择1的时候,进行练级,可设置每次练级提升的攻击力和生命值,假设为2,程序如下:

    if User_option == '1' :
        #练级,增加玩家的生命值和攻击力
        User_life += 2
        User_attack += 2
        print(f'恭喜你升级了! 你的生命值为:{User_life},你的攻击力为:{User_attack}')

执行结果为:
image.png
这就完成了想要的循环结果,以及持续的练级。
接下来设置当用户选择打boss的时候的处理方式:
玩家攻击boss,此时要根据玩家的攻击力来判断boss是否还有生命值,如果有则反击,如果没有则玩家胜利,游戏结束。

    elif User_option == '2' :
        #玩家攻击boss,boss掉血,boss掉的生命值为玩家的攻击力
        Boss_life -= User_attack

        # 打印一行分割符
        print('-' * 55)
        print("->唐僧-<攻击了->白骨精<-")
        #判断白骨精是否还有生命值
        if Boss_life <= 0 :
            #玩家攻击力过高,白骨精死亡
            print(f"白骨精受到了你{User_attack}点的攻击力,重伤不治,死亡,->玩家胜利!<-")
            #游戏结束
            break
        else :
            #boss 反击
            User_life -= Boss_attack
            print("->白骨精-<攻击了->唐僧<-")
            #判断玩家是否还有生命值
            if User_life <= 0:
                # 白骨精攻击力过高,唐僧死亡
                print(f"你受到了白骨精{Boss_attack}点的攻击力,重伤死亡->Game Over!<-")
                # 游戏结束
                break

执行结果为:
image.png
如果持续练级,将攻击力提升到大于白骨精的生命值,将会是什么结果呢,再来看下:
image.png
此时就是胜利啦!
接下来处理第三种情况,唐僧退出游戏:
退出游戏那就是结束循环啦,用break即可。

    elif User_option == '3' :
        # 打印一行分割符
        print('-' * 55)
        #逃跑
        print("唐僧一见到白骨精,撒腿就跑!!!游戏结束。。")
        break

执行结果为:
image.png
还要考虑到用户输入错误的情况,再添加一个else语句:

 else :
        # 打印一行分割符
        print('-' * 55)
        print("输入有误!请重新输入!")

执行结果为:
image.png
这就完成了游戏的所有设置啦,同学们可以反复练习几遍,也可以根据自己的想法将游戏设置的更复杂一点。
到这里,入门教程就完全结束啦,同学们有哪些收获呢?
进阶教程即将开启~欢迎同学们的加入!

视频学习:阿里云大学之Python进阶必看

配套Python进阶文章点击此处获取

相关文章
|
2月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
357 7
|
3月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
365 1
|
2月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
2月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
555 1
|
3月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
500 7
|
3月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
221 5
|
3月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
3月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
3月前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
171 0
|
3月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
98 0

推荐镜像

更多