游戏开发实战(一):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】

文章目录

奇美拉项目

由于项目工程较大,并且我打算把我的思考过程和实现过程中踩过的坑都分享一下,因此会分3-4篇博文详细讲解本项目。本文首先介绍下游戏规则并给出奇美拉档案。

游戏规则

对局开始前,玩家可以选择多个奇美拉 去完成任务队列 里的任务。游戏开始后,在每个回合只有队头奇美拉 可以选定任务队列里的可选定任务 开始工作。领队奇美拉位于后台,不参与工作,会根据自己的能力给其他奇美拉添加增益效果。当任务队列中的所有任务均被完成时,游戏结束即,玩家取得胜利;当所有奇美拉(领队奇美拉除外)均离场时,游戏失败。

任务队列: 任务队列是一系列待完成的任务的有序组合。每个任务都有一定的生命值和攻击力。

奇美拉: 每个奇美拉都有一定的生命值和攻击力,部分奇美拉有特殊的被动技能。

工作: 奇美拉选定一个任务,每次工作使得该任务的生命值降低(降低程度等于奇美拉的攻击力),并且该奇美拉的生命也会降低(降低程度等于任务的攻击力)。当任务的攻击力为0时,任务被完成,当奇美拉的生命值为0时,奇美拉会离场。

队头奇美拉: 玩家可以选择多个奇美拉组成一个有序的奇美拉队列,当奇美拉离场时,按照顺序使得下一个奇美拉成为队头奇美拉。

可选定任务: 在任务队列中,只有队头任务可以被选中,当队头任务被完成后,按照顺序使得下一个任务成为队头任务。

奇美拉(Chimeras)档案

首先我们先按照奇美拉类型进行分类,良好的分类会极大方便程序的设计和编码。

领队

职业经理【自我驱动】: 登场后:使全体奇美拉效率+3体力+3

严酷恶魔【不准停!】: 奇美拉完成工作后,使其效率+5

职场清流【抚慰之心】: 登场后:全体奇美拉效率+2。奇美拉追加工作后:使其效率+1

成员

我们将奇美拉分为4类被,普通奇美拉,回合/登场技的奇美拉,自身触发被动的奇美拉,队友触发被动的奇美拉【atk,hp】

1 普通类别

摸鱼仔【3,2】 :平平无奇

负能量【7,3】: 平平无奇

真老实【1,16】: 平平无奇

小坏蛋【3,5】: 平平无奇

压力怪【5,3】:平平无奇

2 回合/登场技的奇美拉

治愈师【温暖,2,5】: 每回合开始,使前一格同伴体力+1

小团体【排外,3,3】: 每回合开始时,使前两格同伴效率+1,其余同伴体力-1

画饼王【话术,2,7】: 登场后所有同伴效率+8 ,若自身在场,每回合使所有同伴效率-2

平凡王【联合,7,7】: 登场后,获得场上所有无特性同伴100%的效率和体力(单次上限均为25)

3 自身触发被动的奇美拉

坏脾气【发作,2,9】: 自身工作时:使后一格同伴体力-1

抗压包【熟练,2,5】: 自身体力降低时使前后一格同伴效率+1

请假狂【装病,2,7】: 自身体力降低后,与后一格同伴交换位置,并使自身效率+2

请假王【开摆,6,3】 :自身体力降低后,与后一格同伴交换位置,并使自身体力+3

内卷王【激励,3,8】: 自身完成工作时:获得效率+2体力+3 【hp<0也会生效,在每回合结束后才让hp<0的奇美拉退场。】

受气包【道歉,2,5】: 自身体力降低时,使全局同伴效率+1

跑路侠【怂恿,1,1】 :自身累倒时,和后一格同伴一起逃离工作,并使其他同伴体力+8

4 队友触发被动的奇美拉

小夸夸【鼓励,3,3】: 同伴工作或追加工作时,若同伴效率》5使其效率+2

看乐子【围观,3,3】 :同伴累到后,自身效率+2体力+2

背锅侠【接锅,3 ,6: 同伴累倒时,使该同伴体力+10,自身逃离工作

抢功劳【独占,15,2: 同伴工作时:若自身效率》=剩余工作进度,则进行追加工作完成该任务

急先锋【带头,2,5】: 同伴工作或追加工作时,自身与前一格同伴交换位置,并且体力+6

说怪话【暗讽,14,1】: 同伴完成工作时,使该同伴效率+4 并发表自己的意见

帮倒忙【捣乱,-1,5】: 同伴工作时,自身进行一次追加工作

工作狂【争先 6,10】: 同伴工作或追加工作时,进行一次等于自身50%效率的追加工作

结果展示:

本人对于测试方面并不太精通,仅对单个奇美拉进行了测试,以及对游戏中较为复炸的追击队做了测试。

待我讲解完毕后会在GitHub上开源,欢迎大家在GiuHub上讨论~

队列如下:有条件的可以登陆游戏验证一下哦~

程序结果如下:

注意,每回合内不同奇美拉的行动顺序可能和游戏里并不一致,但每回合的结果和游戏里一致。在后续源码级的详细讲解中我会详细解释为什么顺序不一致以及如何不影响每回合的结果的。


相关推荐
GUIQU.20 分钟前
【每日一题丨2025年5.12~5.18】排序相关题
算法·排序·每日一题
LetsonH21 分钟前
Pyro:基于PyTorch的概率编程框架
人工智能·pytorch·python
文莉wenliii29 分钟前
打卡day30
开发语言·python
哪 吒32 分钟前
2025B卷 - 华为OD机试七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)
python·算法·华为od·华为od机试·2025b卷
孤寂大仙v32 分钟前
【Linux笔记】——Linux线程封装
linux·笔记·算法
亿牛云爬虫专家41 分钟前
Playwright 多语言一体化——Python_Java_.NET 全栈采集实战
java·python·c#·汽车·.net·playwright·dongchedi.com
yuanpan1 小时前
支持python的单片机有哪些
开发语言·python·单片机
王了了哇1 小时前
【YOLO(txt)格式转VOC(xml)格式数据集】以及【制作VOC格式数据集 】
xml·python·yolo
欧先生^_^1 小时前
Rust 编程语言的官方源码仓库
开发语言·算法·rust
程序员爱钓鱼1 小时前
可变参数(Variadic Functions)- 《Go语言实战指南》
算法