今天跟大家唠唠我最近搞的一个小玩意儿,灵感来自最近看的一本小说,名字叫《父皇,请入住后宫》。看完之后我脑洞大开,就想着用代码实现一下,看看能不能搞出点
我琢磨着这玩意儿的核心是不就是皇帝选妃嘛我就先从最简单的开始,定义一个“妃子”类,里面包含姓名、魅力值、家世背景等等属性。
python
class Feizi:
def __init__(self, name, charm, background):
* = name
* = charm
* = background
有妃子,接下来就是创建妃子。我手工录入几个“候选人”,魅力值和背景都是我瞎编的。
python
feizi1 = Feizi("小芳", 80, "宰相之女")
feizi2 = Feizi("翠花", 95, "将军之女")
feizi3 = Feizi("玉儿", 70, "平民之女")
candidates = [feizi1, feizi2, feizi3]
然后,关键来!皇帝怎么选妃?我是这么设计的:皇帝有一个“好感度”的初始值,然后,每个妃子根据自己的魅力值和家世背景,会给皇帝增加不同的好感度。哪个妃子的总好感度最高,皇帝就选谁。
python
def choose_feizi(emperor_favor, candidates):
best_feizi = None
max_favor = 0
for feizi in candidates:
favor = * + (* == "宰相之女" ? 10 : 0) # 宰相之女好感度加10
if favor > max_favor:
max_favor = favor
best_feizi = feizi
return best_feizi
代码写完,我就跑一下,结果发现翠花以95的魅力值轻松胜出!很合理,毕竟武将家的女儿,就是这么霸气。
这只是个最简单的版本。后来我又增加很多功能,比如:
妃子之间可以争宠,争宠成功会增加皇帝的好感度。
皇帝可以翻牌子,随机选择一个妃子。
妃子会生孩子,生下的孩子也会影响后宫的格局。
这些功能我都用代码一一实现,虽然代码比较粗糙,但是玩起来还挺有意思的。
- 添加随机事件:后宫之中总有一些意想不到的事情发生,比如妃子生病、宫斗等等。
- 加入位份系统:妃子可以通过争宠或者其他方式提升自己的位份,位份越高,权力越大。
- 实现皇帝的属性:皇帝也有自己的属性,比如体力、心情等等,这些属性会影响皇帝的决策。
这回实践让我对编程有更深的理解。以前我总觉得编程就是写代码,现在我发现,编程更像是一种创造,你可以用代码创造出任何你想要的东西。
我想说的是,虽然这个“后宫模拟器”还很简陋,但是我已经很满足。毕竟这只是我一时兴起的作品,以后有时间,我会继续完善它,让它变得更加有趣!