课时57:小游戏开发_完成游戏

简介: 本次课程围绕“唐僧大战白骨精”游戏的开发流程展开,详细阐述了从欢迎信息制作完成后,如何显示玩家基本信息、设置游戏选项,以及处理玩家不同选择(练级、打Boss、逃跑)的具体逻辑,同时指出了代码中存在的不合理之处并给出改进建议,旨在帮助初学者通过该游戏开发练习流程控制语句的使用。1. 显示玩家基本信息2. 显示游戏选项3. 处理用户选择4. 代码优化建议

课时57:小游戏开发_完成游戏


摘要:本次课程围绕“唐僧大战白骨精”游戏的开发流程展开,详细阐述了从欢迎信息制作完成后,如何显示玩家基本信息、设置游戏选项,以及处理玩家不同选择(练级、打Boss、逃跑)的具体逻辑,同时指出了代码中存在的不合理之处并给出改进建议,旨在帮助初学者通过该游戏开发练习流程控制语句的使用。

1. 显示玩家基本信息

2. 显示游戏选项

3. 处理用户选择

4. 代码优化建议

 

01、 显示玩家基本信息

1.1 变量创建

在欢迎信息制作完成后,接下来要显示玩家的基本信息,主要包括攻击力和生命值。这两个信息需要创建变量来保存,因为后续要与Boss的相应值进行比较。

#创建变量,来保存玩家的生命值和攻击力

Player_life=2; 生命值

Player_attack=2; 攻击力

对于攻击力变量名的确定,若拿不准可以通过搜索引擎查询英文翻译,正确的“攻击”英文是“attack”。

同样,为了保存Boss的生命值和攻击力,也需要创建相应变量,且Boss的生命值和攻击力应比玩家高,可根据自己的想法设置具体数值。

#创建变量,来保存Boss的生命值和攻击力

Boss-life=10; Boss生命值

Boss-attack=10; Boss攻击力

image.png

1.2 信息显示

只需要向玩家显示玩家的信息,可使用格式化输出语句来展示。为了使显示效果更清晰,可以添加空格和分割线。

printf(f’唐僧,你的生命值是{player-life}你的攻击力是 {player-attack);

image.png

image.png

 

02、 显示游戏选项

2.1 选项设置

游戏正式开始,为玩家提供三个选项:练级、打Boss、逃跑。可以通过复制之前的格式代码并进行修改来实现。

println("请选择你要进行的操作:");
println(‘\t1.练级’)
println(‘\t2.打Boss’)
println(‘\t3.逃跑’)
为了保存用户的选择,可以使用一个变量,如`player-choose`。
player-choose=input(‘请选择要做的操作[1-3]:’),
也可以换成game-choose=input(‘请选择要做的操作[1-3]:’),

image.png

为了使界面格式更好看,每段信息之间最好添加分割线。

image.png

image.png

 

03、 处理用户选择

3.1 练级选项

当用户选择1进行练级时,需要增加玩家的生命值和攻击力。

If game_Choose==‘1’:
#增加玩家的生命值和攻击力
player-life +=2;
player-attack +=2;

image.png

image.png

由于游戏选项是需要反复显示的,所以必须将游戏选项编写到一个死循环中。因为不知道游戏何时结束,所以使用死循环,通过`break`语句在合适的时候退出循环。

while True:

image.png

image.png

#显示玩家信息:你也可以放到一个循环里面,也可以放if里边。

image.png

print(f’恭喜你升级了,你现在的生命值是{player life},你的攻击力是{player attack}’);

image.png

玩家信息也可以根据需求选择放在循环内或在修改后单独显示最新信息。

3.2 (二)打Boss选项(elif game-choose==‘2’)

当用户选择2打Boss时,需要分两步进行操作。

1. 玩家攻击Boss:玩家攻击Boss就是减去Boss的生命值,减去的生命值等于玩家的攻击力。
elif game-choose==2:
BossLife-=player-attack;
print(‘->唐僧<-攻击力->白骨精<-)
#检查Boss是否死亡
If Boss-life<=0
#Boss死亡,player胜利,游戏结束
println(f‘->白骨精<-受到了{player-attack}点伤害,重伤不治死了。->唐僧<-赢得了胜利!‘);
//游戏结束
Break(退出循环)

image.png

2. Boss反击玩家:若Boss未死亡,则Boss反击玩家,减去玩家的生命值。

else{
player-life-=BossAttack;
printf(‘->白骨精<-攻击了->唐僧<-‘);
#检查玩家是否死亡
If player-life<=0 :
println(‘你受到了{Boss-attack}点伤害,重伤不治死了!GAME OVER’)
#游戏结束
break;

image.png

image.png

image.png

3.3 逃跑选项

当用户选择3逃跑时,相当于退出游戏,此时可以显示一个提示信息并使用`break`语句退出循环。

elif(game-choose==‘3’:
println(‘->唐僧<-一扭头,撒腿就跑。GAME OVER!");
break;

image.png

3.4 非法输入处理

为了处理用户输入非法选项的情况,需要添加一个`else`分支,提示用户输入有误并让其重新输入。

else:
print  (‘用户你的输入有误,请重新输入!‘);

image.png

 

04、 代码优化建议


当前代码中,像“唐僧”“白骨精”这样的游戏人物名字是写死的,如果要修改游戏名称或人物,需要多处修改,成本较高。更合理的方式是将这些人物名字设置成变量,这样可以使游戏更加灵活。

对于初学者来说,这个游戏开发是一个很好的练习机会,建议自己独立编写两三遍,体会程序的开发流程。同时,可以发挥想象力对游戏进行扩展,如引入闪避机制、技能系统等,让游戏更加复杂和有趣。

相关文章
|
弹性计算 网络协议 Linux
阿里云搭建我的世界服务器
以阿里云ECS服务器作为frp内网穿透中转,搭建我的世界服务器。
4928 0
|
网络协议 Windows
网络连接正常但百度网页打不开显示无法访问此网站解决方案
网络连接正常但百度网页打不开显示无法访问此网站解决方案
4582 0
网络连接正常但百度网页打不开显示无法访问此网站解决方案
|
Web App开发 人工智能 前端开发
百万部销量智能体的小故事
《百万部销量智能体的小故事》讲述了小明从异想天开的构想到成功开发智能系统的创业历程。从泡面桶前的宣言到极端节俭的车库创业,从小伙伴的加入到无数次失败与尝试,他们克服了实时通讯、多模态处理等技术难题。尽管经历了咖啡灾难、病毒侵袭和无数bug,团队仍坚持不懈。最终,他们的智能系统不仅改变了超市、独居老人的生活,还创造了百万销量的奇迹。这个故事展现了技术背后的人情温度,以及创业者对梦想的执着追求。
273 3
|
存储 人工智能 弹性计算
从“云+原神”到“云上星穹”,阿里云支持米哈游新游全球首发
近日,阿里云支持米哈游新作《崩坏:星穹铁道》正式上线,首发当天全网下载量突破2000万,当日登上iOS免费榜与畅销榜的总榜第一及其他多国榜首。
|
存储 人工智能 运维
当四大美女遇上 MetaGPT,一键解锁跨时空AI畅聊新体验
MetaGPT 是一个开源多智能体框架,通过角色专业化分工与流程标准化控制,突破传统单模型系统的能力瓶颈。本方案结合阿里云百炼模型服务和 Serverless AI 开发平台 Function AI,构建支持多角色、多场景的对话应用,并部署至函数计算。用户可快速获取 API-KEY、配置参数并部署项目,体验如“西游取经”、“成语接龙”等示例应用,实现高效协同推理与垂直领域专业内容动态更新,显著降低成本并提升开发效率。
|
运维 Kubernetes Cloud Native
莉莉丝游戏云原生之路
本文将介绍莉莉丝游戏云原生化的背景、挑战,以及应对的解决方案,记录了莉莉丝游戏云原生化历程,为游戏架构云原生转型提供经验。
莉莉丝游戏云原生之路
|
算法 虚拟化 C++
VMware虚拟机无法自适应和拖拽复制粘贴和共享目录问题
VMware虚拟机无法自适应和拖拽复制粘贴和共享目录问题
2306 0
|
存储 人工智能 Cloud Native
“爆款”批量生成,如何实现一键创作 AI 有声绘本?
“爆款”批量生成,如何实现一键创作 AI 有声绘本?
370 0
|
Linux 网络安全 虚拟化
Linux操作系统第一章(Linux操作系统的带入,vmware-17虚拟化软件运用,FinalShell远程连接Linux )
Linux操作系统第一章(Linux操作系统的带入,vmware-17虚拟化软件运用,FinalShell远程连接Linux )
|
存储 安全 Cloud Native
阿里云支持米哈游新游《绝区零》全球开服!
阿里云支持米哈游新游《绝区零》全球开服!
4321 5