Files
2026-06-19 06:38:31 +00:00

69 lines
21 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
import os, re
rr = re.compile(r"[\u4e00-\u9fff]")
D = "/app/working/workspaces/default/novels/round3/03-满级大佬回新手村"
def hz(s): return len(rr.findall(s))
def ap(fn, txt):
p = os.path.join(D, fn)
with open(p, "r", encoding="utf-8") as f:
c = f.read()
bf = hz(c)
with open(p, "a", encoding="utf-8") as f:
f.write(txt)
af = hz(c + txt)
print(f" {fn}: {bf} -> {af}")
# Expand ch2 + ch5
print("=== 补充第2章 ===")
ap("第002章 黄金野猪王——我把新手村的人全看傻了.md",
"\n\n那天晚上我躺在床上翻来覆去睡不着。不是因为战斗——是因为我在想:我装萌新能装多久?温柔一刀已经开始怀疑了——天下无双直接说我不是新人——暗夜公会也注意到我了。我的伪装最多还能撑一周。但一周够了——不管身份暴不暴露——我都该回大号了。全服公会联赛要开始了——暗夜需要我。我不能一直装萌新——我的公会还在等我回去带队。但在这之前——我要好好享受这几天。因为当萌新的快乐——比当大佬的快乐多太多了。")
print("\n=== 补充第5章 ===")
ap("第005章 王道公会——我混进了对手的大本营.md",
"\n\n接下来的三天我疯狂练级。王道公会给了我全套资助——最好的药水、最合适的装备、专属路线。我白天刷怪晚上做任务——三天从7级升到28级——平均每天7级。这个速度在正常人看来是开挂级别的——但对我来说只是正常水平——因为我满级的时候研究过全服所有高效率练级路线。\n\n第三天晚上我站在主城门口——身上穿着全套25级蓝装——手里握着信使之刃——已经不再是那个一身破布衣的萌新了。天下无双发来消息:\"28级了。继续——周末前到40级——王道需要你。\"我回:\"尽量。\"他:\"不是尽量——是必须。\"我笑了——这个副会长的管理风格确实跟我不同。我的风格是随便你开心就好——他的风格是定了目标就必须完成。\n\n我继续刷怪。脑子里已经在想一件事——周末的联赛——如果我上场了——暗夜的人会认出我吗?剑指苍穹会认出我吗?我还没准备好面对他们——但我也觉得——如果被认出来了——那场戏应该会很好看。")
print("\n=== 创建第6章 ===")
with open(os.path.join(D, "第006章 联赛冲刺——8级到40级的一周.md"), "w", encoding="utf-8") as f:
c = "# 第06章 联赛冲刺——8级到40级的一周\n\n周五晚上距离联赛还有两天——我在疯狂刷怪。王道公会给的练级路线已经不够用了——那是给正常玩家设计的——对我来说效率太低。我换了一条自己的路线——在龙骨荒野某个角落——那里的怪物刷新快经验高——而且几乎没有其他玩家知道这个地方。\n\n我在那个角落刷了整整一晚上。从晚上八点到凌晨三点——七个小时——从28级升到了36级。信使之刃的伤害随着我的等级提升同步增长——每升一级攻击力自动加五点——这把武器真的是成长型武器——不是名字叫成长型但其实不成长的那种。\n\n凌晨三点天下无双上线了——看到我的等级他发了一条消息:\"36级了?你一晚上升了8级?\"我回:\"嗯。\"他沉默了一会儿然后说:\"你是真的怪物。\"我回:\"谢谢。\"他:\"不是夸你——是陈述事实。\"\n\n周六联赛前一天——我早上八点上线——中午的时候达到了40级。全服频道再次震动——\"那个新人40级了!一周从7级到40级!\"\"他不是人——是练级机器。\"\"王道这次捡到宝了。\"\n\n天下无双在公会频道宣布:\"明天联赛——今天不想努力了——你作为替补出战。不需要你赢——只需要你在主力出问题的时候顶上去——别丢王道的人就行。\"我回了一条消息:\"放心——我不会丢人的。\"我在心里补了一句:我只会让你们所有人都大吃一惊。"
f.write(c)
print(f" 第6章: {hz(c)}汉字")
print("\n=== 创建第7章 ===")
with open(os.path.join(D, "第007章 决赛夜——我站在了对手那边.md"), "w", encoding="utf-8") as f:
c = "# 第07章 决赛夜——我站在了对手那边\n\n联赛日。主城竞技场座无虚席。前十公会全部到场——暗夜、王道、铁血、苍穹、星辰——前五公会坐在最前排。暗夜的会长席上——剑指苍穹坐在正中间——旁边是核心成员——但夜神的座位是空的。因为夜神就是我——正在王道的替补席上坐着。\n\n我看着暗夜的会长席——剑指苍穹的表情看起来很轻松——但我知道他其实很紧张。因为夜神不在——他连续给我大号发了三天消息——我一个都没回。他不知道他们的会长去哪了——不知道联赛谁带队——只能硬着头皮自己上。\n\n我有点愧疚。但愧疚感很快被一种更强烈的情绪盖过了——我期待当他们发现夜神就在对面的替补席上时——他们的表情会是什么样。\n\n第一场王道对铁血——主力阵容出战——天下无双带队——40分钟王道赢了。第二场暗夜对苍穹——剑指苍穹带队——35分钟暗夜赢了。第三场王道对星辰——王道再次获胜。第四场暗夜对铁血——暗夜再次获胜。\n\n决赛——王道对暗夜。前二的公会连续第四年在决赛相遇了。前三年的结果一样——暗夜冠军王道亚军。今年看起来也要一样——王道主力阵容跟去年没什么变化——而暗夜虽然少了夜神——但整体实力依然比王道强。\n\n决赛开始后王道在前二十分钟打得很好——跟暗夜打得有来有回。但二十分钟后差距开始显现——王道的一个主力输出操作失误——被暗夜抓住机会打掉了——然后王道的阵型乱了——暗夜乘势追击——王道节节败退。\n\n打到第三十分钟——王道的坦克倒了。天下无双在公会频道里喊:\"替补准备——今天不想努力了——你上。\"\n\n我站起来走向竞技场。全场观众的目光聚焦在我身上——一个40级的玩家走向全服最高水平的决赛赛场。观众席上响起了议论声——\"那是谁?40级?决赛上40级?\"\"王道没人了吗?\"\"那不是昨天刚升到40级的那个新人吗?\"\"王道疯了吗——决赛换替补上?\"\n\n我没理会这些声音。我站在竞技场中央——对面站着暗夜主力——剑指苍穹站在最前面。他看着我这个40级的新人——眼神有点复杂——他不知道我是谁——但他知道王道在决赛换人一定有原因。\n\n比赛重新开始。我握着信使之刃站在王道的阵型里——等待机会。暗夜的第一波进攻来了——剑指苍穹带队冲锋——目标是王道的治疗。我看到了那个冲锋——看到了那个破绽——剑指苍穹的左侧——零点三秒的空档——他在冲锋过程中习惯性地向右倾斜——左肩会暴露零点三秒。这个习惯——我跟他打了三年配合——我比任何人都清楚。\n\n我动了。不是往前冲——是往左闪——绕到剑指苍穹的左侧——信使之刃出手——砍在他的左肩。伤害不高——但这一刀的落点——剑指苍穹愣住了。他停住了——站在竞技场中央——看着我——眼神从平静变成了震惊。他认出了那一刀。"
f.write(c)
print(f" 第7章: {hz(c)}汉字")
print("\n=== 创建第8章 ===")
with open(os.path.join(D, "第008章 他认出了我——你就是夜神.md"), "w", encoding="utf-8") as f:
c = "# 第08章 他认出了我——你就是夜神\n\n剑指苍穹站在竞技场中央看着我——一动不动。他的队友在队伍频道里喊他——他没回应。他的目光盯在我身上——像是要把我看穿。\n\n\"你叫什么?\"他在世界频道发了一条消息——不是私聊是公开的——全场都能看到。\n\n我回:\"今天不想努力了。\"\n\n\"我知道你这个ID——我问的是你真正的名字。\"\n\n全场安静了。决赛暂停了。所有观众都在看着这两行对话。\n\n我沉默了几秒。然后我在世界频道回了一句话:\"你猜。\"\n\n剑指苍穹沉默了三秒。然后他回了一句话——这句话让全场炸开了锅——\"你那一刀全服只有一个人会那么砍——那个人叫夜神。\"\n\n全场哗然。\"夜神?那个40级的新人是夜神?\"\"夜神不是暗夜的会长吗?\"\"他怎么跑到王道那边去了?\"\"他叛变了?\"\"不可能——夜神不可能叛变——他一个人撑起了暗夜。\"\"那他在王道那边干什么?\"\n\n观众席上的议论声越来越大。直播弹幕已经刷到看不清画面了。全场最震惊的人除了剑指苍穹——还有天下无双。他站在王道的指挥席上看着我——眼神从困惑变成了震惊——然后变成了复杂的情绪——他被骗了——但他又觉得被骗得值。\n\n我在世界频道回了剑指苍穹:\"我不是夜神。\"\n\n剑指苍穹:\"你骗不了我。\"\n\n我:\"我真的不是夜神。\"\n\n剑指苍穹:\"那你解释一下那一刀。\"\n\n我:\"什么刀?\"\n\n剑指苍穹:\"左肩那一刀——零点三秒的窗口——全服只有一个人知道那个习惯——那个人是我三年的会长——夜神。\"\n\n我沉默了很久。然后我做了一个决定——不在世界频道承认——但我给剑指苍穹发了一条私聊。\n\n【私聊】\n剑指苍穹:你终于肯承认了?\n我:我没承认。我只说了一句——三年了你的左肩习惯还是没改。\n剑指苍穹:……\n我:联赛打完再聊。现在我在王道这边——我得先打完这场比赛。\n剑指苍穹:你跑到对面去打联赛??你图什么??\n我:装萌新。\n剑指苍穹:……装萌新??\n我:嗯。装萌新比当大佬有意思。\n\n剑指苍穹沉默了很久。然后他回了一句话——\"你他妈是真有病。但这个病——我有点羡慕。\"\n\n决赛重新开始了。但氛围已经完全变了——所有人看我的眼神都不一样了。王道的人知道我不是普通人了——但他们还不知道我到底是谁。暗夜的人已经猜到了——但他们不敢相信——他们的会长正在跟他们打决赛。\n\n我握着信使之刃站在竞技场上——我忽然觉得这一场决赛可能是我玩这个游戏以来最刺激的一场战斗。不是因为我面对的是全服最强的对手——是因为我现在是自己公会的对手。这是一场我跟我自己的对决。"
f.write(c)
print(f" 第8章: {hz(c)}汉字")
print("\n=== 创建第9章 ===")
with open(os.path.join(D, "第009章 亲手打败自己的公会是什么感觉.md"), "w", encoding="utf-8") as f:
c = "# 第09章 亲手打败自己的公会是什么感觉\n\n决赛重新开始后——暗夜明显改变了战术。他们不再把主要火力集中在王道的坦克和治疗上——他们把相当一部分注意力放在了我身上。因为他们知道不管我是谁——那一刀证明了我不是普通玩家。\n\n我成了被重点关照的对象。暗夜的两个输出专门盯着我打——一个法师一个刺客——两人配合默契——明显是专门研究过怎么针对我的。但他们研究错了——他们针对的是40级新人的打法——但我的打法不是40级新人的打法——是无级别的——是在满级PVP中磨炼了三年的打法。\n\n刺客隐身摸到我身后——我假装没发现——在他出手前零点三秒侧身闪避——顺势一个转身斩——打掉了他的隐身状态。法师远程读条——我在他读条结束的瞬间横向移动——预判了他的技能方向——轻松躲开。\n\n王道的队伍频道里天下无双发了一条消息:\"你到底是哪个大佬?你40级打出了80级的感觉。\"我没回他——因为我现在没空打字。我在专注一件事——打我自己公会的队友。这种体验太奇妙了——我熟悉暗夜每一个人的操作习惯——我知道他们的技能顺序——我知道他们的配合套路——我跟他们打了三年了。现在我在用这些知识打他们。\n\n我绕到暗夜的治疗背后——信使之刃出手——一套连招——三秒内打掉了治疗一半的血。治疗慌忙给自己加血——打乱了他的节奏。暗夜的坦克回头来救我——我利用坦克转身的空隙——从他侧面穿过去——直接切到了暗夜的远程输出位——两个法师一个弓箭手——被我一个人逼退了。\n\n全场观众沸腾了——\"那个40级的新人一个人逼退了暗夜三个远程!\"\"他不是新人——他绝对不是新人。\"\"他到底是谁啊?\"\"剑指苍穹说他可能是夜神——但夜神怎么可能在王道那边?\"\"如果他真的是夜神——那这场决赛就是全服历史上最离谱的一场。\"\n\n王道趁暗夜阵型混乱发动了总攻。天下无双带队冲锋——直接冲穿了暗夜的防线。暗夜的治疗还没来得及重整节奏——就被王道的刺客切掉了。暗夜的坦克孤军奋战——奶妈倒了——他撑不了多久。\n\n三分钟后比赛结束——王道胜。\n\n全服公告:全服公会联赛决赛——王道胜暗夜——王道获得了四年来的第一个联赛冠军。\n\n王道公会频道瞬间炸了——\"赢了!我们赢了!\"\"四年了!终于赢了暗夜一次!\"\"今天不想努力了——你是MVP!\"\"你一个40级的新人改变了决赛局势——你到底是何方神圣?\"\n\n我站在竞技场中央。全场观众在欢呼——但不是为暗夜——是为王道和那个40级的新人。我看着暗夜的会长席——剑指苍穹坐在那里看着我——表情很复杂——他在笑又在摇头。他的眼神里写着:你这个疯子——你真的跑到对面去打你自己了。\n\n我也看着他。我无声地说了一句——对不起——但我玩得很开心。"
f.write(c)
print(f" 第9章: {hz(c)}汉字")
print("\n=== 创建第10章 ===")
with open(os.path.join(D, "第010章 全服炸了——夜神在对面当替补.md"), "w", encoding="utf-8") as f:
c = "# 第10章 全服炸了——夜神在对面当替补\n\n决赛结束后我还没来得及退出竞技场——世界频道就出现了一条让全服炸锅的消息。发消息的人不是别人——是暗夜的会长剑指苍穹。\n\n剑指苍穹:【全服消息】@今天不想努力了——你就是夜神。不用躲了。我知道是你。\n\n这条消息一出——全服频道直接卡了三秒——因为同时发消息的人太多了。\"夜神?全服第一的夜神?\"\"暗夜的会长跑去王道打联赛?\"\"这是什么操作?\"\"他叛变了吗?\"\"不可能——夜神怎么可能叛变。\"\"那他在王道干嘛?\"\"卧底?全服第一大佬去对面当卧底?\"\n\n我看着世界频道刷屏的消息——笑了。被认出来了——比我预想的早了一点——但也不算太早——毕竟我已经装了一周的萌新。一周从1级到40级——从萌新到全服闻名的天才新人——够了。\n\n我在世界频道回了一条消息——\"我不是夜神。但我知道夜神在哪。\"\n\n全服又炸了——\"他知道夜神在哪?\"\"他认识夜神?\"\"那王道找的不是夜神本人——是夜神的朋友?\"\"那他也是大佬的小号?\"\n\n剑指苍穹秒回——\"你少来。就是你。不用掩饰了。你那招左肩斩全服只有两个人会用——我和夜神。我教他的——他用了三年——我一眼就能认出来。\"\n\n我沉默了。原来是剑指苍穹教我的那一招——我都忘了——三年前他确实教过我这一招——他说会长你这个左肩习惯太明显了——我给你设计了一个反制动作——如果有人瞄你的左肩你就顺势反击。我当时觉得没用——没想到今天他用我教他的招来认出了我。这是命运的讽刺。\n\n我在世界频道回了一句:\"好吧。是我。\"\n\n全服彻底炸了。\"真的是夜神!\"\"夜神去王道当替补——还帮王道打赢了暗夜?\"\"这是什么剧情?\"\"全服第一大佬叛变到对面帮对面打赢了自己公会?\"\"年度最离谱剧情没有之一。\"\"夜神——你是不是跟暗夜闹翻了?\"\"还是说你只是无聊了?\"\n\n我看着最后一条猜测笑了一下。然后我在世界频道回复了——\"我只是无聊了。无敌太久了想体验一下萌新的感觉。装了一周的萌新——很有意思——推荐你们也试试。\"\n\n全服再次炸锅——\"因为无聊跑去对面当卧底?\"\"这就是大佬的世界吗?\"\"如果这不是装逼我不知道什么是装逼了。\"\"一周从1级到40级拿了信使之刃帮对面打赢了自己公会——然后说只是无聊了。这就是满级大佬的日常?\"\"我玩三年都没他一周精彩。\"\n\n我关掉世界频道——然后收到了剑指苍穹的私聊。\"你玩够了吗?\"我回:\"差不多了。\"\"那回来吧——暗夜需要你。\"\"暗夜刚输了——你不生气?\"\"生气。但没办法——你是会长——而且你只是出去玩了一周——也没干坏事——就是帮对面拿了个冠军而已。\"\n\n我看着这条消息笑了。这个副会长——我是真的没选错人。"
f.write(c)
print(f" 第10章: {hz(c)}汉字")
print("\n=== 创建第11章 ===")
with open(os.path.join(D, "第011章 回暗夜——我该如何面对他们.md"), "w", encoding="utf-8") as f:
c = "# 第11章 回暗夜——我该如何面对他们\n\n联赛结束后的第二天——我登录了大号夜神。三周没上了——号还是那个满级号——装备还是那套暗夜君王套装——战力还是全服第一。但我看着这个号——感觉有点陌生。不是号变了——是我变了。\n\n我站在暗夜公会的驻地门口——看着那栋我三年没怎么管过的庄园。门口站着的两个守卫看到我上线了——立刻在公会频道里喊:\"会长上线了!\"\n\n公会频道瞬间热闹起来——\"会长你回来了!\"\"会长你三周去哪了?\"\"会长你知不知道联赛的事?\"\"会长你——你是不是就是那个今天不想努力了?\"\n\n最后一条消息让频道安静了几秒。我回了一个字:\"是。\"\n\n频道又炸了——但这次炸的方向不太一样——有人笑有人骂有人不敢相信。\"会长你居然跑去王道当替补?\"\"会长你亲手打我们?\"\"会长你是不是对我们有意见?\"\"会长你是不是想换公会了?\"\n\n我看着这些消息——有点愧疚。毕竟我是他们的会长——我跑去对面帮对面夺冠了。这件事在任何公会里都是不可接受的——就算我是会长也不行。\n\n我回了一条消息:\"我对公会有意见吗?没有。我想换公会吗?没有。我只是——无聊了。\"\n\n频道安静了很久。然后一个会员回了一句:\"会长——因为无聊——你就去对面打我们了?\"\n\n我:\"嗯。\"\n\n又一个会员:\"会长——你知道我们三年都赢王道——今年输了——是因为你吗?\"\n\n我:\"知道。\"\n\n又一个会员:\"会长——你后悔吗?\"\n\n我沉默了很久。然后我回了一句话:\"不后悔。但我欠你们一个道歉。\"\n\n频道再次安静。然后剑指苍穹开口了——\"不用道歉。你是会长——你做什么都是你的自由。我只是——有点羡慕你。你可以随心所欲——我们不行。我们得守着这个公会——得打联赛——得维持排名。你不一样——你已经是全服第一了——你没什么可守的了。你想装萌新就去装——想去对面就去对面——我们都拦不住你。\"\n\n我看着这条消息——沉默了很久。剑指苍穹说得对——我没什么可守的了。我已经是全服第一了——战力断层第一——成就全满——装备全顶——我往上没有路了。所以我往下走了——去新手村——去装萌新——去体验从零开始的感觉。\n\n而暗夜的其他人——他们还需要守。他们还需要打联赛——需要升排名——需要刷装备——需要追上我。他们跟我——已经不在同一个游戏维度了。\n\n我忽然意识到一件事——我可能已经不是这个公会的会长了——至少——不应该是。\n\n我回了一条消息:\"剑指苍穹——我把会长给你吧。\"\n\n频道瞬间炸了——\"会长你要退游?\"\"会长你别冲动——我们没怪你!\"\"会长你走了暗夜怎么办?\"\"会长你回来就行——我们当你没去过王道!\"\n\n我回:\"我不是退游。我只是觉得——会长这个位置——应该给更需要它的人。我已经不需要它了。\""
f.write(c)
print(f" 第11章: {hz(c)}汉字")
print("\n=== 统计 ===")
for f in sorted(os.listdir(D)):
if f.endswith(".md") and f.startswith("第"):
with open(os.path.join(D,f),"r",encoding="utf-8") as fp:
h = hz(fp.read())
flag = "OK" if h >= 2000 else "NEED"
print(f" {flag} {f}: {h}")
print("\n生成完成")